mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
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).
This commit is contained in:
parent
7648faedd3
commit
2d2bc6f1bc
2 changed files with 19 additions and 3 deletions
|
|
@ -167,7 +167,22 @@ boundaries. JUSTIFY is passed to `fill-paragraph'."
|
||||||
|
|
||||||
(setq-local fill-paragraph-function #'yaml-ts-mode--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))
|
(derived-mode-add-parents 'yaml-ts-mode '(yaml-mode))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3593,9 +3593,10 @@ before calling this function."
|
||||||
(setq-local add-log-current-defun-function
|
(setq-local add-log-current-defun-function
|
||||||
#'treesit-add-log-current-defun))
|
#'treesit-add-log-current-defun))
|
||||||
|
|
||||||
|
(setq-local transpose-sexps-function #'treesit-transpose-sexps)
|
||||||
|
|
||||||
(when (treesit-thing-defined-p 'sexp nil)
|
(when (treesit-thing-defined-p 'sexp nil)
|
||||||
(setq-local forward-sexp-function #'treesit-forward-sexp)
|
(setq-local forward-sexp-function #'treesit-forward-sexp))
|
||||||
(setq-local transpose-sexps-function #'treesit-transpose-sexps))
|
|
||||||
|
|
||||||
(when (treesit-thing-defined-p 'list nil)
|
(when (treesit-thing-defined-p 'list nil)
|
||||||
(setq-local forward-sexp-function #'treesit-forward-sexp-list)
|
(setq-local forward-sexp-function #'treesit-forward-sexp-list)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue