diff --git a/eslint.config.mjs b/eslint.config.mjs index 2d77b0eee..5c30f9d3f 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -121,12 +121,52 @@ const config = react({ // FIXME A bug with eslint-parser // 'template-curly-spacing': 'off', - 'style/indent': [ - 'warn', - 2, - { SwitchCase: 1 }, - ], - 'style/indent-binary-ops': ['warn', 2], + 'style/indent': ['warn', 2, { + ArrayExpression: 1, + CallExpression: { + arguments: 1, + }, + flatTernaryExpressions: false, + FunctionDeclaration: { + body: 1, + parameters: 1, + }, + FunctionExpression: { + body: 1, + parameters: 1, + }, + ignoreComments: false, + ignoredNodes: [ + 'TSUnionType', + 'TSIntersectionType', + 'TSTypeParameterInstantiation', + 'FunctionExpression > .params[decorators.length > 0]', + 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))', + 'JSXElement', + 'JSXElement > *', + 'JSXAttribute', + 'JSXIdentifier', + 'JSXNamespacedName', + 'JSXMemberExpression', + 'JSXSpreadAttribute', + 'JSXExpressionContainer', + 'JSXOpeningElement', + 'JSXClosingElement', + 'JSXFragment', + 'JSXOpeningFragment', + 'JSXClosingFragment', + 'JSXText', + 'JSXEmptyExpression', + 'JSXSpreadChild', + ], + ImportDeclaration: 1, + ObjectExpression: 1, + outerIIFEBody: 1, + SwitchCase: 1, + VariableDeclarator: 1, + }], + 'style/jsx-indent-props': 'off', + 'style/indent-binary-ops': 'off', 'function-paren-newline': 'off', 'no-mixed-operators': 'off', 'no-await-in-loop': 'off', diff --git a/framework/eslint-config/base.mjs b/framework/eslint-config/base.mjs index 0c5275701..c3ebcd9bd 100644 --- a/framework/eslint-config/base.mjs +++ b/framework/eslint-config/base.mjs @@ -182,37 +182,24 @@ const base = (option, ...args) => antfu( arguments: 1, }, flatTernaryExpressions: false, - FunctionDeclaration: { - body: 1, - parameters: 1, - }, - FunctionExpression: { - body: 1, - parameters: 1, - }, + FunctionDeclaration: { body: 1, parameters: 1, returnType: 1 }, + FunctionExpression: { body: 1, parameters: 1, returnType: 1 }, ignoreComments: false, ignoredNodes: [ - // 'JSXElement', - // 'JSXElement > *', - // 'JSXAttribute', - // 'JSXIdentifier', - // 'JSXNamespacedName', - // 'JSXMemberExpression', - // 'JSXSpreadAttribute', - // 'JSXExpressionContainer', - // 'JSXOpeningElement', - // 'JSXClosingElement', - // 'JSXFragment', - // 'JSXOpeningFragment', - // 'JSXClosingFragment', - 'JSXText', - // 'JSXEmptyExpression', - // 'JSXSpreadChild', + 'TSUnionType', + 'TSIntersectionType', + 'TSTypeParameterInstantiation', + 'FunctionExpression > .params[decorators.length > 0]', + 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))', + 'Punctuator', ], ImportDeclaration: 1, + // MemberExpression: 1, ObjectExpression: 1, + // offsetTernaryExpressions: true, outerIIFEBody: 1, SwitchCase: 1, + // tabLength: option.stylistic?.indent ?? 4, VariableDeclarator: 1, }], 'style/jsx-closing-bracket-location': 'off',