google / google/google-java-format

String wrapping is not idempotent

Offen
#935 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Java
Sterne
6.2k
Forks
937
Ø Merge
6 Min.
Gemergte PRs (30 T.)
3

Beschreibung

This happened with the all deps jar from github, for both versions `1.15.0` and `1.16.0`.

```
$ java --version
openjdk 17.0.6 2023-01-17
OpenJDK Runtime Environment (build 17.0.6+10)
OpenJDK 64-Bit Server VM (build 17.0.6+10, mixed mode)
```

Example code is

```java
package com.example;

public class TestFormat {

public void main() {
var value = 1;
var responseMessage =
switch (value) {
case 1 -> "This is a long string;This is a long string;This is a long string;This is a long string;This is a long string;This is a long string;This is a long string;";
case 2 -> "some short string";
case 3 -> "some medium string some medium string some medium string some medium string";
};
}
}
```

Now these strings in the switch statement will be different formatted depending on how often I call google java format.
Weirdly enough, the cosium maven plugin (gjf `v1.15.0`) does not change the strings in this example at all. This would be preferable for me, but mostly I want a consistent format.

```
## executing preview only
$ java -jar /home/dev/dev/libs/google-java-format-1.15.0-all-deps.jar Testformat.java
package com.example;

public class TestFormat {

public void main() {
var value = 1;
var responseMessage =
switch (value) {
case 1 -> "This is a long string;This is a long string;This is a long string;This is a"
+ " long string;This is a long string;This is a long string;This is a long"
+ " string;";
case 2 -> "some short string";
case 3 -> "some medium string some medium string some medium string some medium string";
};
}
}

## applying changes
$ java -jar /home/dev/dev/libs/google-java-format-1.15.0-all-deps.jar -r Testformat.java

## executing preview only
$ java -jar /home/dev/dev/libs/google-java-format-1.15.0-all-deps.jar Testformat.java
package com.example;

public class TestFormat {

public void main() {
var value = 1;
var responseMessage =
switch (value) {
case 1 -> "This is a long string;This is a long string;This is a long string;This is a"
+ " long string;This is a long string;This is a long string;This is a long"
+ " string;";
case 2 -> "some short string";
case 3 -> "some medium string some medium string some medium string some medium string";
};
}
}
```

The expectation would be that once I format a file every future format call would not change anything anymore as long as nothing was changed on the file.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.