GNU bug report logs - #61142
29.0.60; java-ts-mode - Wrong indentation for the body of multiple lines conditions

Previous Next

Package: emacs;

Reported by: 太阳 <zjyzhaojiyang <at> hotmail.com>

Date: Sun, 29 Jan 2023 08:33:03 UTC

Severity: normal

Found in version 29.0.60

Fixed in version 29.1

Done: Theodor Thornhill <theo <at> thornhill.no>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Theodor Thornhill <theo <at> thornhill.no>
To: 赵 纪阳 <zjyzhaojiyang <at> hotmail.com>
Cc: "61142 <at> debbugs.gnu.org" <61142 <at> debbugs.gnu.org>
Subject: bug#61142: 回复: bug#61142: 29.0.60; java-ts-mode - Wrong indentation for the body of multiple lines conditions
Date: Sun, 05 Feb 2023 20:19:19 +0100
[Message part 1 (text/plain, inline)]
赵 纪阳 <zjyzhaojiyang <at> hotmail.com> writes:

> Thanks for the patch.
>

Thanks for testing!

> I've not tested this patch adequately, but I found an issue:
> java-ts-mode indents the body of `else if` with one more level of indentation.
>
> ```
> public class T {
>     int f() {
>         int a = 0;
>         int b = 1;
>         if (a == 0
>             && b == 1) {
>             // indentation ok
>             return 0;
>         } else if (a == 1 ) {
>                 // indentation more
>                 return 1;
>             }
>     }
> }
> ```
> If the second branch of the if-statement is just an `else` (not `else if`), the body of it will be indented correctly.
>
>
> I've also tested c-ts-mode (use 'linux as c-ts-mode-indent-style) and it also has this kind of problem.
> ```
> int main() {
>     int a = 0;
>     if (a == 0) {
>         // indentation ok
>     } else if (a == 2) {
>             // indentation more
>         }
> }
> ```
>

Right, I remember this.  This finally made me create a fix - can you
test the provided patch and check if this works for you?  It works
nicely for me, at least.

Theo

[0001-Use-c-ts-common-statement-offset-in-java-ts-mode.patch (text/x-patch, attachment)]

This bug report was last modified 2 years and 112 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.