Rename treesit-simple-indent-modify-rules and fix docstring
* lisp/treesit.el (treesit-simple-indent-modify-rules): Rename and fix docstring. It should be matcher, not anchor. Also reword a little bit. * etc/NEWS: Update. * lisp/textmodes/mhtml-ts-mode.el: (mhtml-ts-mode--treesit-indent-rules): Update accordingly.
This commit is contained in:
parent
77c7ba7fac
commit
928bad9360
3 changed files with 19 additions and 14 deletions
11
etc/NEWS
11
etc/NEWS
|
@ -1404,12 +1404,11 @@ settings. In a multi-language major mode it is sometimes necessary to
|
|||
replace features from one of the major modes, with others that are
|
||||
better suited to the new multilingual context.
|
||||
|
||||
*** New function 'treesit-modify-indent-rules'.
|
||||
Given two tree-sitter indent rules, it replaces, adds, or prepends the
|
||||
new rules to the old ones, then returns the new tree-sitter indent
|
||||
rules. In a multi-language major mode it is sometimes necessary to
|
||||
modify rules from one of the major modes, with others that are better
|
||||
suited to the new multilingual context.
|
||||
*** New function 'treesit-simple-indent-modify-rules'.
|
||||
Given two tree-sitter indent rules, it replaces, adds, or prepends rules
|
||||
in the old rules with new ones, then returns the modified rules. In a
|
||||
multi-language major mode it is sometimes necessary to modify rules from
|
||||
one of the major modes to better suit the new multilingual context.
|
||||
|
||||
+++
|
||||
*** New command 'treesit-explore'.
|
||||
|
|
|
@ -324,14 +324,14 @@ NODE and PARENT are ignored."
|
|||
;; Extended rules for js and css, to
|
||||
;; indent appropriately when injected
|
||||
;; into html
|
||||
(treesit-modify-indent-rules
|
||||
(treesit-simple-indent-modify-rules
|
||||
'javascript
|
||||
`((javascript ((parent-is "program")
|
||||
mhtml-ts-mode--js-css-tag-bol
|
||||
mhtml-ts-mode--js-css-indent-offset)))
|
||||
js--treesit-indent-rules
|
||||
:replace)
|
||||
(treesit-modify-indent-rules
|
||||
(treesit-simple-indent-modify-rules
|
||||
'css
|
||||
`((css ((parent-is "stylesheet")
|
||||
mhtml-ts-mode--js-css-tag-bol
|
||||
|
|
|
@ -2540,12 +2540,18 @@ end of existing rules."
|
|||
(append rules existing-rules)))))
|
||||
(setf (alist-get language treesit-simple-indent-rules) new-rules)))
|
||||
|
||||
(defun treesit-modify-indent-rules (lang new-rules rules &optional how)
|
||||
"Modify a copy of RULES using NEW-RULES.
|
||||
As default replace rules with the same anchor.
|
||||
When HOW is :prepend NEW-RULES are prepend to RULES, when
|
||||
:append NEW-RULES are appended to RULES, when :replace (the default)
|
||||
NEW-RULES replace rule in RULES which the same anchor."
|
||||
(defun treesit-simple-indent-modify-rules (lang new-rules rules &optional how)
|
||||
"Pick out rules for LANG in RULES, and modify it according to NEW_RULES.
|
||||
|
||||
RULES should have the same form as `treesit-simple-indent-rules', i.e, a
|
||||
list of (LANG RULES...). Return a new modified rules in the form
|
||||
of (LANG RULES...).
|
||||
|
||||
If HOW is omitted or :replace, for each rule in NEW-RULES, find the old
|
||||
rule that has the same matcher, and replace it.
|
||||
|
||||
If HOW is :prepend, just prepend NEW-RULES to the old rules; if HOW is
|
||||
:append, append NEW-RULES."
|
||||
(cond
|
||||
((not (alist-get lang rules))
|
||||
(error "No rules for language %s in RULES" lang))
|
||||
|
|
Loading…
Add table
Reference in a new issue