Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
lintspaces
Advanced tools
A 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:
There is also a lintspaces CLI available written by evanshortiss.
This package is available on npm
as: lintspaces
npm install lintspaces
To run the lintspaces validator on one or multiple files take a look at the following example:
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:
{
"/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
.
newline: true
NEWLINE
, when a missing a newline at the end of the file.NEWLINE_AMOUNT
, when found unexpected additional newlines
at the end of a file.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
NEWLINE_MAXIMUM
, when maximum amount of newlines exceeded
between code blocks.warning
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
use any of the following values: 'LF'
or 'CRLF'
or 'CR'
. Values are
case-insensitive. Note that this option checks all lines; even "ignored" lines.
endOfLine: 'lf'
END_OF_LINE
, when the wrong line ending sequence is found.warning
Tests for useless whitespaces (trailing whitespaces) at each lineending of all
files. Default value is false
.
trailingspaces: true
TRAILINGSPACES
, when unexpected trailing spaces were found.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'
INDENTATION_TABS
, when spaces are used instead of tabs.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
INDENTATION_SPACES
, when tabs are used instead of spaces.INDENTATION_SPACES_AMOUNT
, when spaces are used but the
amound is not as expected.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:
indentationGuess: true
NEWLINE_GUESS
hint
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 is
false
- disabled.
allowsBOM: true
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:
(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
.
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.
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 sequenceLoad all settings from a RC configuration file. The configuration can be defined
in ini
or json
format. When setting this option to true
the
configuration from a .lintspacesrc
in the
RC standards load paths
will be taken.
rcconfig: true
Define a custom path to a RC configuration file of your choice by setting the option to the desired path.
rcconfig: 'path/to/.customrc'
An instance of the Lintspaces validator has the following methods
validate(path)
This function runs the check for a given file based on the validator settings.
path
is the path to the file as String
.path
is not a valid path.path
is not a file.undefined
.getProcessedFiles()
This returns the amount of processed through the validator.
Number
.getInvalidFiles()
This returns all invalid lines and messages from processed files.
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.getInvalidLines(path)
This returns all invalid lines and messages from the file of the given
path
. This is just a shorter version of getInvalidFiles()[path]
.
path
is the file pathObject
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 befor you offer a pull request.
Run grunt validate test
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'
. Call
grunt 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!
FAQs
Library for checking spaces in files
We found that lintspaces demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.