Since Checkstyle 3.0
allowLineBreaks
to true
. No check occurs
before semicolons in empty for loop initializers or conditions.
name | description | type | default value | since |
---|---|---|---|---|
allowLineBreaks | Control whether whitespace is allowed if the token is at a linebreak. | boolean | false |
3.0 |
tokens | tokens to check | subset of tokens COMMA , SEMI , POST_INC , POST_DEC , DOT , GENERIC_START , GENERIC_END , ELLIPSIS , LABELED_STAT , METHOD_REF . | COMMA , SEMI , POST_INC , POST_DEC , ELLIPSIS , LABELED_STAT . | 3.0 |
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="NoWhitespaceBefore"/> </module> </module>
Example:
class Example1 { int foo = 5; void example() { foo ++; // violation 'is preceded with whitespace' foo++; for (int i = 0 ; i < 5; i++) {} // violation '';' is preceded with whitespace' for (int i = 0; i < 5; i++) {} int[][] array = { { 1, 2 } , { 3, 4 } }; // violation '',' is preceded with whitespace' int[][] array2 = { { 1, 2 }, { 3, 4 } }; Lists.charactersOf("foo").listIterator() .forEachRemaining(System.out::print) ; // violation '';' is preceded with whitespace' { label1 : // violation '':' is preceded with whitespace' for (int i = 0; i < 10; i++) {} } { label2: while (foo < 5) {} } } }
To configure the check to allow linebreaks before default tokens:
<module name="Checker"> <module name="TreeWalker"> <module name="NoWhitespaceBefore"> <property name="allowLineBreaks" value="true"/> </module> </module> </module>
Example:
class Example2 { int[][] array = { { 1, 2 } , { 3, 4 } }; int[][] array2 = { { 1, 2 }, { 3, 4 } }; void ellipsisExample(String ...params) {}; // violation above ''...' is preceded with whitespace' void ellipsisExample2(String ...params) { Lists.charactersOf("foo") .listIterator() .forEachRemaining(System.out::print); }; }
To Configure the check to restrict the use of whitespace before METHOD_REF and DOT tokens:
<module name="Checker"> <module name="TreeWalker"> <module name="NoWhitespaceBefore"> <property name="tokens" value="METHOD_REF, DOT"/> </module> </module> </module>
Example:
class Example3 { void example() { Lists.charactersOf("foo").listIterator() .forEachRemaining(System.out::print); // violation above ''.' is preceded with whitespace' Lists.charactersOf("foo").listIterator().forEachRemaining(System.out ::print); // violation above ''::' is preceded with whitespace' Lists.charactersOf("foo").listIterator().forEachRemaining(System.out::print); } }
To configure the check to allow linebreak before METHOD_REF and DOT tokens:
<module name="Checker"> <module name="TreeWalker"> <module name="NoWhitespaceBefore"> <property name="tokens" value="METHOD_REF, DOT"/> <property name="allowLineBreaks" value="true"/> </module> </module> </module>
Example:
class Example4 { void example() { Lists .charactersOf("foo") // violation ''.' is preceded with whitespace' .listIterator() .forEachRemaining(System.out ::print); // violation above ''::' is preceded with whitespace' Lists.charactersOf("foo") .listIterator() .forEachRemaining(System.out::print); } }
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.whitespace