[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 2d2bc6f1bc6: Add treesit-thing-settings to yaml-ts-mode and enabl
From: |
Juri Linkov |
Subject: |
master 2d2bc6f1bc6: Add treesit-thing-settings to yaml-ts-mode and enable transpose-sexps |
Date: |
Sun, 12 Jan 2025 13:18:24 -0500 (EST) |
branch: master
commit 2d2bc6f1bc678b21c46af26cf343e24acdb48b79
Author: Juri Linkov <juri@linkov.net>
Commit: Juri Linkov <juri@linkov.net>
Add treesit-thing-settings to yaml-ts-mode and enable transpose-sexps
* lisp/treesit.el (treesit-major-mode-setup): Move setting of
'transpose-sexps-function' outside of 'treesit-thing-defined-p'
since 'treesit-transpose-sexps' doesn't depend on the 'sexp' thing.
* lisp/textmodes/yaml-ts-mode.el (yaml-ts-mode):
Add 'treesit-thing-settings' with the 'list' thing,
but use it only for list commands, not sexp commands (bug#73404).
---
lisp/textmodes/yaml-ts-mode.el | 17 ++++++++++++++++-
lisp/treesit.el | 5 +++--
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/lisp/textmodes/yaml-ts-mode.el b/lisp/textmodes/yaml-ts-mode.el
index 957102950b4..defef096aa6 100644
--- a/lisp/textmodes/yaml-ts-mode.el
+++ b/lisp/textmodes/yaml-ts-mode.el
@@ -167,7 +167,22 @@ boundaries. JUSTIFY is passed to `fill-paragraph'."
(setq-local fill-paragraph-function #'yaml-ts-mode--fill-paragraph)
- (treesit-major-mode-setup)))
+ ;; Navigation.
+ (setq-local treesit-thing-settings
+ `((yaml
+ (list ,(regexp-opt '("block_mapping_pair"
+ "flow_sequence"))
+ 'symbols))))
+
+ (treesit-major-mode-setup)
+
+ ;; Use the `list' thing defined above to navigate only lists
+ ;; with `C-M-n', `C-M-p', `C-M-u', `C-M-d', but not sexps
+ ;; with `C-M-f', `C-M-b' neither adapt to 'show-paren-mode'
+ ;; that is problematic in languages without explicit
+ ;; opening/closing nodes.
+ (setq-local forward-sexp-function nil)
+ (setq-local show-paren-data-function 'show-paren--default)))
(derived-mode-add-parents 'yaml-ts-mode '(yaml-mode))
diff --git a/lisp/treesit.el b/lisp/treesit.el
index 056d96ad7ad..ac34edaf84d 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -3593,9 +3593,10 @@ before calling this function."
(setq-local add-log-current-defun-function
#'treesit-add-log-current-defun))
+ (setq-local transpose-sexps-function #'treesit-transpose-sexps)
+
(when (treesit-thing-defined-p 'sexp nil)
- (setq-local forward-sexp-function #'treesit-forward-sexp)
- (setq-local transpose-sexps-function #'treesit-transpose-sexps))
+ (setq-local forward-sexp-function #'treesit-forward-sexp))
(when (treesit-thing-defined-p 'list nil)
(setq-local forward-sexp-function #'treesit-forward-sexp-list)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 2d2bc6f1bc6: Add treesit-thing-settings to yaml-ts-mode and enable transpose-sexps,
Juri Linkov <=