diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 659db46dc12..f70869c10bb 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -434,6 +434,8 @@ MODE is either `c' or `cpp'." ((parent-is "while_statement") standalone-parent c-ts-mode-indent-offset) ((parent-is "do_statement") standalone-parent c-ts-mode-indent-offset) + ((parent-is "case_statement") standalone-parent c-ts-mode-indent-offset) + ,@(when (eq mode 'cpp) `(((node-is "field_initializer_list") parent-bol ,(* c-ts-mode-indent-offset 2))))))) `((gnu diff --git a/test/lisp/progmodes/c-ts-mode-resources/indent.erts b/test/lisp/progmodes/c-ts-mode-resources/indent.erts index 9e28ef203fd..5cdefe2122c 100644 --- a/test/lisp/progmodes/c-ts-mode-resources/indent.erts +++ b/test/lisp/progmodes/c-ts-mode-resources/indent.erts @@ -188,6 +188,36 @@ int main() } =-=-= +Name: Switch-Case statement + +=-= +int main() { +switch (a) { +case 1: +b = c; +return 10; +case 2: +{ +a = b; +return 12 +} +} +} +=-= +int main() { + switch (a) { + case 1: + b = c; + return 10; + case 2: + { + a = b; + return 12 + } + } +} +=-=-= + Name: Multiline Block Comments 1 (bug#60270) =-=