Library for checking spaces in files
npm install lintspacesA node module for checking spaces in files.



If you're looking for a
gruntjs or
gulpjs
task to validate your files, take a look at these ones:
- grunt-lintspaces
- gulp-lintspaces by AlbertoElias
There is also a lintspaces CLI
available written by evanshortiss.
This package is available on npm
as: lintspaces
``sh`
npm install lintspaces
To run the lintspaces validator on one or multiple files take a look at the
following example:
`javascript
var Validator = require('lintspaces');
var validator = new Validator({
/ options /
});
validator.validate('/path/to/file.ext');
validator.validate('/path/to/other/file.ext');
var results = validator.getInvalidFiles();
`
The response of getInvalidFiles() contains an object. Each key of this
object is a filepath which contains validation errors.
Under each filepath there is an other object with at least one key. Those key(s)
are the specific linenumbers of the file containing an array with errors.
The following lines shows the structure of the validation result in JSON
notation:
`json`
{
"/path/to/file.ext": {
"3": [
{
"line": 3,
"code": "INDENTATION_TABS",
"type": "warning",
"message": "Unexpected spaces found."
},
{
"line": 3,
"code": "TRAILINGSPACES",
"type": "warning",
"message": "Unexpected trailing spaces found."
}
],
"12": [
{
"line": 12,
"code": "NEWLINE",
"type": "warning",
"message": "Expected a newline at the end of the file."
}
]
},
"/path/to/other/file.ext": {
"5": [
{
"line": 5,
"code": "NEWLINE_AMOUNT",
"type": "warning",
"message": "Unexpected additional newlines at the end of the file."
}
]
}
}
Tests for newlines at the end of all files. Default value is false.
`javascript`
newline: true;
- returns code NEWLINE, when missing a newline at the end of the file.NEWLINE_AMOUNT
- returns code , when found unexpected additional newlineswarning
at the end of a file.
- returns type
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.
`javascript`
newlineMaximum: 2;
- returns code NEWLINE_MAXIMUM, when maximum amount of newlines exceededwarning
between code blocks.
- returns type
Lintspaces fails with incorrect end of line errors when files contain lines that
end in the wrong sequence. Default value is false. To enable end of line checks'LF'
use any of the following values: or 'CRLF' or 'CR'. Values are
case-insensitive. Note that this option checks all lines; even "ignored" lines.
`javascript`
endOfLine: 'lf';
- returns code END_OF_LINE, when the wrong line ending sequence is found.warning
- returns type
Tests for useless whitespaces (trailing whitespaces) at each lineending of all
files. Default value is false.
`javascript`
trailingspaces: true;
- returns code TRAILINGSPACES, when unexpected trailing spaces were found.warning
- returns type
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.'tabs'
To enable indentation check use the value or 'spaces'.
`javascript`
indentation: 'tabs';
- returns code INDENTATION_TABS, when spaces are used instead of tabs.warning
- returns type
If the indentation option is set to 'spaces', there is also the possibilityspaces
to set the amount of spaces per indentation using the option. Default4
value is .
`javascript`
indentation: 'spaces',
spaces: 2
- returns code INDENTATION_SPACES, when tabs are used instead of spaces.INDENTATION_SPACES_AMOUNT
- returns code , when spaces are used but thewarning
amound is not as expected.
- returns type
This indentationGuess option _tries to guess_ the indention of a linefalse
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 - 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
`javascript`
indentationGuess: true;
- returns code NEWLINE_GUESShint
- returns type
Lintspaces fails with incorrect indentation errors when files contain Byte Order
Marks (BOM). If you don't want to give false positives for inconsistent tabs or
spaces, set the allowsBOM option to true. The default value isfalse - disabled.
`javascript`
allowsBOM: true;
Use the ignores option when special lines such as comments should be ignored.ignores
Provide an array of regular expressions to the property.
`javascript`
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)_
`javascript`
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 trailingspacesToIgnorestrue
option and set them to .
Note: If endOfLine checking is enabled, then all lines (including
"ignored" lines will be checked for appropriate end of line sequences.
It's possible to overwrite the default and given options by setting up a path
to an external editorconfig file by using the editorconfig option. For a basic
configuration of a _.editorconfig_ file check out the
EditorConfig Documentation.
`javascript`
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 whitespacesend_of_line
- will check the end of line character sequence
Load all settings from a RC configuration file. The configuration can be defined
in ini or json format. When setting this option to true the.lintspacesrc
configuration from a in the
RC standards load paths
will be taken.
`javascript`
rcconfig: true;
Define a custom path to a RC configuration file of your choice by setting the
option to the desired path.
`javascript`
rcconfig: 'path/to/.customrc';
An instance of the _Lintspaces validator_ has the following methods
This function runs the check for a given file based on the validator settings.
- Parameter path is the path to the file as String.path
- Throws an error when given is not a valid path.path
- Throws an error when given is not a file.undefined
- Returns .
This returns the amount of files processed through the validator.
- Returns the amount as Number.
This returns all invalid lines and messages from processed files.
- Returns each key in the returned Object represents a path of a
processed invalid file. Each value is an other object containing the validation
result. For more informations about the returned format see Usage.
This returns all invalid lines and messages from the file of the given
path. This is just a shorter version of getInvalidFiles()[path].
- Parameter path is the file path
- Returns each key in the returned Object represents a line from the
file of the given path, each value an exeption message of the current line. For
more informations about the returned format see Usage.
Feel free to contribute. Please run all the tests and validation tasks before
you offer a pull request.
Run npm run test && npm run lint to run the tests and validation tasks.
The readme chapters are located in the _docs_ directory as Markdown. All
Markdown files will be concatenated through a grunt task 'docs'. Callgrunt docs or run it fully by call grunt` to validate, test and
update the _README.md_.
Note: Do not edit the _README.md_ directly, it will be overwritten!
- ck86
- itsananderson
- chandlerkent
- crabbkw
- dpagini
- ben-eb via grunt-lintspaces
- yurks via grunt-lintspaces
- evanshortiss via lintspaces-cli