ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Sublime​Linter-eslint

by SublimeLinter ST3

This linter plugin for SublimeLinter provides an interface to ESLint

Details

Installs

  • Total 171K
  • Win 54K
  • OS X 87K
  • Linux 30K
Dec 5 Dec 4 Dec 3 Dec 2 Dec 1 Nov 30 Nov 29 Nov 28 Nov 27 Nov 26 Nov 25 Nov 24 Nov 23 Nov 22 Nov 21 Nov 20 Nov 19 Nov 18 Nov 17 Nov 16 Nov 15 Nov 14 Nov 13 Nov 12 Nov 11 Nov 10 Nov 9 Nov 8 Nov 7 Nov 6 Nov 5 Nov 4 Nov 3 Nov 2 Nov 1 Oct 31 Oct 30 Oct 29 Oct 28 Oct 27 Oct 26 Oct 25 Oct 24 Oct 23 Oct 22 Oct 21
Windows 17 28 34 15 7 6 20 28 21 22 21 9 12 28 17 18 29 19 19 19 19 31 25 21 17 10 11 24 27 24 35 24 13 13 14 25 22 25 20 12 12 15 27 22 28 25
OS X 23 36 35 37 16 19 31 18 31 31 36 15 44 35 31 27 38 78 14 24 28 36 54 47 60 43 17 44 51 42 39 234 27 12 32 34 30 26 117 15 12 29 27 36 42 46
Linux 9 13 13 8 10 9 7 11 12 10 16 5 23 16 20 19 15 34 12 6 14 16 20 13 49 15 6 21 15 15 14 65 10 3 11 10 16 8 60 11 9 12 10 27 17 14

Readme

Source
raw.​githubusercontent.​com

SublimeLinter-eslint

This linter plugin for SublimeLinter provides an interface to ESLint. It will be used with “JavaScript” files, but since eslint is pluggable, it can actually lint a variety of other files as well.

Installation

SublimeLinter 3 must be installed in order to use this plugin.

Please install via Package Control.

Before using this plugin, ensure that eslint is installed on your system. To install eslint, do the following:

  • Install Node.js (and npm on Linux).

  • Install eslint globally by typing the following in a terminal:

npm install -g eslint
  • Or install eslint locally in your project folder (you must have a package.json file there):
npm install -S eslint

Using eslint with plugins (e.g. vue)

SublimeLinter will detect some installed local plugins, and thus it should work automatically for e.g. .vue or .ts files. If it works on the command line, there is a chance it works in Sublime without further ado.

  • Make sure the plugins are installed locally colocated to eslint itself. T.i., technically, both eslint and its plugins are described in the very same package.json.
  • Configuration of the plugins is out-of-scope of this README. Be sure to read their README's as well. (If you just installed a plugin, without proper configuration, eslint will probably show error messages or wrong lint results, and SublimeLinter will just pass them to you.)

Out-of-the-box SublimeLinter detects typescript, vue, svelte, html, and json. Please open a PR for important other plugins.

In any case, if you want to control which files SublimeLinter sends to eslint, you can always manually change the "selector" setting to just include the scopes you explicitly want. The default value for “JavaScript” is source.js - meta.attribute-with-value, make sure to include that in the configuration.

Examples

For Typescript .ts files it would be:

"linters": {
    "eslint": {
        "selector": "source.ts, source.js - meta.attribute-with-value"
    }
}

For Vue.js .vue files it would be:

"linters": {
    "eslint": {
        "selector": "text.html.vue, source.js - meta.attribute-with-value"
    }
}

For Svelte .svelte files, using eslint-plugin-svelte3 and the Naomi syntax highlighter set to HTML 5, it would be:

"linters": {
    "eslint": {
        "selector": "text.html, source.js - meta.attribute-with-value"
    }
}

To find the selector value for a particular file type, place the cursor at the start of the file and use the command Tools ➡️ Developer ➡️ Show Scope Name.

Settings

You can configure eslint options in the way you would from the command line, with .eslintrc files. For more information, see the eslint docs.

FAQ and Troubleshooting

eslint doesn't lint my HTML files anymore.

Starting with v4.2 of this plugin, eslint will only lint '*.js' files for standard, vanilla configurations without further plugins. You can restore the old behavior by setting selector to its old value:

"linters": {
    "eslint": {
        "selector": "source.js - meta.attribute-with-value"
    }
}

I've got 'SublimeLinter: ERROR: eslint cannot locate 'eslint' in ST console when I try to use locally installed eslint.

You must have a package.json file if you've installed eslint locally. Also, restart the project or Sublime Text itself after to make sure SublimeLinter uses the correct eslint instance.

npm init -f
npm install eslint

I've got 'SublimeLinter: eslint ERROR: ESLint couldn't find a configuration file' when I'm editing a JavaScript file.

If you're using SublimeLinter 4, the linter is trying to always lint the current view, even if there's no ESLint setup for the project or file. You can easily fix this error by creating an empty .eslintrc file in your home directory. This file will be picked up by the linter when there is no locally-defined ESLint configuration.

Use your editor of choice and create this config file, or do this on a terminal:

cd $HOME # or cd %HOMEPATH% on Windows
touch .eslintrc
echo '{ "rules": {} }' > .eslintrc