Add ESLint config & update documentation
Change-Id: I10ecba3272265aa1d6cae29c17f60b2f741f15f4
This commit is contained in:
70
polygerrit-ui/.eslintrc.json
Normal file
70
polygerrit-ui/.eslintrc.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"extends": ["eslint:recommended", "google"],
|
||||
"installedESLint": true,
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"globals": {
|
||||
"__dirname": false,
|
||||
"app": false,
|
||||
"page": false,
|
||||
"Polymer": false,
|
||||
"process": false,
|
||||
"require": false,
|
||||
"Gerrit": false,
|
||||
"Promise": false,
|
||||
"assert": false,
|
||||
"test": false,
|
||||
"flushAsynchronousOperations": false
|
||||
},
|
||||
"rules": {
|
||||
"arrow-parens": ["error", "as-needed"],
|
||||
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
|
||||
"camelcase": "off",
|
||||
"comma-dangle": ["error", "always-multiline"],
|
||||
"eol-last": "off",
|
||||
"indent": ["error", 2, {
|
||||
"MemberExpression": 2,
|
||||
"FunctionDeclaration": {"body": 1, "parameters": 2},
|
||||
"FunctionExpression": {"body": 1, "parameters": 2},
|
||||
"CallExpression": {"arguments": 2},
|
||||
"ArrayExpression": 1,
|
||||
"ObjectExpression": 1,
|
||||
"SwitchCase": 1
|
||||
}],
|
||||
"max-len": [
|
||||
"error",
|
||||
80,
|
||||
2,
|
||||
{"ignoreComments": true}
|
||||
],
|
||||
"new-cap": ["error", { "capIsNewExceptions": ["Polymer"] }],
|
||||
"no-console": "off",
|
||||
"no-restricted-syntax": [
|
||||
"error",
|
||||
{
|
||||
"selector": "BinaryExpression > CallExpression > MemberExpression > Identifier[name = 'indexOf']",
|
||||
"message": "Prefer includes/startsWith to indexOf."
|
||||
},
|
||||
{
|
||||
"selector": "ExpressionStatement > CallExpression > MemberExpression > Identifier[name = 'forEach']",
|
||||
"message": "Prefer for-of to Array.forEach."
|
||||
}
|
||||
],
|
||||
"no-undef": "off",
|
||||
"no-var": "error",
|
||||
"object-shorthand": ["error", "always"],
|
||||
"prefer-arrow-callback": "error",
|
||||
"prefer-const": "error",
|
||||
"prefer-spread": "error",
|
||||
"quote-props": ["error", "consistent-as-needed"],
|
||||
"require-jsdoc": "off",
|
||||
"semi": [2, "always"],
|
||||
"template-curly-spacing": "error",
|
||||
"valid-jsdoc": "off"
|
||||
},
|
||||
"plugins": [
|
||||
"html"
|
||||
]
|
||||
}
|
@@ -116,3 +116,22 @@ Then visit http://localhost:8081/elements/foo/bar_test.html
|
||||
|
||||
We follow the [Google JavaScript Style Guide](https://google.github.io/styleguide/javascriptguide.xml)
|
||||
with a few exceptions. When in doubt, remain consistent with the code around you.
|
||||
|
||||
In addition, we encourage the use of [ESLint](http://eslint.org/).
|
||||
It is available as a command line utility, as well as a plugin for most editors
|
||||
and IDEs. It, along with a few dependencies, can also be installed through NPM:
|
||||
|
||||
```sh
|
||||
sudo npm install -g eslint eslint-config-google eslint-plugin-html
|
||||
```
|
||||
|
||||
`eslint-config-google` is a port of the Google JS Style Guide to an ESLint
|
||||
config module, and `eslint-plugin-html` allows ESLint to lint scripts inside
|
||||
HTML.
|
||||
We have an .eslintrc.json config file in the polygerrit-ui/ directory configured
|
||||
to enforce the preferred style of the PolyGerrit project.
|
||||
After installing, you can use `eslint` on any new file you create.
|
||||
In addition, you can supply the `--fix` flag to apply some suggested fixes for
|
||||
simple style issues.
|
||||
If you modify JS inside of `<script>` tags, like for test suites, you may have
|
||||
to supply the `--ext .html` flag.
|
||||
|
Reference in New Issue
Block a user