1
0
Fork 0

[oni-yaml] Use ‘yaml-ts-mode’ when it is available

This commit is contained in:
Tom Willemse 2024-02-05 16:47:45 -08:00
parent a91df5e4ae
commit 68d911f08d

View file

@ -4,7 +4,7 @@
;; Author: Tom Willemse <tom@ryuslash.org> ;; Author: Tom Willemse <tom@ryuslash.org>
;; Keywords: local ;; Keywords: local
;; Version: 2024.0202.110614 ;; Version: 2024.0205.164705
;; Package-Requires: (yaml-mode oni-flycheck oni-highlight-indent-guides indent-tools yaml-imenu yaml-pro) ;; Package-Requires: (yaml-mode oni-flycheck oni-highlight-indent-guides indent-tools yaml-imenu yaml-pro)
;; This program is free software; you can redistribute it and/or modify ;; This program is free software; you can redistribute it and/or modify
@ -29,20 +29,33 @@
(require 'indent-tools) (require 'indent-tools)
(require 'yaml-imenu) (require 'yaml-imenu)
;; Don't mind if treesit can't be loaded, maybe this Emacs doesn't have it.
(require 'treesit nil t)
(defun oni-yaml--auto-fill-mode () (defun oni-yaml--auto-fill-mode ()
"Enable auto-fill-mode only for comments." "Enable auto-fill-mode only for comments."
(setq-local comment-auto-fill-only-comments t) (setq-local comment-auto-fill-only-comments t)
(auto-fill-mode)) (auto-fill-mode))
(defun oni-yaml--enable-hooks (hook)
"Enable all hooks I use for editing yaml files for HOOK."
(add-hook hook 'display-fill-column-indicator-mode)
(add-hook hook 'electric-indent-local-mode)
(add-hook hook 'electric-pair-local-mode)
(add-hook hook 'highlight-indent-guides-mode)
(add-hook hook 'oni-yaml--auto-fill-mode)
(add-hook hook 'yaml-imenu-enable)
(add-hook hook 'yaml-pro-mode))
(define-key yaml-mode-map (kbd "C-c >") 'indent-tools-hydra/body) (define-key yaml-mode-map (kbd "C-c >") 'indent-tools-hydra/body)
(add-hook 'yaml-mode-hook 'display-fill-column-indicator-mode) (oni-yaml--enable-hooks 'yaml-mode-hook)
(add-hook 'yaml-mode-hook 'electric-indent-local-mode)
(add-hook 'yaml-mode-hook 'electric-pair-local-mode) (when (and (functionp 'treesit-available-p)
(add-hook 'yaml-mode-hook 'highlight-indent-guides-mode) (treesit-available-p)
(add-hook 'yaml-mode-hook 'oni-yaml--auto-fill-mode) (treesit-ready-p 'yaml))
(add-hook 'yaml-mode-hook 'yaml-imenu-enable) (add-to-list 'major-mode-remap-alist '(yaml-mode . yaml-ts-mode))
(add-hook 'yaml-mode-hook 'yaml-pro-mode) (oni-yaml--enable-hooks 'yaml-ts-mode-hook))
(provide 'oni-yaml) (provide 'oni-yaml)
;;; oni-yaml.el ends here ;;; oni-yaml.el ends here