summaryrefslogtreecommitdiff
path: root/lisp/progmodes/js.el
diff options
context:
space:
mode:
authorTheodor Thornhill <theo@thornhill.no>2023-01-15 22:14:51 +0100
committerTheodor Thornhill <theo@thornhill.no>2023-01-15 22:18:02 +0100
commit70477be3e38d7bd5243e5d2f66577d8fbe8d1010 (patch)
tree2b2ca9eed0706cb81de6a2a76f2042661e31da97 /lisp/progmodes/js.el
parent9ec60fde2e8b2b144a04d05031a83469abe7846f (diff)
downloademacs-70477be3e38d7bd5243e5d2f66577d8fbe8d1010.tar.gz
Add treesit-sentence-type-regexp
* lisp/progmodes/js.el (js--treesit-sentence-type-regexp): New defvar with sentence nodes. (js-ts-mode): Use the new defvar for treesit-sentence-type-regexp. * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--sentence-type-regexp): New defvar with sentence nodes. * lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode): Use the new defvar for treesit-sentence-type-regexp. (tsx-ts-mode): Extend treesit-sentence-type-regexp with jsx nodes.
Diffstat (limited to 'lisp/progmodes/js.el')
-rw-r--r--lisp/progmodes/js.el29
1 files changed, 29 insertions, 0 deletions
diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el
index 902d4fa7ab3..f6103d43eea 100644
--- a/lisp/progmodes/js.el
+++ b/lisp/progmodes/js.el
@@ -3789,6 +3789,31 @@ Currently there are `js-mode' and `js-ts-mode'."
;;(syntax-propertize (point-max))
)
+(defvar js--treesit-sentence-type-regexp
+ '("import_statement"
+ "debugger_statement"
+ "expression_statement"
+ "if_statement"
+ "switch_statement"
+ "for_statement"
+ "for_in_statement"
+ "while_statement"
+ "do_statement"
+ "try_statement"
+ "with_statement"
+ "break_statement"
+ "continue_statement"
+ "return_statement"
+ "throw_statement"
+ "empty_statement"
+ "labeled_statement"
+ "variable_declaration"
+ "lexical_declaration"
+ "jsx_element"
+ "jsx_self_closing_element")
+ "Nodes that designate sentences in JavaScript.
+See `treesit-sentence-type-regexp' for more information.")
+
;;;###autoload
(define-derived-mode js-ts-mode js-base-mode "JavaScript"
"Major mode for editing JavaScript.
@@ -3828,6 +3853,10 @@ Currently there are `js-mode' and `js-ts-mode'."
"function_declaration"
"lexical_declaration")))
(setq-local treesit-defun-name-function #'js--treesit-defun-name)
+
+ (setq-local treesit-sentence-type-regexp
+ (regexp-opt js--treesit-sentence-type-regexp))
+
;; Fontification.
(setq-local treesit-font-lock-settings js--treesit-font-lock-settings)
(setq-local treesit-font-lock-feature-list