From 0961746742ccfed158c40d1309a44590a5a5bb3e Mon Sep 17 00:00:00 2001 From: Yuan Fu Date: Mon, 17 Feb 2025 13:27:52 -0800 Subject: [PATCH] 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. (cherry picked from commit 928bad93609773ca5e9c94cf6e8f24e895e263d3) --- lisp/textmodes/mhtml-ts-mode.el | 4 ++-- lisp/treesit.el | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lisp/textmodes/mhtml-ts-mode.el b/lisp/textmodes/mhtml-ts-mode.el index 0d53176f166..64f44751213 100644 --- a/lisp/textmodes/mhtml-ts-mode.el +++ b/lisp/textmodes/mhtml-ts-mode.el @@ -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 diff --git a/lisp/treesit.el b/lisp/treesit.el index f6f9a9952b7..de9d963d7f6 100644 --- a/lisp/treesit.el +++ b/lisp/treesit.el @@ -2532,12 +2532,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)) -- 2.39.5