eslint-config-neon
Version:
The ultimate ESLint shareable config
386 lines (385 loc) • 13.8 kB
JSON
{
"jsPlugins": [
{
"name": "@neon/eslint-vue",
"specifier": "eslint-plugin-vue"
}
],
"overrides": [
{
"files": [
"**/*.vue"
],
"rules": {
"@neon/eslint-vue/array-bracket-newline": [
2,
{
"multiline": true
}
],
"@neon/eslint-vue/array-bracket-spacing": [
2,
"never"
],
"@neon/eslint-vue/arrow-spacing": [
2,
{
"after": true,
"before": true
}
],
"@neon/eslint-vue/attribute-hyphenation": [
2,
"always"
],
"@neon/eslint-vue/attributes-order": 2,
"@neon/eslint-vue/block-lang": 0,
"@neon/eslint-vue/block-spacing": [
2,
"always"
],
"@neon/eslint-vue/block-tag-newline": 2,
"@neon/eslint-vue/brace-style": [
2,
"1tbs",
{
"allowSingleLine": false
}
],
"@neon/eslint-vue/camelcase": 0,
"@neon/eslint-vue/comma-dangle": [
2,
{
"arrays": "always-multiline",
"exports": "always-multiline",
"functions": "always-multiline",
"imports": "always-multiline",
"objects": "always-multiline"
}
],
"@neon/eslint-vue/comma-spacing": [
2,
{
"after": true,
"before": false
}
],
"@neon/eslint-vue/comma-style": [
2,
"last"
],
"@neon/eslint-vue/comment-directive": 2,
"@neon/eslint-vue/component-api-style": 2,
"@neon/eslint-vue/component-definition-name-casing": 2,
"@neon/eslint-vue/component-name-in-template-casing": 2,
"@neon/eslint-vue/component-options-name-casing": 2,
"@neon/eslint-vue/custom-event-name-casing": 2,
"@neon/eslint-vue/define-macros-order": 2,
"@neon/eslint-vue/dot-location": [
2,
"property"
],
"@neon/eslint-vue/dot-notation": 2,
"@neon/eslint-vue/eqeqeq": 2,
"@neon/eslint-vue/first-attribute-linebreak": [
2,
{
"singleline": "beside",
"multiline": "below"
}
],
"@neon/eslint-vue/func-call-spacing": [
2,
"never"
],
"@neon/eslint-vue/html-button-has-type": 2,
"@neon/eslint-vue/html-closing-bracket-newline": 2,
"@neon/eslint-vue/html-closing-bracket-spacing": 2,
"@neon/eslint-vue/html-comment-content-newline": 2,
"@neon/eslint-vue/html-comment-content-spacing": 2,
"@neon/eslint-vue/html-comment-indent": 2,
"@neon/eslint-vue/html-end-tags": 2,
"@neon/eslint-vue/html-indent": [
2,
"tab"
],
"@neon/eslint-vue/html-quotes": 2,
"@neon/eslint-vue/html-self-closing": [
"error",
{
"html": {
"void": "never",
"normal": "never",
"component": "always"
},
"svg": "never",
"math": "never"
}
],
"@neon/eslint-vue/jsx-uses-vars": 2,
"@neon/eslint-vue/key-spacing": [
2,
{
"afterColon": true,
"beforeColon": false
}
],
"@neon/eslint-vue/keyword-spacing": [
2,
{
"after": true,
"before": true
}
],
"@neon/eslint-vue/match-component-file-name": [
2,
{
"extensions": [
".js",
"jsx",
".ts",
".tsx",
".vue"
],
"shouldMatchCase": false
}
],
"@neon/eslint-vue/match-component-import-name": 0,
"@neon/eslint-vue/max-attributes-per-line": [
2,
{
"singleline": {
"max": 3
},
"multiline": {
"max": 1
}
}
],
"@neon/eslint-vue/max-len": 0,
"@neon/eslint-vue/multi-word-component-names": 2,
"@neon/eslint-vue/multiline-html-element-content-newline": 2,
"@neon/eslint-vue/mustache-interpolation-spacing": 2,
"@neon/eslint-vue/new-line-between-multi-line-property": 2,
"@neon/eslint-vue/next-tick-style": 2,
"@neon/eslint-vue/no-arrow-functions-in-watch": 2,
"@neon/eslint-vue/no-async-in-computed-properties": 2,
"@neon/eslint-vue/no-bare-strings-in-template": 0,
"@neon/eslint-vue/no-boolean-default": 2,
"@neon/eslint-vue/no-child-content": 2,
"@neon/eslint-vue/no-computed-properties-in-data": 2,
"@neon/eslint-vue/no-constant-condition": 0,
"@neon/eslint-vue/no-custom-modifiers-on-v-model": 2,
"@neon/eslint-vue/no-deprecated-data-object-declaration": 2,
"@neon/eslint-vue/no-deprecated-delete-set": 2,
"@neon/eslint-vue/no-deprecated-destroyed-lifecycle": 2,
"@neon/eslint-vue/no-deprecated-dollar-listeners-api": 2,
"@neon/eslint-vue/no-deprecated-dollar-scopedslots-api": 2,
"@neon/eslint-vue/no-deprecated-events-api": 2,
"@neon/eslint-vue/no-deprecated-filter": 2,
"@neon/eslint-vue/no-deprecated-functional-template": 2,
"@neon/eslint-vue/no-deprecated-html-element-is": 2,
"@neon/eslint-vue/no-deprecated-inline-template": 2,
"@neon/eslint-vue/no-deprecated-model-definition": 2,
"@neon/eslint-vue/no-deprecated-props-default-this": 2,
"@neon/eslint-vue/no-deprecated-router-link-tag-prop": 2,
"@neon/eslint-vue/no-deprecated-scope-attribute": 2,
"@neon/eslint-vue/no-deprecated-slot-attribute": 2,
"@neon/eslint-vue/no-deprecated-slot-scope-attribute": 2,
"@neon/eslint-vue/no-deprecated-v-bind-sync": 2,
"@neon/eslint-vue/no-deprecated-v-is": 2,
"@neon/eslint-vue/no-deprecated-v-on-native-modifier": 2,
"@neon/eslint-vue/no-deprecated-v-on-number-modifiers": 2,
"@neon/eslint-vue/no-deprecated-vue-config-keycodes": 2,
"@neon/eslint-vue/no-dupe-keys": 2,
"@neon/eslint-vue/no-dupe-v-else-if": 2,
"@neon/eslint-vue/no-duplicate-attr-inheritance": 2,
"@neon/eslint-vue/no-duplicate-attributes": 2,
"@neon/eslint-vue/no-empty-component-block": 2,
"@neon/eslint-vue/no-empty-pattern": 2,
"@neon/eslint-vue/no-export-in-script-setup": 2,
"@neon/eslint-vue/no-expose-after-await": 2,
"@neon/eslint-vue/no-extra-parens": 2,
"@neon/eslint-vue/no-irregular-whitespace": 2,
"@neon/eslint-vue/no-lifecycle-after-await": 2,
"@neon/eslint-vue/no-lone-template": 2,
"@neon/eslint-vue/no-loss-of-precision": 2,
"@neon/eslint-vue/no-multi-spaces": 2,
"@neon/eslint-vue/no-multiple-objects-in-class": 2,
"@neon/eslint-vue/no-multiple-slot-args": 2,
"@neon/eslint-vue/no-multiple-template-root": 2,
"@neon/eslint-vue/no-mutating-props": 2,
"@neon/eslint-vue/no-parsing-error": 2,
"@neon/eslint-vue/no-potential-component-option-typo": 2,
"@neon/eslint-vue/no-ref-as-operand": 2,
"@neon/eslint-vue/no-required-prop-with-default": 2,
"@neon/eslint-vue/no-reserved-component-names": [
2,
{
"disallowVueBuiltInComponents": true,
"disallowVue3BuiltInComponents": true
}
],
"@neon/eslint-vue/no-reserved-keys": 2,
"@neon/eslint-vue/no-reserved-props": 2,
"@neon/eslint-vue/no-shared-component-data": 2,
"@neon/eslint-vue/no-side-effects-in-computed-properties": 2,
"@neon/eslint-vue/no-spaces-around-equal-signs-in-attribute": 2,
"@neon/eslint-vue/no-sparse-arrays": 0,
"@neon/eslint-vue/no-static-inline-styles": [
2,
{
"allowBinding": false
}
],
"@neon/eslint-vue/no-template-key": 2,
"@neon/eslint-vue/no-template-shadow": 2,
"@neon/eslint-vue/no-template-target-blank": 2,
"@neon/eslint-vue/no-textarea-mustache": 2,
"@neon/eslint-vue/no-this-in-before-route-enter": 2,
"@neon/eslint-vue/no-undef-components": 0,
"@neon/eslint-vue/no-undef-properties": 0,
"@neon/eslint-vue/no-unsupported-features": 0,
"@neon/eslint-vue/no-unused-components": 2,
"@neon/eslint-vue/no-unused-properties": 2,
"@neon/eslint-vue/no-unused-refs": 2,
"@neon/eslint-vue/no-unused-vars": 2,
"@neon/eslint-vue/no-use-computed-property-like-method": 2,
"@neon/eslint-vue/no-use-v-if-with-v-for": 2,
"@neon/eslint-vue/no-useless-concat": 2,
"@neon/eslint-vue/no-useless-mustaches": 2,
"@neon/eslint-vue/no-useless-template-attributes": 2,
"@neon/eslint-vue/no-useless-v-bind": 2,
"@neon/eslint-vue/no-v-for-template-key": 0,
"@neon/eslint-vue/no-v-for-template-key-on-child": 2,
"@neon/eslint-vue/no-v-html": 1,
"@neon/eslint-vue/no-v-model-argument": 2,
"@neon/eslint-vue/no-v-text": 2,
"@neon/eslint-vue/no-v-text-v-html-on-component": 2,
"@neon/eslint-vue/no-watch-after-await": 2,
"@neon/eslint-vue/object-curly-newline": [
2,
{
"multiline": true
}
],
"@neon/eslint-vue/object-curly-spacing": [
2,
"always"
],
"@neon/eslint-vue/object-property-newline": [
2,
{
"allowAllPropertiesOnSameLine": false
}
],
"@neon/eslint-vue/object-shorthand": [
2,
"always"
],
"@neon/eslint-vue/one-component-per-file": 2,
"@neon/eslint-vue/operator-linebreak": [
2,
"after"
],
"@neon/eslint-vue/order-in-components": 2,
"@neon/eslint-vue/padding-line-between-blocks": 2,
"@neon/eslint-vue/prefer-import-from-vue": 2,
"@neon/eslint-vue/prefer-prop-type-boolean-first": 2,
"@neon/eslint-vue/prefer-separate-static-class": 2,
"@neon/eslint-vue/prefer-template": 0,
"@neon/eslint-vue/prefer-true-attribute-shorthand": 2,
"@neon/eslint-vue/prop-name-casing": 0,
"@neon/eslint-vue/quote-props": [
2,
"as-needed",
{
"numbers": true
}
],
"@neon/eslint-vue/require-component-is": 2,
"@neon/eslint-vue/require-default-prop": 2,
"@neon/eslint-vue/require-direct-export": 2,
"@neon/eslint-vue/require-emit-validator": 2,
"@neon/eslint-vue/require-explicit-emits": 2,
"@neon/eslint-vue/require-expose": 2,
"@neon/eslint-vue/require-name-property": 0,
"@neon/eslint-vue/require-prop-type-constructor": 2,
"@neon/eslint-vue/require-prop-types": 2,
"@neon/eslint-vue/require-render-return": 2,
"@neon/eslint-vue/require-slots-as-functions": 2,
"@neon/eslint-vue/require-toggle-inside-transition": 2,
"@neon/eslint-vue/require-v-for-key": 2,
"@neon/eslint-vue/require-valid-default-prop": 2,
"@neon/eslint-vue/return-in-computed-property": 2,
"@neon/eslint-vue/return-in-emits-validator": 2,
"@neon/eslint-vue/script-indent": [
2,
"tab"
],
"@neon/eslint-vue/singleline-html-element-content-newline": 0,
"@neon/eslint-vue/sort-keys": 2,
"@neon/eslint-vue/space-in-parens": [
2,
"never"
],
"@neon/eslint-vue/space-infix-ops": [
2,
{
"int32Hint": true
}
],
"@neon/eslint-vue/space-unary-ops": [
2,
{
"nonwords": false,
"words": true
}
],
"@neon/eslint-vue/static-class-names-order": 0,
"@neon/eslint-vue/template-curly-spacing": [
2,
"never"
],
"@neon/eslint-vue/this-in-template": 2,
"@neon/eslint-vue/use-v-on-exact": 2,
"@neon/eslint-vue/v-bind-style": 2,
"@neon/eslint-vue/v-for-delimiter-style": 2,
"@neon/eslint-vue/v-on-event-hyphenation": [
2,
"always",
{
"autofix": true
}
],
"@neon/eslint-vue/v-on-style": 2,
"@neon/eslint-vue/v-slot-style": 2,
"@neon/eslint-vue/valid-attribute-name": 2,
"@neon/eslint-vue/valid-define-emits": 2,
"@neon/eslint-vue/valid-define-props": 2,
"@neon/eslint-vue/valid-model-definition": 2,
"@neon/eslint-vue/valid-next-tick": 2,
"@neon/eslint-vue/valid-template-root": 2,
"@neon/eslint-vue/valid-v-bind": 2,
"@neon/eslint-vue/valid-v-bind-sync": 2,
"@neon/eslint-vue/valid-v-cloak": 2,
"@neon/eslint-vue/valid-v-else": 2,
"@neon/eslint-vue/valid-v-else-if": 2,
"@neon/eslint-vue/valid-v-for": 2,
"@neon/eslint-vue/valid-v-html": 2,
"@neon/eslint-vue/valid-v-if": 2,
"@neon/eslint-vue/valid-v-is": 2,
"@neon/eslint-vue/valid-v-memo": 2,
"@neon/eslint-vue/valid-v-model": 2,
"@neon/eslint-vue/valid-v-on": 2,
"@neon/eslint-vue/valid-v-once": 2,
"@neon/eslint-vue/valid-v-pre": 2,
"@neon/eslint-vue/valid-v-show": 2,
"@neon/eslint-vue/valid-v-slot": 2,
"@neon/eslint-vue/valid-v-text": 2
}
}
],
"rules": {},
"plugins": []
}