🎓 eslint-plugin-smarter-tabs
This plugin aims to enforce the usage of smart tabs, as defined in the emacs wiki:
- Tabs are only used at the beginning of lines. Everything else, like ASCII art and tables, should be formatted with spaces.
- Tabs are only used for expressing the indentation level. One tab per “block” — any remaining whitespace is spaces only.
To accomplish this, the plugin exports a single rule which issues a report in three cases:
- The line contains an inline tabulation:
Valid | Invalid |
---|---|
|
|
- The line use spaces for indentation. This happens when a line is indented with spaces or starts with tabs followed by spaces, and its indentation level is different than the one of its block:
Valid | Invalid |
---|---|
|
|
- The line has a mismatched indentation level. This happens when the indentation level of the line is greater than the one of the line before it by two or more:
Valid | Invalid |
---|---|
|
|
Installation
npm i -D eslint-plugin-smarter-tabs
Usage
This plugin exports a single rule called smarter-tabs
that you can use in your
.eslintrc.json
or eslintrc.js
:
{
"plugins": [
"smarter-tabs"
],
"rules": {
"smarter-tabs/smarter-tabs": "warn"
}
}
If you use the eslint:recommended
preset, you may also want to disable the
no-mixed-spaces-and-tabs
rule as it might clash with this plugin:
{
"rules": {
"no-mixed-spaces-and-tabs": "off",
"smarter-tabs/smarter-tabs": "warn"
}
}
Or you could pass it the smart-tabs
options:
{
"rules": {
"no-mixed-spaces-and-tabs": ["warn", "smart-tabs"],
"smarter-tabs/smarter-tabs": "warn"
}
}
Changelog
See the full changelog here.
License
This software is distributed under the ISC license.