@alexlit/lint-kit
Version:
Preset of configuration files and dependencies for linting web applications (designed for Vue.js with TypeScript)
96 lines (93 loc) • 4.25 kB
JavaScript
import plugin from '@stylistic/eslint-plugin';
import { FILES } from '../presets/base.js';
/** @see [@stylistic/eslint-plugin](https://eslint.style/) */
export const stylistic = [
{
files: FILES,
plugins: { '@stylistic': plugin },
rules: {
'@stylistic/lines-around-comment': [
'warn',
{
afterBlockComment: false,
afterHashbangComment: true,
afterLineComment: false,
allowArrayEnd: true,
allowArrayStart: true,
allowBlockEnd: true,
allowBlockStart: true,
allowClassEnd: true,
allowClassStart: true,
allowEnumEnd: true,
allowEnumStart: true,
allowInterfaceEnd: true,
allowInterfaceStart: true,
allowModuleEnd: true,
allowModuleStart: true,
allowObjectEnd: true,
allowObjectStart: true,
allowTypeEnd: true,
allowTypeStart: true,
applyDefaultIgnorePatterns: true,
beforeBlockComment: false,
beforeLineComment: false,
},
],
'@stylistic/padding-line-between-statements': [
'warn',
// always
{ blankLine: 'always', next: '*', prev: 'block-like' },
{ blankLine: 'always', next: '*', prev: 'case' },
{ blankLine: 'always', next: '*', prev: 'cjs-export' },
{ blankLine: 'always', next: '*', prev: 'cjs-import' },
{ blankLine: 'always', next: '*', prev: 'class' },
{ blankLine: 'always', next: '*', prev: 'default' },
{ blankLine: 'always', next: '*', prev: 'directive' },
{ blankLine: 'always', next: '*', prev: 'expression' },
{ blankLine: 'always', next: '*', prev: 'iife' },
{ blankLine: 'always', next: '*', prev: 'multiline-block-like' },
{ blankLine: 'always', next: '*', prev: 'multiline-const' },
{ blankLine: 'always', next: '*', prev: 'multiline-expression' },
{ blankLine: 'always', next: '*', prev: 'multiline-let' },
{ blankLine: 'always', next: '*', prev: 'multiline-var' },
{ blankLine: 'always', next: '*', prev: 'singleline-const' },
{ blankLine: 'always', next: '*', prev: 'singleline-let' },
{ blankLine: 'always', next: '*', prev: 'singleline-var' },
{ blankLine: 'always', next: 'block-like', prev: '*' },
{ blankLine: 'always', next: 'cjs-export', prev: '*' },
{ blankLine: 'always', next: 'cjs-import', prev: '*' },
{ blankLine: 'always', next: 'class', prev: '*' },
{ blankLine: 'always', next: 'enum', prev: '*' },
{ blankLine: 'always', next: 'expression', prev: '*' },
{ blankLine: 'always', next: 'function', prev: '*' },
{ blankLine: 'always', next: 'iife', prev: '*' },
{ blankLine: 'always', next: 'interface', prev: '*' },
{ blankLine: 'always', next: 'multiline-block-like', prev: '*' },
{ blankLine: 'always', next: 'multiline-const', prev: '*' },
{ blankLine: 'always', next: 'multiline-expression', prev: '*' },
{ blankLine: 'always', next: 'multiline-let', prev: '*' },
{ blankLine: 'always', next: 'multiline-var', prev: '*' },
{ blankLine: 'always', next: 'return', prev: '*' },
{ blankLine: 'always', next: 'switch', prev: '*' },
{ blankLine: 'always', next: 'type', prev: '*' },
{ blankLine: 'always', next: '*', prev: 'enum' },
{ blankLine: 'always', next: '*', prev: 'interface' },
{ blankLine: 'always', next: '*', prev: 'type' },
// any
{ blankLine: 'any', next: 'expression', prev: 'expression' },
{
blankLine: 'any',
next: 'singleline-const',
prev: 'singleline-const',
},
{ blankLine: 'any', next: 'singleline-let', prev: 'singleline-let' },
{ blankLine: 'any', next: 'singleline-var', prev: 'singleline-var' },
// never
{ blankLine: 'never', next: 'cjs-export', prev: 'cjs-export' },
{ blankLine: 'never', next: 'cjs-import', prev: 'cjs-import' },
{ blankLine: 'never', next: 'directive', prev: 'directive' },
{ blankLine: 'never', next: 'function', prev: 'function-overload' },
],
},
},
];