summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2025-05-31 08:29:50 -0400
committerEli Zaretskii <eliz@gnu.org>2025-05-31 08:29:50 -0400
commitb3a8633dbad04fbd381ab2c8ea8b4c2b953c809f (patch)
tree0bc3134354511782876d093cd04bf824eae32904
parent6f8cee03316e166e4204ba49fbb9964a075968ca (diff)
parent1d2ae31b8bcca5f00c3c707cc7af3a347749c332 (diff)
Merge from origin/emacs-30
1d2ae31b8bc typescript-ts-mode: Improve function body indentation (bu... 421ecbcf6b4 ; * CONTRIBUTE: Explain the line-width preferences.
-rw-r--r--CONTRIBUTE4
-rw-r--r--lisp/progmodes/typescript-ts-mode.el4
-rw-r--r--test/lisp/progmodes/typescript-ts-mode-resources/indent.erts25
3 files changed, 30 insertions, 3 deletions
diff --git a/CONTRIBUTE b/CONTRIBUTE
index eda300f01bc..be10dbda8b3 100644
--- a/CONTRIBUTE
+++ b/CONTRIBUTE
@@ -234,7 +234,9 @@ formatting them:
- Lines in ChangeLog entries should preferably be not longer than 63
characters, and must not exceed 78 characters, unless they consist
of a single word of at most 140 characters; this 78/140 limit is
- enforced by a commit hook.
+ enforced by a commit hook. (The 63-character preference is to
+ avoid too-long lines in the ChangeLog file generated from Git logs,
+ where each entry line is indented by a TAB.)
- If only a single file is changed, the summary line can be the normal
first line of a ChangeLog entry (starting with the asterisk). Then
diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el
index 24953f629de..6f807c254bd 100644
--- a/lisp/progmodes/typescript-ts-mode.el
+++ b/lisp/progmodes/typescript-ts-mode.el
@@ -155,7 +155,7 @@ Argument LANGUAGE is either `typescript' or `tsx'."
(typescript-ts-mode--check-dialect language)
`((,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)
@@ -165,7 +165,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)
diff --git a/test/lisp/progmodes/typescript-ts-mode-resources/indent.erts b/test/lisp/progmodes/typescript-ts-mode-resources/indent.erts
index e8b1d57f132..210bfcabd41 100644
--- a/test/lisp/progmodes/typescript-ts-mode-resources/indent.erts
+++ b/test/lisp/progmodes/typescript-ts-mode-resources/indent.erts
@@ -182,3 +182,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;
+}
+=-=-=