From 68d911f08d5e6559f20c89eadcc8741bf6d3f5e1 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 5 Feb 2024 16:47:45 -0800 Subject: [PATCH] =?UTF-8?q?[oni-yaml]=20Use=20=E2=80=98yaml-ts-mode?= =?UTF-8?q?=E2=80=99=20when=20it=20is=20available?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oni-yaml.el | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/oni-yaml.el b/oni-yaml.el index 734386b..d05a402 100644 --- a/oni-yaml.el +++ b/oni-yaml.el @@ -4,7 +4,7 @@ ;; Author: Tom Willemse ;; 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) ;; This program is free software; you can redistribute it and/or modify @@ -29,20 +29,33 @@ (require 'indent-tools) (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 () "Enable ‘auto-fill-mode’ only for comments." (setq-local comment-auto-fill-only-comments t) (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) -(add-hook 'yaml-mode-hook 'display-fill-column-indicator-mode) -(add-hook 'yaml-mode-hook 'electric-indent-local-mode) -(add-hook 'yaml-mode-hook 'electric-pair-local-mode) -(add-hook 'yaml-mode-hook 'highlight-indent-guides-mode) -(add-hook 'yaml-mode-hook 'oni-yaml--auto-fill-mode) -(add-hook 'yaml-mode-hook 'yaml-imenu-enable) -(add-hook 'yaml-mode-hook 'yaml-pro-mode) +(oni-yaml--enable-hooks 'yaml-mode-hook) + +(when (and (functionp 'treesit-available-p) + (treesit-available-p) + (treesit-ready-p 'yaml)) + (add-to-list 'major-mode-remap-alist '(yaml-mode . yaml-ts-mode)) + (oni-yaml--enable-hooks 'yaml-ts-mode-hook)) (provide 'oni-yaml) ;;; oni-yaml.el ends here