An ESlint plugin that provides set of rules enforcing consistent decorator positions
yarn add --dev eslint-plugin-decorator-position
Or
npm install --save-dev eslint-plugin-decorator-position
.eslintrc.js
// .eslintrc.js
module.exports = {
parser: '@babel/eslint-parser',
// parser: '@typescript-eslint/parser',
plugins: ['decorator-position'],
extends: [
'plugin:decorator-position/ember' // or other configuration
],
rules: {
// override rule settings from extends config here
// 'decorator-position/decorator-position': ['error', { /* your config */ }]
}
};
Since eslint 8, the printWidth option must be specified to be compatible
with the eslint-plugin-prettier rule prettier/prettier
// .eslintrc.js
module.exports = {
parser: '@babel/eslint-parser',
plugins: ['decorator-position'],
extends: [
'plugin:decorator-position/ember' // or other configuration
],
rules: {
'decorator-position/decorator-position': ['error', { printWidth: 100 }],
'prettier/prettier': ['error', { printWidth: 100 }]
}
};
If there is a .prettierrc.js
file, that will be read instead, and printwidth
is not needed.
Name | Description | |
---|---|---|
base | contains no rules settings, but the basic eslint configuration suitable for any project. You can use it to configure rules as you wish. | |
:hamster: | ember | extends the base configuration by enabling the recommended rules for ember projects. |
Rules are grouped by category to help you understand their purpose. Each rule has emojis denoting:
--fix
command line optionRule ID | Description | |
---|---|---|
:white_check_mark::wrench: | decorator-position | enforce consistent decorator position on properties and methods |
For the simplified list of rules, go here.
If you have any suggestions, ideas, or problems, feel free to create an issue, but first please make sure your question does not repeat previous ones.
lib/rules/new-rule.js
(implementation, see no-proxies for an example)docs/rules/new-rule.md
(documentation, start from the template -- raw, rendered)tests/lib/rules/new-rule.js
(tests, see no-proxies for an example)yarn update
to automatically update the README and other files (and re-run this if you change the rule name or description)yarn test
yarn lint
(yarn lint:js --fix
can fix many errors)Note that new rules should not immediately be added to the recommended configuration, as we only consider such breaking changes during major version updates.
To run smoke tests:
./scripts/smoke-test.sh
it will prompt you with which test to run.
To create a reproduction,
smoke-tests/issue-reproductions/
named ofter the issue number.
example: smoke-tests/issue-reproductions/196/
*
if it doesn't matter for your particular test)How does this project interpret patch / minor / breaking changes?
See the LICENSE file for license rights and limitations (MIT).