Skip to content

Instantly share code, notes, and snippets.

@sindresorhus
Last active February 26, 2023 03:01
Show Gist options
  • Save sindresorhus/1656c46f23545deff8cc713649dcff26 to your computer and use it in GitHub Desktop.
Save sindresorhus/1656c46f23545deff8cc713649dcff26 to your computer and use it in GitHub Desktop.
Gettings started writing a ESLint rule

Gettings started writing a ESLint rule

First, take a look at the ESLint rule documentation. Just skim it for now. It's very long and boring. You can come back to it later.

ESLint rules works on the AST (Abstract Syntax Tree) representation of the code. In short, this is a tree structure that describes the code in a very verbose form. ESLint walks this tree and rules can subscribe to be notified when it hits a specific node type, like a Literal type, which could be the "hello" part of const welcome = "hello";.

Go ahead and play around with some code in AST Explorer (Make sure the parser is espree). It's a great tool!

Here are some good articles on the subject (ignore the scaffolding parts):

When you have some background knowledge, try cloning our repo and open any rule file and its and start modifying just to play around.

When you're ready to start working on a rule, take a look at previous rule addition for what's needed to add: https://github.com/sindresorhus/eslint-plugin-unicorn/commit/718578aadc696dbc506bce32cd8e5bec3fb12c3a and https://github.com/sindresorhus/eslint-plugin-unicorn/commit/f0249e0f0ed341765fa2a9fad50d4599a95f3661

Happy to answer question you might have in https://gitter.im/sindresorhus/meta

Have fun! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment