From aae9030481a8711093acd5e3e4f67afe7baf73e7 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Fri, 31 May 2024 09:34:28 +0300 Subject: [PATCH] Limit matches of treesit-thing-settings in js-ts-mode (bug#71244) * 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 | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 6cb84592896..f5629ff8fbe 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -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) -- 2.39.2