|
From: | 赵 纪阳 |
Subject: | bug#61142: 回复: bug#61142: 29.0.60; java-ts-mode - Wrong indentation for the body of multiple lines conditions |
Date: | Sun, 5 Feb 2023 13:09:19 +0000 |
Thanks for the patch.
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
}
}
```
发件人: Theodor Thornhill <theo@thornhill.no>
发送时间: 2023年2月5日 15:53 收件人: 太阳 <zjyzhaojiyang@hotmail.com> 抄送: 61142@debbugs.gnu.org <61142@debbugs.gnu.org> 主题: Re: bug#61142: 29.0.60; java-ts-mode - Wrong indentation for the body of multiple lines conditions Theodor Thornhill <theo@thornhill.no> writes:
> 太阳 <zjyzhaojiyang@hotmail.com> writes: > >> After reading treesit's manual, I found that we can use `n-p-gp` as the matcher >> and `grand-parent` as the anchor to match the body of `if` (and `while`, which >> has a similar issue). >> >> I mean a rule looks like the following: >> >> ``` >> ((n-p-gp nil "block" "if_statement") grand-parent java-ts-mode-indent-offset) >> ``` >> >> > > > Thanks! We have a mechanism in place for this, see > 'c-ts-common-statement-offset' in 'c-ts-common.el'. I didn't get to it > yet, but I'll try to look at it this evening, unless you want to? See > c-ts-mode for examples of how to use it, if you're interested! > > Theo Hi again! Can you test this patch for me? @Eli: Is this ok for emacs-29? I'd love to add some test for this, but now they are on the master branch. What is the common procedure to move stuff from master branch to the release branch? I _can_ just add some test to the master branch, but it would be nice to have them on emacs-29 too :-) Theo |
[Prev in Thread] | Current Thread | [Next in Thread] |