atom-eslint-parser
The ESLint custom parser for .atom
files.
Installation
npm install eslint atom-eslint-parser --save
-
atom-eslint-parser
requires ESLint 3.9.0 or later.
Usage
- Write
parser
option into your.eslintrc.*
file. - Use glob patterns or
--ext .atom
CLI option.
{
"extends": "eslint:recommended",
"parser": "atom-eslint-parser"
}
$ eslint "src/**/*.{atom}"
# or
$ eslint src --ext .atom
Options
parserOptions
has the same properties as what espree, the default parser of ESLint, is supporting.
For example:
{
"parser": "atom-eslint-parser",
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2017,
"ecmaFeatures": {
"globalReturn": false,
"impliedStrict": false,
"jsx": false,
"experimentalObjectRestSpread": false
}
}
}
Also, you can use parser
property to specify a custom parser to parse <script>
tags.
Other properties than parser would be given to the specified parser.
For example:
{
"parser": "atom-eslint-parser",
"parserOptions": {
"parser": "babel-eslint",
"sourceType": "module",
"allowImportExportEverywhere": false
}
}
{
"parser": "atom-eslint-parser",
"parserOptions": {
"parser": "typescript-eslint-parser"
}
}
- If you use with
babel-eslint
, it has additional requirements. Useeslint@>=4.14.0
andbabel-eslint@>=8.1.1
. - If you use
typescript-eslint-parser
, the location of original nodes can be wrong. Waiting fortypescript-eslint-parser
to support parseResult.visitorKeys.
Usage for custom rules / plugins
- This parser provides
parserServices
to traverse<template>
.-
defineTemplateBodyVisitor(templateVisitor, scriptVisitor)
... returns ESLint visitor to traverse<template>
. -
getTemplateBodyTokenStore()
... returns ESLintTokenStore
to get the tokens of<template>
.
-
-
ast.md is
<template>
AST specification.
Known Limitations
Some rules make warnings due to the outside of <script>
tags.
Please disable those rules for .atom
files as necessary.
- eol-last
- linebreak-style
- max-len
- max-lines
- no-trailing-spaces
- unicode-bom
- Other rules which are using the source code text instead of AST might be confused as well.
Development Tools
-
npm test
runs tests and measures coverage. -
npm run build
compiles TypeScript source code toindex.js
,index.js.map
, andindex.d.ts
. -
npm run coverage
shows the coverage result ofnpm test
command with the default browser. -
npm run clean
removes the temporary files which are created bynpm test
andnpm run build
. -
npm run lint
runs ESLint. -
npm run setup
setups submodules to develop. -
npm run update-fixtures
updates files intest/fixtures/ast
directory based ontest/fixtures/ast/*/source.atom
files. -
npm run watch
runsbuild
,update-fixtures
, and tests with--watch
option.