LineLength
Since Checkstyle 3.0
Description
Rationale: Long lines are hard to read in printouts or if developers have limited screen space for the source code, e.g. if the IDE displays additional information like project tree, class hierarchy, etc.
Properties
Examples
To configure the check to accept lines up to 80 characters long:
<module name="Checker">
<module name="LineLength"/>
</module>
Example1:
package com.puppycrawl.tools.checkstyle.checks.sizes.linelength;
import static com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck.MSG_KEY;
/**
* This is a short Javadoc comment.
* ThisJavadocCommentIsAReallyLongWordThatExceedsDefaultLineLimitOfEightyCharacters.
*/
class Example1 {
//violation 3 lines above 'Line is longer than 80 characters'
void testMethod(String str) {
str = MSG_KEY;
System.out.println("This is a short line.");
// violation below, 'Line is longer than 80 characters'
System.out.println("This line is long and exceeds the default limit of 80 characters.");
}
}
To configure the check to accept lines up to 120 characters long:
<module name="Checker">
<module name="LineLength">
<property name="max" value="120"/>
</module>
</module>
Example2:
package com.puppycrawl.tools.checkstyle.checks.sizes.linelength;
import static com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck.MSG_KEY;
/**
* This is a short Javadoc comment.
* ThisJavadocCommentIsAReallyLongWordThatExceedsDefaultLineLimitOfEightyCharacters.
*/
class Example2 {
void testMethod(String str) {
str = MSG_KEY;
System.out.println("This is a short line.");
System.out.println("This line is long and exceeds the default limit of 80 characters.");
}
}
To configure the check to ignore lines that begin with " * "
code,
followed by just one word, such as within a Javadoc comment:
<module name="Checker">
<module name="LineLength">
<property name="ignorePattern" value="^ *\* *[^ ]+$"/>
</module>
</module>
Example3:
package com.puppycrawl.tools.checkstyle.checks.sizes.linelength;
// violation below, 'Line is longer than 80 characters'
import static com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck.MSG_KEY;
/**
* This is a short Javadoc comment.
* ThisJavadocCommentIsAReallyLongWordThatExceedsDefaultLineLimitOfEightyCharacters.
*/
class Example3 {
void testMethod(String str) {
str = MSG_KEY;
System.out.println("This is a short line.");
// violation below, 'Line is longer than 80 characters'
System.out.println("This line is long and exceeds the default limit of 80 characters.");
}
}
To configure the check to only validate xml and property files and ignore other extensions:
<module name="Checker">
<module name="LineLength">
<property name="fileExtensions" value="xml, properties"/>
</module>
</module>
Example4:
package com.puppycrawl.tools.checkstyle.checks.sizes.linelength;
import static com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck.MSG_KEY;
/**
* This is a short Javadoc comment.
* ThisJavadocCommentIsAReallyLongWordThatExceedsDefaultLineLimitOfEightyCharacters.
*/
class Example4 {
void testMethod(String str) {
str = MSG_KEY;
System.out.println("This is a short line.");
System.out.println("This line is long and exceeds the default limit of 80 characters.");
}
}
To configure check to validate import
statements:
<module name="Checker">
<module name="LineLength">
<property name="ignorePattern"
value="^(import) "/>
<property name="max" value="60"/>
</module>
</module>
Example:
package com.puppycrawl.tools.checkstyle.checks.sizes.linelength;
// violation above, 'Line is longer than 60 characters'
import static com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck.MSG_KEY;
/**
* This is a short Javadoc comment.
* ThisJavadocCommentIsAReallyLongWordThatExceedsDefaultLineLimitOfEightyCharacters.
*/
class Example5 {
// violation 3 lines above 'Line is longer'
void testMethod(String str) {
str = MSG_KEY;
System.out.println("This is a short line.");
// violation below, 'Line is longer than 60 characters'
System.out.println("This line is long and exceeds the default limit of 80 characters.");
}
}
Notes
-
The calculation of the length of a line takes into account the
number of expanded spaces for a tab character (
'\t'
). The default number of spaces is8
. To specify a different number of spaces, the user can setChecker
propertytabWidth
which applies to all Checks, includingLineLength
; or can set propertytabWidth
forLineLength
alone. -
By default, package and import statements (lines matching pattern
^(package|import) .*
) are not verified by this check. -
Trailing comments are taken into consideration while calculating the line
length.
In the example above the length of the import statement is just 31 characters but total length will be 94 characters.import java.util.regex.Pattern; // The length of this comment will be taken into consideration
Example of Usage
Violation Messages
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
Package
com.puppycrawl.tools.checkstyle.checks.sizes