PyCharm 2018.1 Help


PyCharm integrates with ESLint that brings a wide range of linting rules that can also be extended with plugins. PyCharm shows warnings and errors reported by ESLint right in the editor, as you type. You can also use JavaScript Standard Style with ESLint.

Before you start, install Node.js.

Installing, enabling, and configuring ESLint in PyCharm

  1. Open the built-in PyCharm Terminal (Alt+F12) and type npm install eslint --save-dev or npm install eslint -g at the command prompt.
  2. Optionally, install additional plugins, for example, eslint-plugin-react to lint React applications.
  3. In the Settings/Preferences dialog (Ctrl+Alt+S), choose JavaScript under Languages and Frameworks and then choose ESLint under Code Quality Tools. On the ESLint page page that opens, select the Enable checkbox. After that the controls on the page become available.
  4. In the Node Interpreter field, specify the path to Node.js. If you followed the standard installation procedure, PyCharm detects the path and fills in the field itself.
  5. In the ESLint Package field, specify the location of the eslint or standard package.
  6. Choose the configuration to use.
    • With Automatic search, PyCharm looks for a .eslintrc file or tries to detect a configuration defined under eslintConfig in a package.json. PyCharm first looks for a .eslintrc or package.json in the folder with the file to be linted, then in its parent folder, and so on up to the project root. If the search fails, ESLint uses its default embedded configuration file.
    • Choose Configuration File to use a custom file and specify the file location in the Path field.
  7. Optionally:
    • In the Extra ESLint Options field, specify additional command line options to run ESLint with using spaces as separators. See ESLint Command Line Interface Options for details.
    • In the Additional Rules Directory field, specify the location of the files with additional code verification rules. These rules will be applied after the rules from .eslintrc or the above specified custom configuration file and accordingly will override them.

Importing code style from ESLint

You can import some of the ESLint code style rules to the PyCharm JavaScript code style settings. This integration makes it easier for you to configure the PyCharm code formatter so it no longer breaks properly formatted code from the ESLint perspective.

To import ESLint code style rules

  • Open an .eslintrc JSON file or a package.json with the eslintConfig field. PyCharm shows the question Apply code style from ESLint? at the top of the editor. Click Yes to apply the matched rules to the Project code style scheme.

Please note that only the rules that have matching code style settings in PyCharm are applied, for example, indent, curly or no-trailing-spaces. Complex object options for these rules are not always applied. Also note that PyCharm does not apply rules from the configuration files listed in the extends field or rules from plugins.

Using JavaScript Standard Style

You can set JavaScript Standard Style as default JavaScript code style for your application so its main rules are applied when you type the code or reformat it. Since Standard is based on ESLint, you can also use Standard via the PyCharm ESLint integration. Learn more from the JavaScript Standard Style Official website.

To install JavaScript Standard

To enable linting with Standard via ESLint

  1. In the Settings/Preferences dialog (Ctrl+Alt+S), choose JavaScript under Languages and Frameworks and then choose ESLint under Code Quality Tools.
  2. On the ESLint page that opens, select the Enable checkbox, and specify the location of the standard package in the ESLint Package field.

To set the JavaScript Standard Style as default

  1. In the Settings/Preferences dialog (Ctrl+Alt+S), choose Editor | Code Style | JavaScript).
  2. On the Code Style. JavaScript page that opens, click Set from, and then choose Predefined Style | JavaScript Standard Style. The style will replace your current scheme.
Last modified: 19 April 2018

See Also