Fix cmake-ts-mode indentation (Bug#66845)
* lisp/progmodes/cmake-ts-mode.el (cmake-ts-mode--indent-rules): Support versions v0.3.0 and v0.4.0 of the grammar. (cmake-ts-mode--font-lock-compatibility-fe9b5e0): Fix docstring.
This commit is contained in:
parent
5bdc61bc0e
commit
fa8cc4c9ee
1 changed files with 11 additions and 3 deletions
|
@ -63,7 +63,15 @@
|
||||||
((parent-is "foreach_loop") parent-bol cmake-ts-mode-indent-offset)
|
((parent-is "foreach_loop") parent-bol cmake-ts-mode-indent-offset)
|
||||||
((parent-is "function_def") parent-bol cmake-ts-mode-indent-offset)
|
((parent-is "function_def") parent-bol cmake-ts-mode-indent-offset)
|
||||||
((parent-is "if_condition") parent-bol cmake-ts-mode-indent-offset)
|
((parent-is "if_condition") parent-bol cmake-ts-mode-indent-offset)
|
||||||
((parent-is "normal_command") parent-bol cmake-ts-mode-indent-offset)))
|
((parent-is "normal_command") parent-bol cmake-ts-mode-indent-offset)
|
||||||
|
;;; Release v0.4.0 wraps arguments in an argument_list node.
|
||||||
|
,@(ignore-errors
|
||||||
|
(treesit-query-capture 'cmake '((argument_list) @capture))
|
||||||
|
`(((parent-is "argument_list") grand-parent cmake-ts-mode-indent-offset)))
|
||||||
|
;;; Release v0.3.0 wraps the body of commands into a body node.
|
||||||
|
,@(ignore-errors
|
||||||
|
(treesit-query-capture 'cmake '((body) @capture))
|
||||||
|
`(((parent-is "body") grand-parent cmake-ts-mode-indent-offset)))))
|
||||||
"Tree-sitter indent rules for `cmake-ts-mode'.")
|
"Tree-sitter indent rules for `cmake-ts-mode'.")
|
||||||
|
|
||||||
(defvar cmake-ts-mode--constants
|
(defvar cmake-ts-mode--constants
|
||||||
|
@ -89,8 +97,8 @@
|
||||||
"CMake if conditions for tree-sitter font-locking.")
|
"CMake if conditions for tree-sitter font-locking.")
|
||||||
|
|
||||||
(defun cmake-ts-mode--font-lock-compatibility-fe9b5e0 ()
|
(defun cmake-ts-mode--font-lock-compatibility-fe9b5e0 ()
|
||||||
"Indent rules helper, to handle different releases of tree-sitter-cmake.
|
"Font lock helper, to handle different releases of tree-sitter-cmake.
|
||||||
Check if a node type is available, then return the right indent rules."
|
Check if a node type is available, then return the right font lock rules."
|
||||||
;; handle commit fe9b5e0
|
;; handle commit fe9b5e0
|
||||||
(condition-case nil
|
(condition-case nil
|
||||||
(progn (treesit-query-capture 'cmake '((argument_list) @capture))
|
(progn (treesit-query-capture 'cmake '((argument_list) @capture))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue