- Read the ESLint docs on creating a new rule.
- Look at the commit for how previous rules were added as inspiration. For example, the
no-unused-properties
rule.
Use the astexplorer
site with the espree
parser and ESLint v4
transform to interactively create the initial rule implementation. It lets you inspect the full AST as you would get from ESLint and you can even see the result of your auto-fixer implementation.
- Go to the
test
directory and duplicate theno-hex-escape.js
file and rename it to the name of your rule. Then write some tests before starting to implement the rule. - Go to the
rules
directory and duplicate theno-hex-escape.js
file and rename it to the name of your rule. Then start implementing the new rule logic. - Add the correct
meta.type
to the rule. - Go to the
docs/rules
directory and duplicate theno-hex-escape.md
file and rename it to the name of your rule. Then write some documentation. - Add the rule in alphabetically sorted order to:
- The recommended config
- The recommended config in the readme
- The rule listing in the readme
(The description should be the same as the heading of the documentation file).
- Run
$ npm test
to ensure the tests pass. - Run
$ npm run integration
to run the rules against real projects to ensure your rule does not fail on real-world code. - Open a pull request with a title in exactly the format
Add `rule-name` rule
, for example,Add `no-unused-properties` rule
. - The pull request description should include the issue it fixes, for example,
Fixes #123
. - Run
$ npm run lint
to run the rules against codebase to ensure code in the repository are following your rule, you can ignore this step until your PR is reviewed.