google / google/google-java-format

Method parameter with many annotations gets unintuitive indentation

未關閉
#1,267 5 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Java
星號
6.2k
分支
936
平均合併
6 分鐘
30 天內合併 PR
3

描述

The first annotation is indented as expected, but any additional annotations and the method parameter itself get an additional indent. I'd expect all lines to have the same indentation.

To reproduce, format:

```java
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.web.bind.annotation.RequestParam;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.Locale;

class Test {

void foo(@NotNull @Parameter(name = "Indicates the language of the label to search", required = true) @Valid @RequestParam(value = "language", required = true) Locale language) {}
}
```

Actual (using the native executable built from 61eabd62d6a461c27621ebc77240345e40fb60b4):

```java
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.Locale;
import org.springframework.web.bind.annotation.RequestParam;

class Test {

void foo(
@NotNull
@Parameter(name = "Indicates the language of the label to search", required = true)
@Valid
@RequestParam(value = "language", required = true)
Locale language) {}
}
```

Expected:

```java
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import java.util.Locale;
import org.springframework.web.bind.annotation.RequestParam;

class Test {

void foo(
@NotNull
@Parameter(name = "Indicates the language of the label to search", required = true)
@Valid
@RequestParam(value = "language", required = true)
Locale language) {}
}
```

貢獻指南

開啟貢獻指南

研究方向

先格式化 issue 中顯示的 Java 重現程式碼,並比較實際縮排與預期縮排。追蹤負責方法參數與註解的 formatter 進入點;當所有註解與參數具有相同的縮排,且有一個涵蓋此範例的回歸測試時,即表示完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java
領域
tooling
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
描述清楚
新手友好度
45/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。