treesit-sexp-type-regexp.patch
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el
index d773b4a41f4..e55d26177af 100644
--- a/lisp/progmodes/c-ts-mode.el
+++ b/lisp/progmodes/c-ts-mode.el
@@ -927,7 +927,9 @@ c-ts-base-mode
"qualifier"
"type"
"parameter"
- "expression"
+ ;; "expression"
+ "argument_list"
+ "identifier"
"literal"
"string")))
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index f68ecb6fa6c..3876a5b54f1 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -3827,7 +3827,9 @@ js--treesit-sentence-nodes
"See `treesit-sentence-type-regexp' for more information.")
(defvar js--treesit-sexp-nodes
- '("expression"
+ '("expression" ;; SHOULD NOT MATCH "expression_statement", BUT SHOULD MATCH
"parenthesized_expression"
+ "parenthesized_expression"
+ "formal_parameters"
"pattern"
"array"
"function"
@@ -3845,7 +3847,13 @@ js--treesit-sexp-nodes
"undefined"
"arguments"
"pair"
- "jsx")
+ "jsx"
+ "statement_block"
+ "object"
+ "object_pattern"
+ "named_imports"
+ "class_body"
+ )
"Nodes that designate sexps in JavaScript.
See `treesit-sexp-type-regexp' for more information.")
@@ -3893,7 +3901,7 @@ js-ts-mode
(regexp-opt js--treesit-sentence-nodes))
(setq-local treesit-sexp-type-regexp
- (regexp-opt js--treesit-sexp-nodes))
+ (rx-to-string `(seq bol (or ,@js--treesit-sexp-nodes) eol)))
;; Fontification.
(setq-local treesit-font-lock-settings js--treesit-font-lock-settings)