google / google/google-java-format
Method parameter with many annotations gets unintuitive indentation
- 主要語言
- 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