Class FileTabCharacterCheck
java.lang.Object
com.puppycrawl.tools.checkstyle.api.AutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
com.puppycrawl.tools.checkstyle.checks.whitespace.FileTabCharacterCheck
- All Implemented Interfaces:
Configurable
,Contextualizable
,FileSetCheck
Checks that there are no tab characters ('\t'
) in the source code.
Rationale:
- Developers should not need to configure the tab width of their text editors in order to be able to read source code.
- From the Apache jakarta coding standards: In a distributed development environment, when the commit messages get sent to a mailing list, they are almost impossible to read if you use tabs.
-
Property
eachLine
- Control whether to report on each line containing a tab, or just the first instance. Type isboolean
. Default value isfalse
. -
Property
fileExtensions
- Specify file type extension of files to process. Type isjava.lang.String[]
. Default value is""
.
To configure the check to report only the first instance in each file:
<module name="FileTabCharacter"/>
Example - Test.java:
public class Test { int a; // violation, indented using tab public void foo (int arg) { // OK, indented using tab, only first occurrence in file reported a = arg; // OK, indented using spaces } // OK, indented using spaces }
To configure the check to report each instance in each file:
<module name="FileTabCharacter"> <property name="eachLine" value="true"/> </module>
Example - Test.java:
public class Test { int a; // violation, indented using tab public void foo (int arg) { // violation, indented using tab a = arg; // OK, indented using spaces } // OK, indented using spaces }
To configure the check to report instances on only certain file types:
<module name="FileTabCharacter"> <property name="fileExtensions" value="java, xml"/> </module>
Example - Test.java:
public class Test { int a; // violation, indented using tab public void foo (int arg) { // OK, indented using tab, only first occurrence in file reported a = arg; // OK, indented using spaces } // OK, indented using spaces }
Example - Test.xml:
<?xml version="1.0" encoding="UTF-8" ?> <UserAccount> <FirstName>John</FirstName> <!-- violation, indented using tab --> <LastName>Doe</LastName> <!-- only first occurrence in file reported --> </UserAccount>
Example - Test.html:
<head> <title>Page Title</title> <!-- no check performed, html file extension --> </head> <!-- not specified in check config --> <body> <p>This is a simple html document.</p> </body>
Parent is com.puppycrawl.tools.checkstyle.Checker
Violation Message Keys:
-
containsTab
-
file.containsTab
- Since:
- 5.0
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Control whether to report on each line containing a tab, or just the first instance.static final String
A key is pointing to the warning message text in "messages.properties" file.static final String
A key is pointing to the warning message text in "messages.properties" file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
processFiltered
(File file, FileText fileText) Called to process a file that matches the specified file extensions.void
setEachLine
(boolean eachLine) Setter to control whether to report on each line containing a tab, or just the first instance.Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
addViolations, beginProcessing, destroy, finishProcessing, fireErrors, getFileContents, getFileExtensions, getMessageDispatcher, getTabWidth, getViolations, init, log, log, process, setFileContents, setFileExtensions, setMessageDispatcher, setTabWidth
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, getConfiguration, setupChild
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.puppycrawl.tools.checkstyle.api.Configurable
configure
Methods inherited from interface com.puppycrawl.tools.checkstyle.api.Contextualizable
contextualize
-
Field Details
-
MSG_CONTAINS_TAB
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
MSG_FILE_CONTAINS_TAB
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
eachLine
private boolean eachLineControl whether to report on each line containing a tab, or just the first instance.
-
-
Constructor Details
-
FileTabCharacterCheck
public FileTabCharacterCheck()
-
-
Method Details
-
processFiltered
Description copied from class:AbstractFileSetCheck
Called to process a file that matches the specified file extensions.- Specified by:
processFiltered
in classAbstractFileSetCheck
- Parameters:
file
- the file to be processedfileText
- the contents of the file.
-
setEachLine
public void setEachLine(boolean eachLine) Setter to control whether to report on each line containing a tab, or just the first instance.- Parameters:
eachLine
- Whether report on each line containing a tab.
-