1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 20:32:00 -08:00

Tweak various ts-mode's indent and fontification (bug#59931)

* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Add raw
string literal font-locking.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): Add
text_block indent rule.
(java-ts-mode--font-lock-settings): Add text_block font-locking.
* lisp/progmodes/js.el (js-ts-mode): Prefer top-level navigation.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--font-lock-settings):
Add comment feature.
(json-ts-mode): Use comment feature.
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode):
Prefer top-level navigation.
This commit is contained in:
Theodor Thornhill 2022-12-09 22:36:03 +01:00 committed by Yuan Fu
parent 647b6a8099
commit 8ec923775d
No known key found for this signature in database
GPG key ID: 56E19BC57664A442
5 changed files with 13 additions and 3 deletions

View file

@ -251,7 +251,9 @@ MODE is either `c' or `cpp'."
:language mode
:feature 'string
`((string_literal) @font-lock-string-face
(system_lib_string) @font-lock-string-face)
(system_lib_string) @font-lock-string-face
,@(when (eq mode 'cpp)
'((raw_string_literal) @font-lock-string-face)))
:language mode
:feature 'literal

View file

@ -73,6 +73,7 @@
((node-is "]") parent-bol 0)
((and (parent-is "comment") comment-end) comment-start -1)
((parent-is "comment") comment-start-skip 0)
((parent-is "text_block") no-indent)
((parent-is "class_body") parent-bol java-ts-mode-indent-offset)
((parent-is "interface_body") parent-bol java-ts-mode-indent-offset)
((parent-is "constructor_body") parent-bol java-ts-mode-indent-offset)
@ -162,7 +163,8 @@
:language 'java
:override t
:feature 'string
`((string_literal) @font-lock-string-face)
`((string_literal) @font-lock-string-face
(text_block) @font-lock-string-face)
:language 'java
:override t
:feature 'literal

View file

@ -3871,6 +3871,7 @@ Currently there are `js-mode' and `js-ts-mode'."
;; Indent.
(setq-local treesit-simple-indent-rules js--treesit-indent-rules)
;; Navigation.
(setq-local treesit-defun-prefer-top-level t)
(setq-local treesit-defun-type-regexp
(rx (or "class_declaration"
"method_definition"

View file

@ -74,6 +74,9 @@
(defvar json-ts-mode--font-lock-settings
(treesit-font-lock-rules
:language 'json
:feature 'comment
'((comment) @font-lock-comment-face)
:language 'json
:feature 'bracket
'((["[" "]" "{" "}"]) @font-lock-bracket-face)
@ -161,7 +164,7 @@ the subtrees."
;; Font-lock.
(setq-local treesit-font-lock-settings json-ts-mode--font-lock-settings)
(setq-local treesit-font-lock-feature-list
'((constant number pair string)
'((comment constant number pair string)
(escape-sequence)
(bracket delimiter error)))

View file

@ -329,6 +329,8 @@ Argument LANGUAGE is either `typescript' or `tsx'."
(group (or (syntax comment-end)
(seq (+ "*") "/")))))
(setq-local treesit-defun-prefer-top-level t)
;; Electric
(setq-local electric-indent-chars
(append "{}():;," electric-indent-chars))