#grunt-lintspaces
A Grunt task for checking spaces in files depending on the node module lintspaces.
If you're looking for a gulpjs task to validate your files, take a look at this one:
This grunt task is just a wrapper for the node module called lintspaces. If you have any issues or feature requests, please consider if this may belongs to the node module its self.
If you haven't used grunt before, be sure to check out the Getting Started guide.
From the same directory as your project's Gruntfile and package.json, install this plugin with the following command:
npm install grunt-lintspaces --save-dev
Once that's done, add this line to your project's Gruntfile:
grunt.loadNpmTasks('grunt-lintspaces');
Inside your grunt.js
file add a section named lintspaces
. This section
specifies the tasks. Each task takes sources and options as parameters.
This sets the path of the files to be checked.
Tests for newlines at the end of all files. Default value is false
.
newline: true
- returns code
NEWLINE
, when a missing a newline at the end of the file. - returns code
NEWLINE_AMOUNT
, when found unexpected additional newlines at the end of a file. - returns type
warning
Test for the maximum amount of newlines between code blocks. Default value is
false
. To enable this validation a number larger than 0
is expected.
newlineMaximum: 2
- returns code
NEWLINE_MAXIMUM
, when maximum amount of newlines exceeded between code blocks. - returns type
warning
Tests for useless whitespaces (trailing whitespaces) at each lineending of all
files. Default value is false
.
trailingspaces: true
- returns code
TRAILINGSPACES
, when unexpected trailing spaces were found. - returns type
warning
Note: If you like to to skip empty lines from reporting (for whatever
reason), use the option trailingspacesSkipBlanks
and set them to true
.
Tests for correct indentation using tabs or spaces. Default value is false
.
To enable indentation check use the value 'tabs'
or 'spaces'
.
indentation: 'tabs'
- returns code
INDENTATION_TABS
, when spaces are used instead of tabs. - returns type
warning
If the indentation option is set to 'spaces'
, there is also the possibility
to set the amount of spaces per indentation using the spaces
option. Default
value is 4
.
indentation: 'spaces',
spaces: 2
- returns code
INDENTATION_SPACES
, when tabs are used instead of spaces. - returns code
INDENTATION_SPACES_AMOUNT
, when spaces are used but the amound is not as expected. - returns type
warning
This indentationGuess
option tries to guess the indention of a line
depending on previous lines. The report of this option can be incorrect,
because the correct indentation depends on the actual programming language
and styleguide of the certain file. The default value is false
- disabled.
This feature follows the following rules: The indentation of the current line is correct when:
- the amount of indentations is equal to the previous or
- the amount of indentations is less than the previous line or
- the amount of indentations is one more than the previous line
- the amount of indentations is zero and the lines length is also zero which is an empty line without trailing whitespaces
indentationGuess: true
- returns code
NEWLINE_GUESS
- returns type
hint
Use the ignores
option when special lines such as comments should be ignored.
Provide an array of regular expressions to the ignores
property.
ignores: [
/\/\*[\s\S]*?\*\//g,
/foo bar/g
]
There are some build in ignores for comments which you can apply by using these strings:
- 'js-comments'
- 'c-comments'
- 'java-comments'
- 'as-comments'
- 'xml-comments'
- 'html-comments'
- 'python-comments'
- 'ruby-comments'
- 'applescript-comments'
(build in strings and userdefined regular expressions are mixable in the
ignores
array)
ignores: [
'js-comments',
/foo bar/g
]
Feel free to contribute some new regular expressions as build in!
Note: Trailing spaces are not ignored by default, because they are always
evil!! If you still want to ignore them use the trailingspacesToIgnores
option and set them to true
.
It's possible to overwrite the default and given options by setting up a path
to an external editorconfig file by unsing the editorconfig
option. For a basic
configuration of a .editorconfig file check out the
EditorConfig Documentation.
editorconfig: '.editorconfig'
The following .editorconfig values are supported:
insert_final_newline
will check if a newline is setindent_style
will check the indentationindent_size
will check the amount of spacestrim_trailing_whitespace
will check for useless whitespaces
This is a specific option related to this task. When active all valid processed
files will be logged. Default value is false
.
showValid: true
This is a specific option related to this task. By default the type of each
message is shown by the color of the message text. To show at the beginning of
the message set this to true
. Default value is false
.
showTypes: true
This is a specific option related to this task. When active all reporting codes
will appear at the end of each message. Default value is false
.
showCodes: true
lintspaces: {
all: {
src: [
'**/*'
],
options: {
newline: true,
newlineMaximum: 2,
trailingspaces: true,
indentation: 'spaces',
spaces: 2
}
},
javascript: {
src: [
'js/src/**/*.js'
],
options: {
newline: true,
trailingspaces: true,
indentation: 'tabs',
ignores: ['js-comments']
}
},
external: {
src: [
'**/*'
],
options: {
editorconfig: '.editorconfig'
}
}
}
Run grunt
to lint and run the tests.