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 booleanControl whether to report on each line containing a tab, or just the first instance.static final StringA key is pointing to the warning message text in "messages.properties" file.static final StringA key is pointing to the warning message text in "messages.properties" file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprocessFiltered(File file, FileText fileText) Called to process a file that matches the specified file extensions.voidsetEachLine(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, setTabWidthMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, getConfiguration, setupChildMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.puppycrawl.tools.checkstyle.api.Configurable
configureMethods 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:AbstractFileSetCheckCalled to process a file that matches the specified file extensions.- Specified by:
processFilteredin 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.
-