2016-04-15 15 views
0

Ich möchte eine Checkstyle-Regel erstellen, die Annotationen in einer separaten Zeile mit Ausnahme von Funktionsparametern und für jede Schleife erzwingt. Gibt es eine Möglichkeit, solche Regel zu erstellen, so dass der folgende Code gültig ist:Checkstyle für Annotation

@Deprecated 
public class Annotation 
{ 
    @Deprecated 
    public void test(@Nullable String s) { 
    @Rule 
    Integer i; 
    for (@Nullable Char c : s.getChars()) { 
    } 
    } 
} 
+0

Ich weiß nicht, Checkstyle und kann Ihnen nicht helfen, aber ich denke, es könnte nützlich sein, die Sprache hinzuzufügen, die Sie damit analysieren, denn im Allgemeinen eine Sprache könnte einige Syntaxregeln haben, die genommen werden müssen beim Schreiben von Checkstyle-Regeln berücksichtigen. –

+0

Von [http://checkstyle.sourceforge.net] (http://checkstyle.sourceforge.net) "Checkstyle ist ein Entwicklungstool, das Programmierern hilft, ** Java ** Code zu schreiben, der einem Kodierungsstandard entspricht." –

+0

Ok, danke, ich habe gerade die Beschreibung des Tags hier auf SO überprüft, und es erwähnt nicht, dass es spezifisch für Java ist. Aber du antwortest 10 Monate später? Beeindruckend! –

Antwort

0

Sie AnnotationLocation Prüfung benutzen kann, aber sieht aus wie es nicht möglich, jetzt ist eine solche Regel zu erstellen, da beide Integer i und Char c VARIABLE_DEF sind, so können Sie entweder alle Variablendefinitionen erzwingen ihre Anmerkungen in einer separaten Zeile haben:

<module name="AnnotationLocation"> 
     <property name="allowSamelineSingleParameterlessAnnotation" value="false"/> 
    </module> 

oder sie auf der gleichen Linie erlauben:

<module name="AnnotationLocation"> 
     <property name="allowSamelineSingleParameterlessAnnotation" value="false"/> 
     <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> 
    </module> 

Es ist jedoch eine gute Idee für eine neue Option für die AnnotationLocation-Prüfung. Bitte erstellen Sie ein Problem dafür: issue tracking, How to request new feature for existing functionality?.

+0

Es wird jetzt unterstützt. Siehe [https://github.com/checkstyle/checkstyle/issues/3117](https://github.com/checkstyle/checkstyle/issues/3117) –