tree-sitter/cli/eslint/index.js
2024-09-22 20:26:04 -04:00

121 lines
3.4 KiB
JavaScript

import globals from 'globals';
import jsdoc from 'eslint-plugin-jsdoc';
export default [
jsdoc.configs['flat/recommended'],
{
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
globals: {
...globals.commonjs,
...globals.es2021,
},
},
plugins: {
jsdoc,
},
rules: {
'no-cond-assign': 'off',
'no-irregular-whitespace': 'error',
'no-unexpected-multiline': 'error',
'curly': ['error', 'multi-line'],
'guard-for-in': 'error',
'no-caller': 'error',
'no-extend-native': 'error',
'no-extra-bind': 'error',
'no-invalid-this': 'error',
'no-multi-spaces': 'error',
'no-multi-str': 'error',
'no-new-wrappers': 'error',
'no-throw-literal': 'error',
'no-with': 'error',
'prefer-promise-reject-errors': 'error',
'no-unused-vars': ['error', { args: 'none' }],
'array-bracket-newline': 'off',
'array-bracket-spacing': ['error', 'never'],
'array-element-newline': 'off',
'block-spacing': ['error', 'never'],
'brace-style': 'error',
'camelcase': ['error', { properties: 'never' }],
'comma-dangle': ['error', 'always-multiline'],
'comma-spacing': 'error',
'comma-style': 'error',
'computed-property-spacing': 'error',
'eol-last': 'error',
'func-call-spacing': 'error',
'camelcase': 'off',
'indent': [
'error',
2,
{
'SwitchCase': 1,
},
],
'key-spacing': 'error',
'keyword-spacing': 'error',
'linebreak-style': 'error',
'max-len': [
'error',
{
code: 160,
ignoreComments: true,
ignoreUrls: true,
ignoreStrings: true,
},
],
'new-cap': 'error',
'no-array-constructor': 'error',
'no-mixed-spaces-and-tabs': 'error',
'no-multiple-empty-lines': ['error', { max: 2 }],
'no-new-object': 'error',
'no-tabs': 'error',
'no-trailing-spaces': 'error',
'object-curly-spacing': 'error',
'one-var': ['error', {
var: 'never',
let: 'never',
const: 'never',
}],
'operator-linebreak': ['error', 'after'],
'padded-blocks': ['error', 'never'],
'quote-props': ['error', 'consistent'],
'quotes': ['error', 'single', { allowTemplateLiterals: true }],
'semi': 'error',
'semi-spacing': 'error',
'space-before-blocks': 'error',
'space-before-function-paren': ['error', {
asyncArrow: 'always',
anonymous: 'never',
named: 'never',
}],
'spaced-comment': [
'error',
'always',
{
line: {
markers: ['/'],
},
},
],
'switch-colon-spacing': 'error',
'arrow-parens': 'off',
'constructor-super': 'error',
'generator-star-spacing': ['error', 'after'],
'no-new-symbol': 'error',
'no-this-before-super': 'error',
'no-var': 'error',
'prefer-const': ['error', { destructuring: 'all' }],
'prefer-rest-params': 'error',
'prefer-spread': 'error',
'rest-spread-spacing': 'error',
'yield-star-spacing': ['error', 'after'],
'jsdoc/no-undefined-types': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/require-returns': 'off',
'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],
},
},
];