Annotation location when mixed with modifiers
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par comparer les exemples fournis avec des annotations mixtes aux sections 4.8.5 et 4.8.7 du Google Java Style Guide lié. Aucun fichier source ni test n’est indiqué ; il faut donc d’abord localiser la logique du formateur et la couverture existante pour les modificateurs et les annotations. Le travail est terminé lorsque le positionnement attendu est décidé et que les exemples sont formatés de manière cohérente.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When annotations are mixed with modifiers, formatter formats the code in following way:
$ cat TestingModifiers.java
/** some javadoc. */
public abstract class TestingModifiers {
abstract @MyAnnotation2 public void fooMet1();
final strictfp synchronized protected @MyAnnotation2 void fooMethod7() {}
synchronized final strictfp @MyAnnotation2 public void fooMethod5() {}
@MyAnnotation2 public static @MyAnnotation4 strictfp void someMethod5() {}
strictfp protected final @MyAnnotation2 static synchronized void fooMethod1() {}
native synchronized protected static @MyAnnotation2 void fooMethod3();
}
$ java -jar google-java-format-1.23.0-all-deps.jar TestingModifiers.java > TestingModifiersUpdated.java
$ cat TestingModifiersUpdated.java
/** some javadoc. */
public abstract class TestingModifiers {
abstract @MyAnnotation2 public void fooMet1();
protected final synchronized strictfp @MyAnnotation2 void fooMethod7() {}
final synchronized strictfp @MyAnnotation2 public void fooMethod5() {}
@MyAnnotation2
public static @MyAnnotation4 strictfp void someMethod5() {}
protected final strictfp @MyAnnotation2 static synchronized void fooMethod1() {}
protected static synchronized native @MyAnnotation2 void fooMethod3();
}
$ diff -u TestingModifiers.java TestingModifiersUpdated.java
--- TestingModifiers.java 2024-08-28 11:00:02.129632600 +0530
+++ TestingModifiersUpdated.java 2024-08-28 11:01:40.748988100 +0530
@@ -2,13 +2,14 @@
public abstract class TestingModifiers {
abstract @MyAnnotation2 public void fooMet1();
- final strictfp synchronized protected @MyAnnotation2 void fooMethod7() {}
+ protected final synchronized strictfp @MyAnnotation2 void fooMethod7() {}
- synchronized final strictfp @MyAnnotation2 public void fooMethod5() {}
+ final synchronized strictfp @MyAnnotation2 public void fooMethod5() {}
- @MyAnnotation2 public static @MyAnnotation4 strictfp void someMethod5() {}
+ @MyAnnotation2
+ public static @MyAnnotation4 strictfp void someMethod5() {}
- strictfp protected final @MyAnnotation2 static synchronized void fooMethod1() {}
+ protected final strictfp @MyAnnotation2 static synchronized void fooMethod1() {}
- native synchronized protected static @MyAnnotation2 void fooMethod3();
+ protected static synchronized native @MyAnnotation2 void fooMethod3();
}
From 4.8.7 Modifiers
Class and member modifiers, when present, appear in the order recommended by the Java Language Specification:
public protected private abstract default static final transient volatile synchronized native strictfp
There's not explicitly mentioned anything about position of annotations when mixed with modifiers or annotations should not be mixed with modifiers or something similar to that in above rule.
Also, in 4.8.5 Annotations, there's not explicitly mentioned that how annotations should be positioned when used with modifiers. But all sub-sections mostly refers to:
Annotations applying to a class appear immediately after the documentation block, and each annotation is listed on a line of its own (that is, one annotation per line).
Attention to:
immediately after the documentation block
This kind of implies that annotations should be placed before any modifiers. But formatter does not places annotations before modifiers as shown in above example. So if annotations should not be mixed with modifiers and placed at the beginning or in a separate line then formatter should be updated and format the code according to this.
- Langage dominant
- Java
- Étoiles
- 6.2k
- Forks
- 936
- Merge moyen
- 6 min
- PR mergées (30 j)
- 3
Préparer son environnement
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 ·
Les mainteneurs répondent en général sous 1 jour
-
Complementary TeamupsOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 15/100
google/google-java-format#1450 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
google/google-java-format#1439 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
google/google-java-format#1436 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
google/google-java-format#1428 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de google/google-java-format
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
ci-failure-cause test-failure
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
nextcloud/notes-android#3367 ·
Les mainteneurs répondent en général sous 1 jour
-
Feature
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
MuntashirAkon/AppManager#2058 ·
-
SarifLogger: artifactLocation.uri is not properly encoded for file names containing '#', '?', or '%'Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
checkstyle/checkstyle#21721 ·
Les mainteneurs répondent en général sous 1 jour