String wrapping is not idempotent
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 45/100
Piste de recherche
Reproduisez le problème avec l’exemple TestFormat.java fourni en utilisant le JAR all-deps de google-java-format 1.15.0 ou 1.16.0 sur Java 17. Exécutez le formatage à plusieurs reprises et comparez la disposition de la chaîne de switch-expression après chaque passage. C’est terminé lorsque le formatage du fichier inchangé produit une sortie identique à chaque exécution suivante.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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
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.
- Langage dominant
- Java
- Étoiles
- 6.2k
- Forks
- 936
- Merge moyen
- 6 min
- PR mergées (30 j)
- 3
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de google/google-java-format
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
google/google-java-format#1094 · 1 commentaire ·
-
Complementary Teamups Ouverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
google/google-java-format#1450 · 1 réaction ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
google/google-java-format#1439 · 1 commentaire ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
google/google-java-format#1436 · 2 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
google/google-java-format#1428 · 4 commentaires ·
Toutes les issues de google/google-java-format
Issues similaires
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Ouvertearea/plugin
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Add canonical URLs and a sitemap Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
apache/rocketmq-dashboard#5064 ·
-
Consent portal: creating a duplicate Purpose shows a generic error instead of "already exists" Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
wso2/dpdp-accelerator#287 ·