]> git.eshelyaron.com Git - emacs.git/commitdiff
Limit matches of treesit-thing-settings in js-ts-mode (bug#71244)
authorJuri Linkov <juri@linkov.net>
Fri, 31 May 2024 06:34:28 +0000 (09:34 +0300)
committerEshel Yaron <me@eshelyaron.com>
Sat, 1 Jun 2024 17:04:58 +0000 (19:04 +0200)
* lisp/progmodes/js.el (js-ts-mode): Use 'js--regexp-opt-symbol'
for 'js--treesit-sexp-nodes', 'js--treesit-sentence-nodes' and 'text'
that wraps the regexp in \_< and \_> delimiters to avoid false positives
such as "expression" used for "expression_statement".
(js--treesit-sexp-nodes): Add more useful nodes "parenthesized_expression",
"formal_parameters", "statement_block", "object", "object_pattern",
"named_imports", "class_body".

(cherry picked from commit 87e4e1beab05c297c6a4b2b159dd07246381884f)

lisp/progmodes/js.el

index 6cb84592896734b9013aee03b4ed66a9d3dd32e8..f5629ff8fbe0ebb48212432885ac9feb40c089d2 100644 (file)
@@ -3829,6 +3829,8 @@ See `treesit-thing-settings' for more information.")
 
 (defvar js--treesit-sexp-nodes
   '("expression"
+    "parenthesized_expression"
+    "formal_parameters"
     "pattern"
     "array"
     "function"
@@ -3846,7 +3848,12 @@ See `treesit-thing-settings' for more information.")
     "undefined"
     "arguments"
     "pair"
-    "jsx")
+    "jsx"
+    "statement_block"
+    "object"
+    "object_pattern"
+    "named_imports"
+    "class_body")
   "Nodes that designate sexps in JavaScript.
 See `treesit-thing-settings' for more information.")
 
@@ -3889,10 +3896,10 @@ See `treesit-thing-settings' for more information.")
 
     (setq-local treesit-thing-settings
                 `((javascript
-                   (sexp ,(regexp-opt js--treesit-sexp-nodes))
-                   (sentence ,(regexp-opt js--treesit-sentence-nodes))
-                   (text ,(regexp-opt '("comment"
-                                        "template_string"))))))
+                   (sexp ,(js--regexp-opt-symbol js--treesit-sexp-nodes))
+                   (sentence ,(js--regexp-opt-symbol js--treesit-sentence-nodes))
+                   (text ,(js--regexp-opt-symbol '("comment"
+                                                   "template_string"))))))
 
     ;; Fontification.
     (setq-local treesit-font-lock-settings js--treesit-font-lock-settings)