summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/progmodes/c-ts-mode.el4
-rw-r--r--lisp/treesit.el9
2 files changed, 9 insertions, 4 deletions
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index 0b775b2d5c8..fdd962ff020 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -419,7 +419,9 @@ MODE is either `c' or `cpp'."
((parent-is "field_declaration_list") c-ts-mode--anchor-prev-sibling 0)
;; Statement in {} blocks.
- ((match nil "compound_statement" nil 1 1) standalone-parent c-ts-mode-indent-offset)
+ ((or (match nil "compound_statement" nil 1 1)
+ (match null "compound_statement"))
+ standalone-parent c-ts-mode-indent-offset)
((parent-is "compound_statement") c-ts-mode--anchor-prev-sibling 0)
;; Opening bracket.
((node-is "compound_statement") standalone-parent c-ts-mode-indent-offset)
diff --git a/lisp/treesit.el b/lisp/treesit.el
index 44a93f5e261..c118f5d52a4 100644
--- a/lisp/treesit.el
+++ b/lisp/treesit.el
@@ -1107,9 +1107,11 @@ See `treesit-simple-indent-presets'.")
(&optional node-type parent-type node-field
node-index-min node-index-max)
(lambda (node parent &rest _)
- (and (or (null node-type)
- (string-match-p
- node-type (or (treesit-node-type node) "")))
+ (and (pcase node-type
+ ('nil t)
+ ('null (null node))
+ (_ (string-match-p
+ node-type (or (treesit-node-type node) ""))))
(or (null parent-type)
(string-match-p
parent-type (treesit-node-type parent)))
@@ -1302,6 +1304,7 @@ MATCHER:
(match nil \"argument_list\" nil nil 0 0).
NODE-TYPE, PARENT-TYPE, and NODE-FIELD are regexps.
+ NODE-TYPE can also be `null', which matches when NODE is nil.
no-node