LineLength

Since Checkstyle 3.0

Description

Checks for long lines.

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

name description type default value since
fileExtensions Specify the file extensions of the files to process. String[] all files 8.24
ignorePattern Specify pattern for lines to ignore. Pattern "^(package|import) .*" 3.0
max Specify the maximum line length allowed. int 80 3.0

Examples

To configure the check to accept lines up to 80 characters long:

<module name="Checker">
  <module name="LineLength"/>
</module>
        

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>
        

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>
        

To configure the check to only validate java files and ignore other extensions:

<module name="Checker">
  <module name="LineLength">
    <property name="fileExtensions" value="java"/>
  </module>
</module>
        

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>
        

To configure check to validate import and package statements:

<module name="Checker">
  <module name="LineLength">
    <property name="ignorePattern" value="^$"/>
    <property name="max" value="50"/>
  </module>
</module>
        

Example:

// violation below 'Line is longer than 50 characters (found 54)'
package com.puppycrawl.tools.checkstyle.checks.design;

// violation below 'Line is longer than 50 characters (found 86)'
import com.puppycrawl.tools.checkstyle.grammar.comments.InputFullOfSinglelineComments;

import java.util.Arrays; // ok
        

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 is 8. To specify a different number of spaces, the user can set Checker property tabWidth which applies to all Checks, including LineLength; or can set property tabWidth for LineLength 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.
    import java.util.regex.Pattern; // The length of this comment will be taken into consideration
                
    In the example above the length of the import statement is just 31 characters but total length will be 94 characters.

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

Parent Module

Checker