4.0.3 • Published 12 months ago

eslint-plugin-editorconfig v4.0.3

Weekly downloads
2,941
License
MIT
Repository
github
Last release
12 months ago

eslint-plugin-editorconfig

An ESLint plugin to enforce EditorConfig rules

CircleCI NPM Version

Install

$ npm install --save-dev eslint eslint-plugin-editorconfig

or

$ yarn add --dev eslint eslint-plugin-editorconfig

If you use typescript-eslint, you need to install @typescript-eslint/eslint-plugin too.

$ npm install --save-dev @typescript-eslint/eslint-plugin

Usage

Like other ESLint plugins,

  • add rules in the rules
  • add "editorconfig" in the plugins

in your .eslintrc*

{
  // ...
  "rules": {
    "editorconfig/charset": "error",
    "editorconfig/eol-last": "error",
    "editorconfig/indent": "error",
    "editorconfig/linebreak-style": "error",
    "editorconfig/no-trailing-spaces": "error"
  },
  "plugins": [ "editorconfig" ]
}

Or you can extend plugin:editorconfig/all instead of adding rules.

{
  // ...
  "extends": [ "plugin:editorconfig/all" ],
  "plugins": [ "editorconfig" ]
}

Conflicting ESLint rules

Following rules may conflict editorconfig/* rule. It is recommended to disable them.

  • eol-last
  • indent
  • linebreak-style
  • no-trailing-spaces
  • unicode-bom
  • @typescript-eslint/eol-last
  • @typescript-eslint/indent
  • @typescript-eslint/linebreak-style
  • @typescript-eslint/no-trailing-spaces
  • @typescript-eslint/unicode-bom

If above rules are specified in your .eslintrc, just remove them. If they are specified in the extended config, consider adding plugin:editorconfig/noconflict to your extends.

{
  "extends": [
    "@phanect/phanective",
    "plugin:editorconfig/noconflict"
  ],
  // ...
}

If you extend plugin:editorconfig/all, the rules above are turned off too, so you don't have to add plugin:editorconfig/noconflict in addition to plugin:editorconfig/all.

Rules

Internally, eslint-plugin-editorconfig uses the existing ESLint and typescript-eslint rules to verify/fix the code. Some rules allow passing options.

All the citation in the docs is from the backend ESLint rule document otherwise noted.

RuleDescriptionFixable
editorconfig/charsetEnforce EditorConfig rules for charset
editorconfig/eol-lastEnforce EditorConfig rules for the newlines at the end of files
editorconfig/indentEnforce EditorConfig rules for indentation
editorconfig/linebreak-styleEnforce EditorConfig rules for linebreak style
editorconfig/no-trailing-spacesEnforce EditorConfig rules for trailing spaces

License & Credit

MIT

This plugin includes code derived from klona.