eslint-config-neon
Version:
The ultimate ESLint shareable config
152 lines (151 loc) • 4.46 kB
JSON
{
"jsPlugins": [
{
"name": "@neon/eslint-react",
"specifier": "eslint-plugin-react"
},
{
"name": "@neon/eslint-stylistic",
"specifier": "@stylistic/eslint-plugin"
}
],
"overrides": [
{
"files": [
"**/*.{js,jsx,ts,tsx,cjs,mjs,cts,mts}"
],
"rules": {
"@neon/eslint-react/boolean-prop-naming": 2,
"@neon/eslint-react/default-props-match-prop-types": 2,
"@neon/eslint-react/destructuring-assignment": 0,
"@neon/eslint-react/forbid-foreign-prop-types": 0,
"@neon/eslint-react/forbid-prop-types": 0,
"@neon/eslint-react/function-component-definition": 0,
"@neon/eslint-react/jsx-indent-props": [
2,
"tab"
],
"@neon/eslint-react/jsx-no-bind": [
2,
{
"allowArrowFunctions": true,
"allowBind": false,
"ignoreRefs": true
}
],
"@neon/eslint-react/jsx-no-literals": 0,
"@neon/eslint-react/jsx-uses-react": 2,
"@neon/eslint-react/jsx-uses-vars": 2,
"@neon/eslint-react/no-access-state-in-setstate": 2,
"@neon/eslint-react/no-adjacent-inline-elements": 0,
"@neon/eslint-react/no-arrow-function-lifecycle": 2,
"@neon/eslint-react/no-deprecated": 2,
"@neon/eslint-react/no-invalid-html-attribute": 2,
"@neon/eslint-react/no-typos": 2,
"@neon/eslint-react/no-unused-class-component-methods": 2,
"@neon/eslint-react/no-unused-prop-types": 2,
"@neon/eslint-react/no-unused-state": 2,
"@neon/eslint-react/prefer-exact-props": 0,
"@neon/eslint-react/prefer-read-only-props": 2,
"@neon/eslint-react/prefer-stateless-function": [
2,
{
"ignorePureComponents": true
}
],
"@neon/eslint-react/prop-types": 2,
"@neon/eslint-react/require-default-props": 0,
"@neon/eslint-react/require-optimization": 0,
"@neon/eslint-react/require-render-return": 2,
"@neon/eslint-react/sort-comp": 2,
"@neon/eslint-react/sort-default-props": 2,
"@neon/eslint-react/sort-prop-types": 2,
"@neon/eslint-react/static-property-placement": 2,
"@neon/eslint-stylistic/jsx-child-element-spacing": 0,
"@neon/eslint-stylistic/jsx-closing-bracket-location": [
2,
"line-aligned"
],
"@neon/eslint-stylistic/jsx-closing-tag-location": 2,
"@neon/eslint-stylistic/jsx-curly-brace-presence": [
2,
{
"children": "never",
"props": "never"
}
],
"@neon/eslint-stylistic/jsx-curly-newline": 2,
"@neon/eslint-stylistic/jsx-curly-spacing": [
2,
"never",
{
"allowMultiline": true
}
],
"@neon/eslint-stylistic/jsx-equals-spacing": [
2,
"never"
],
"@neon/eslint-stylistic/jsx-first-prop-new-line": [
2,
"multiline-multiprop"
],
"@neon/eslint-stylistic/jsx-indent": [
2,
"tab"
],
"@neon/eslint-stylistic/jsx-max-props-per-line": [
2,
{
"maximum": 3,
"when": "multiline"
}
],
"@neon/eslint-stylistic/jsx-newline": [
2,
{
"prevent": true
}
],
"@neon/eslint-stylistic/jsx-one-expression-per-line": 0,
"@neon/eslint-stylistic/jsx-pascal-case": [
2,
{
"ignore": [
"h{}",
"h2",
"h3",
"h4",
"h5",
"h6",
"p",
"a",
"ul",
"ol",
"li",
"img",
"div",
"span",
"dl",
"dt",
"dd"
]
}
],
"@neon/eslint-stylistic/jsx-props-no-multi-spaces": 2,
"@neon/eslint-stylistic/jsx-sort-props": 2,
"@neon/eslint-stylistic/jsx-tag-spacing": [
2,
{
"afterOpening": "never",
"beforeSelfClosing": "always",
"closingSlash": "never"
}
],
"@neon/eslint-stylistic/jsx-wrap-multilines": 0
}
}
],
"rules": {},
"plugins": []
}