google / google/google-java-format

Method parameter with many annotations gets unintuitive indentation

Open
#1,267 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
6.2k
Forks
937
Avg merge
6m
Merged PRs (30d)
3

Description

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) {}
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.