diff options
author | Theodor Thornhill <theo@thornhill.no> | 2023-01-15 22:14:51 +0100 |
---|---|---|
committer | Theodor Thornhill <theo@thornhill.no> | 2023-01-15 22:18:02 +0100 |
commit | 70477be3e38d7bd5243e5d2f66577d8fbe8d1010 (patch) | |
tree | 2b2ca9eed0706cb81de6a2a76f2042661e31da97 /lisp/progmodes/js.el | |
parent | 9ec60fde2e8b2b144a04d05031a83469abe7846f (diff) | |
download | emacs-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.el | 29 |
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 |