Improve indentation for jsx

* lisp/progmodes/js.el (js--treesit-indent-rules): Use more parent
anchors and fix typo with wrong indent offset variable.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Use more parent anchors.
This commit is contained in:
Theodor Thornhill 2023-01-15 21:31:16 +01:00
parent 82ae9caadd
commit 44c9cb8653
2 changed files with 17 additions and 12 deletions

View file

@ -3454,13 +3454,16 @@ This function is intended for use in `after-change-functions'."
((parent-is "statement_block") parent-bol js-indent-level)
;; JSX
((node-is "jsx_fragment") parent typescript-ts-mode-indent-offset)
((node-is "jsx_element") parent typescript-ts-mode-indent-offset)
((node-is "jsx_expression") parent typescript-ts-mode-indent-offset)
((node-is "jsx_self_closing_element") parent typescript-ts-mode-indent-offset)
((match "<" "jsx_fragment") parent 0)
((parent-is "jsx_fragment") parent js-indent-level)
((node-is "jsx_closing_element") parent 0)
((node-is "/") parent 0)
((node-is ">") parent 0)))))
((node-is "jsx_element") parent js-indent-level)
((parent-is "jsx_element") parent js-indent-level)
((parent-is "jsx_opening_element") parent js-indent-level)
((parent-is "jsx_expression") parent-bol js-indent-level)
((match "/" "jsx_self_closing_element") parent 0)
((parent-is "jsx_self_closing_element") parent js-indent-level)
(no-node parent-bol 0)))))
(defvar js--treesit-keywords
'("as" "async" "await" "break" "case" "catch" "class" "const" "continue"

View file

@ -97,13 +97,15 @@ Argument LANGUAGE is either `typescript' or `tsx'."
((parent-is "binary_expression") parent-bol typescript-ts-mode-indent-offset)
,@(when (eq language 'tsx)
`(((node-is "jsx_fragment") parent typescript-ts-mode-indent-offset)
((node-is "jsx_element") parent typescript-ts-mode-indent-offset)
((node-is "jsx_expression") parent typescript-ts-mode-indent-offset)
((node-is "jsx_self_closing_element") parent typescript-ts-mode-indent-offset)
`(((match "<" "jsx_fragment") parent 0)
((parent-is "jsx_fragment") parent typescript-ts-mode-indent-offset)
((node-is "jsx_closing_element") parent 0)
((node-is "/") parent 0)
((node-is ">") parent 0)))
((node-is "jsx_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_opening_element") parent typescript-ts-mode-indent-offset)
((parent-is "jsx_expression") parent-bol typescript-ts-mode-indent-offset)
((match "/" "jsx_self_closing_element") parent 0)
((parent-is "jsx_self_closing_element") parent typescript-ts-mode-indent-offset)))
(no-node parent-bol 0))))
(defvar typescript-ts-mode--keywords