mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
typescript-ts-mode: Improve function body indentation (bug#78121)
Older code was calculating body indentation depending on function parameters alignment. This is incorrect, because if parameters are misaligned, so will the function body. Instead, use offset of the previous standalone parent. * lisp/progmodes/typescript-ts-mode.el: (typescript-ts-mode--indent-rules): Stop depending on function parameters indentation for calculating body content and the closing `}'. * test/lisp/progmodes/typescript-ts-mode-resources/indent.erts: (Function body with params misindented (bug#78121)): Add new test.
This commit is contained in:
parent
421ecbcf6b
commit
1d2ae31b8b
2 changed files with 27 additions and 2 deletions
|
|
@ -111,7 +111,7 @@ declarations, accounting for the length of keyword (var, let, or const)."
|
|||
Argument LANGUAGE is either `typescript' or `tsx'."
|
||||
`((,language
|
||||
((parent-is "program") column-0 0)
|
||||
((node-is "}") parent-bol 0)
|
||||
((node-is "}") standalone-parent 0)
|
||||
((node-is ")") parent-bol 0)
|
||||
((node-is "]") parent-bol 0)
|
||||
((node-is ">") parent-bol 0)
|
||||
|
|
@ -121,7 +121,7 @@ Argument LANGUAGE is either `typescript' or `tsx'."
|
|||
((parent-is "ternary_expression") standalone-parent typescript-ts-mode-indent-offset)
|
||||
((parent-is "member_expression") parent-bol typescript-ts-mode-indent-offset)
|
||||
((parent-is "named_imports") parent-bol typescript-ts-mode-indent-offset)
|
||||
((parent-is "statement_block") parent-bol typescript-ts-mode-indent-offset)
|
||||
((parent-is "statement_block") standalone-parent typescript-ts-mode-indent-offset)
|
||||
((or (node-is "case")
|
||||
(node-is "default"))
|
||||
parent-bol typescript-ts-mode-indent-offset)
|
||||
|
|
|
|||
|
|
@ -164,3 +164,28 @@ interface Foo {
|
|||
bar?: boolean;
|
||||
}
|
||||
=-=-=
|
||||
|
||||
Code:
|
||||
(lambda ()
|
||||
(setq tsx-ts-mode-indent-offset 2)
|
||||
(tsx-ts-mode)
|
||||
(setq indent-tabs-mode nil)
|
||||
(indent-region (line-beginning-position 7) (point-max)))
|
||||
|
||||
Name: Function body with params misindented (bug#78121)
|
||||
|
||||
=-=
|
||||
const f1 = (a1: string,
|
||||
a2: number) => {
|
||||
const f2 = (a1: string,
|
||||
a2: number) => {
|
||||
const f3 = (a1: string,
|
||||
a2: number) =>
|
||||
{
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
=-=-=
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue