diff --git a/packages/eslint-plugin/src/configs/all.ts b/packages/eslint-plugin/src/configs/all.ts index f6e14dfe12a..792873e1524 100644 --- a/packages/eslint-plugin/src/configs/all.ts +++ b/packages/eslint-plugin/src/configs/all.ts @@ -14,17 +14,9 @@ export = { '@typescript-eslint/ban-ts-comment': 'error', '@typescript-eslint/ban-tslint-comment': 'error', '@typescript-eslint/ban-types': 'error', - 'block-spacing': 'off', - '@typescript-eslint/block-spacing': 'error', - 'brace-style': 'off', - '@typescript-eslint/brace-style': 'error', '@typescript-eslint/class-literal-property-style': 'error', 'class-methods-use-this': 'off', '@typescript-eslint/class-methods-use-this': 'error', - 'comma-dangle': 'off', - '@typescript-eslint/comma-dangle': 'error', - 'comma-spacing': 'off', - '@typescript-eslint/comma-spacing': 'error', '@typescript-eslint/consistent-generic-constructors': 'error', '@typescript-eslint/consistent-indexed-object-style': 'error', '@typescript-eslint/consistent-type-assertions': 'error', @@ -38,23 +30,10 @@ export = { '@typescript-eslint/explicit-function-return-type': 'error', '@typescript-eslint/explicit-member-accessibility': 'error', '@typescript-eslint/explicit-module-boundary-types': 'error', - 'func-call-spacing': 'off', - '@typescript-eslint/func-call-spacing': 'error', - indent: 'off', - '@typescript-eslint/indent': 'error', 'init-declarations': 'off', '@typescript-eslint/init-declarations': 'error', - 'key-spacing': 'off', - '@typescript-eslint/key-spacing': 'error', - 'keyword-spacing': 'off', - '@typescript-eslint/keyword-spacing': 'error', - 'lines-around-comment': 'off', - '@typescript-eslint/lines-around-comment': 'error', - 'lines-between-class-members': 'off', - '@typescript-eslint/lines-between-class-members': 'error', 'max-params': 'off', '@typescript-eslint/max-params': 'error', - '@typescript-eslint/member-delimiter-style': 'error', '@typescript-eslint/member-ordering': 'error', '@typescript-eslint/method-signature-style': 'error', '@typescript-eslint/naming-convention': 'error', @@ -73,8 +52,6 @@ export = { '@typescript-eslint/no-empty-interface': 'error', '@typescript-eslint/no-explicit-any': 'error', '@typescript-eslint/no-extra-non-null-assertion': 'error', - 'no-extra-parens': 'off', - '@typescript-eslint/no-extra-parens': 'error', 'no-extra-semi': 'off', '@typescript-eslint/no-extra-semi': 'error', '@typescript-eslint/no-extraneous-class': 'error', @@ -138,10 +115,6 @@ export = { '@typescript-eslint/no-useless-template-literals': 'error', '@typescript-eslint/no-var-requires': 'error', '@typescript-eslint/non-nullable-type-assertion-style': 'error', - 'object-curly-spacing': 'off', - '@typescript-eslint/object-curly-spacing': 'error', - 'padding-line-between-statements': 'off', - '@typescript-eslint/padding-line-between-statements': 'error', '@typescript-eslint/parameter-properties': 'error', '@typescript-eslint/prefer-as-const': 'error', 'prefer-destructuring': 'off', @@ -162,8 +135,6 @@ export = { '@typescript-eslint/prefer-string-starts-ends-with': 'error', '@typescript-eslint/prefer-ts-expect-error': 'error', '@typescript-eslint/promise-function-async': 'error', - quotes: 'off', - '@typescript-eslint/quotes': 'error', '@typescript-eslint/require-array-sort-compare': 'error', 'require-await': 'off', '@typescript-eslint/require-await': 'error', @@ -171,19 +142,10 @@ export = { '@typescript-eslint/restrict-template-expressions': 'error', 'no-return-await': 'off', '@typescript-eslint/return-await': 'error', - semi: 'off', - '@typescript-eslint/semi': 'error', '@typescript-eslint/sort-type-constituents': 'error', - 'space-before-blocks': 'off', - '@typescript-eslint/space-before-blocks': 'error', - 'space-before-function-paren': 'off', - '@typescript-eslint/space-before-function-paren': 'error', - 'space-infix-ops': 'off', - '@typescript-eslint/space-infix-ops': 'error', '@typescript-eslint/strict-boolean-expressions': 'error', '@typescript-eslint/switch-exhaustiveness-check': 'error', '@typescript-eslint/triple-slash-reference': 'error', - '@typescript-eslint/type-annotation-spacing': 'error', '@typescript-eslint/typedef': 'error', '@typescript-eslint/unbound-method': 'error', '@typescript-eslint/unified-signatures': 'error', diff --git a/packages/eslint-plugin/src/rules/block-spacing.ts b/packages/eslint-plugin/src/rules/block-spacing.ts index 8a4ed0a00da..67557c744ac 100644 --- a/packages/eslint-plugin/src/rules/block-spacing.ts +++ b/packages/eslint-plugin/src/rules/block-spacing.ts @@ -17,6 +17,8 @@ export type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'block-spacing', meta: { + deprecated: true, + replacedBy: ['@stylistic/block-spacing'], type: 'layout', docs: { description: diff --git a/packages/eslint-plugin/src/rules/brace-style.ts b/packages/eslint-plugin/src/rules/brace-style.ts index 412065b91ff..a07d1903f51 100644 --- a/packages/eslint-plugin/src/rules/brace-style.ts +++ b/packages/eslint-plugin/src/rules/brace-style.ts @@ -16,6 +16,8 @@ export type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'brace-style', meta: { + deprecated: true, + replacedBy: ['@stylistic/brace-style'], type: 'layout', docs: { description: 'Enforce consistent brace style for blocks', diff --git a/packages/eslint-plugin/src/rules/comma-dangle.ts b/packages/eslint-plugin/src/rules/comma-dangle.ts index 8ceb2a8c0ef..1e7c6e278d4 100644 --- a/packages/eslint-plugin/src/rules/comma-dangle.ts +++ b/packages/eslint-plugin/src/rules/comma-dangle.ts @@ -46,6 +46,8 @@ function normalizeOptions(options: Option): NormalizedOptions { export default createRule({ name: 'comma-dangle', meta: { + deprecated: true, + replacedBy: ['@stylistic/comma-dangle'], type: 'layout', docs: { description: 'Require or disallow trailing commas', diff --git a/packages/eslint-plugin/src/rules/comma-spacing.ts b/packages/eslint-plugin/src/rules/comma-spacing.ts index 851d6fcc19b..2c565e602d6 100644 --- a/packages/eslint-plugin/src/rules/comma-spacing.ts +++ b/packages/eslint-plugin/src/rules/comma-spacing.ts @@ -22,6 +22,8 @@ type MessageIds = 'missing' | 'unexpected'; export default createRule({ name: 'comma-spacing', meta: { + deprecated: true, + replacedBy: ['@stylistic/comma-spacing'], type: 'layout', docs: { description: 'Enforce consistent spacing before and after commas', diff --git a/packages/eslint-plugin/src/rules/func-call-spacing.ts b/packages/eslint-plugin/src/rules/func-call-spacing.ts index a0645e64040..8bc0de12fc8 100644 --- a/packages/eslint-plugin/src/rules/func-call-spacing.ts +++ b/packages/eslint-plugin/src/rules/func-call-spacing.ts @@ -23,6 +23,8 @@ export type MessageIds = export default createRule({ name: 'func-call-spacing', meta: { + deprecated: true, + replacedBy: ['@stylistic/func-call-spacing'], type: 'layout', docs: { description: diff --git a/packages/eslint-plugin/src/rules/indent.ts b/packages/eslint-plugin/src/rules/indent.ts index b50d6b71814..95682192c1c 100644 --- a/packages/eslint-plugin/src/rules/indent.ts +++ b/packages/eslint-plugin/src/rules/indent.ts @@ -92,6 +92,8 @@ const KNOWN_NODES = new Set([ export default createRule({ name: 'indent', meta: { + deprecated: true, + replacedBy: ['@stylistic/indent'], type: 'layout', docs: { description: 'Enforce consistent indentation', diff --git a/packages/eslint-plugin/src/rules/key-spacing.ts b/packages/eslint-plugin/src/rules/key-spacing.ts index cfec69fdcbb..220b62a1c74 100644 --- a/packages/eslint-plugin/src/rules/key-spacing.ts +++ b/packages/eslint-plugin/src/rules/key-spacing.ts @@ -27,6 +27,8 @@ const baseSchema = Array.isArray(baseRule.meta.schema) export default createRule({ name: 'key-spacing', meta: { + deprecated: true, + replacedBy: ['@stylistic/key-spacing'], type: 'layout', docs: { description: diff --git a/packages/eslint-plugin/src/rules/keyword-spacing.ts b/packages/eslint-plugin/src/rules/keyword-spacing.ts index 0e4e26b4fa4..e80a0e76401 100644 --- a/packages/eslint-plugin/src/rules/keyword-spacing.ts +++ b/packages/eslint-plugin/src/rules/keyword-spacing.ts @@ -37,6 +37,8 @@ const schema = deepMerge( export default createRule({ name: 'keyword-spacing', meta: { + deprecated: true, + replacedBy: ['@stylistic/keyword-spacing'], type: 'layout', docs: { description: 'Enforce consistent spacing before and after keywords', diff --git a/packages/eslint-plugin/src/rules/lines-around-comment.ts b/packages/eslint-plugin/src/rules/lines-around-comment.ts index 548c39768b3..c987b1c19eb 100644 --- a/packages/eslint-plugin/src/rules/lines-around-comment.ts +++ b/packages/eslint-plugin/src/rules/lines-around-comment.ts @@ -50,6 +50,8 @@ function getCommentLineNums(comments: TSESTree.Comment[]): number[] { export default createRule({ name: 'lines-around-comment', meta: { + deprecated: true, + replacedBy: ['@stylistic/lines-around-comment'], type: 'layout', docs: { description: 'Require empty lines around comments', diff --git a/packages/eslint-plugin/src/rules/lines-between-class-members.ts b/packages/eslint-plugin/src/rules/lines-between-class-members.ts index 2383142387a..f78e70f84a0 100644 --- a/packages/eslint-plugin/src/rules/lines-between-class-members.ts +++ b/packages/eslint-plugin/src/rules/lines-between-class-members.ts @@ -33,6 +33,8 @@ const schema = Object.values( export default createRule({ name: 'lines-between-class-members', meta: { + deprecated: true, + replacedBy: ['@stylistic/line-between-class-members'], type: 'layout', docs: { description: 'Require or disallow an empty line between class members', diff --git a/packages/eslint-plugin/src/rules/member-delimiter-style.ts b/packages/eslint-plugin/src/rules/member-delimiter-style.ts index 02ee716a1b2..6420e969e4f 100644 --- a/packages/eslint-plugin/src/rules/member-delimiter-style.ts +++ b/packages/eslint-plugin/src/rules/member-delimiter-style.ts @@ -136,6 +136,8 @@ const BASE_SCHEMA: JSONSchema4 = { export default createRule({ name: 'member-delimiter-style', meta: { + deprecated: true, + replacedBy: ['@stylistic/member-delimiter-style'], type: 'layout', docs: { description: diff --git a/packages/eslint-plugin/src/rules/no-extra-parens.ts b/packages/eslint-plugin/src/rules/no-extra-parens.ts index 279ea384047..375a5191c1f 100644 --- a/packages/eslint-plugin/src/rules/no-extra-parens.ts +++ b/packages/eslint-plugin/src/rules/no-extra-parens.ts @@ -20,6 +20,8 @@ type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'no-extra-parens', meta: { + deprecated: true, + replacedBy: ['@stylistic/no-extra-parens'], type: 'layout', docs: { description: 'Disallow unnecessary parentheses', diff --git a/packages/eslint-plugin/src/rules/object-curly-spacing.ts b/packages/eslint-plugin/src/rules/object-curly-spacing.ts index 66792ba7501..d1249a1c198 100644 --- a/packages/eslint-plugin/src/rules/object-curly-spacing.ts +++ b/packages/eslint-plugin/src/rules/object-curly-spacing.ts @@ -24,10 +24,12 @@ export default createRule({ // eslint-disable-next-line eslint-plugin/prefer-message-ids,eslint-plugin/require-meta-type,eslint-plugin/require-meta-schema,eslint-plugin/require-meta-fixable -- all in base rule - https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/issues/274 meta: { ...baseRule.meta, + deprecated: true, docs: { description: 'Enforce consistent spacing inside braces', extendsBaseRule: true, }, + replacedBy: ['@stylistic/object-curly-spacing'], }, defaultOptions: ['never'], create(context) { diff --git a/packages/eslint-plugin/src/rules/padding-line-between-statements.ts b/packages/eslint-plugin/src/rules/padding-line-between-statements.ts index 442c8135e07..43c4ce0bb29 100644 --- a/packages/eslint-plugin/src/rules/padding-line-between-statements.ts +++ b/packages/eslint-plugin/src/rules/padding-line-between-statements.ts @@ -590,6 +590,8 @@ const StatementTypes: Record = { export default createRule({ name: 'padding-line-between-statements', meta: { + deprecated: true, + replacedBy: ['@stylistic/padding-line-between-statements'], type: 'layout', docs: { description: 'Require or disallow padding lines between statements', diff --git a/packages/eslint-plugin/src/rules/quotes.ts b/packages/eslint-plugin/src/rules/quotes.ts index 89100ef01ac..ec1bf5f811e 100644 --- a/packages/eslint-plugin/src/rules/quotes.ts +++ b/packages/eslint-plugin/src/rules/quotes.ts @@ -16,6 +16,8 @@ export type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'quotes', meta: { + deprecated: true, + replacedBy: ['@stylistic/quotes'], type: 'layout', docs: { description: diff --git a/packages/eslint-plugin/src/rules/semi.ts b/packages/eslint-plugin/src/rules/semi.ts index 2129c27f9fb..70ad3626ab0 100644 --- a/packages/eslint-plugin/src/rules/semi.ts +++ b/packages/eslint-plugin/src/rules/semi.ts @@ -16,6 +16,8 @@ export type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'semi', meta: { + deprecated: true, + replacedBy: ['@stylistic/semi'], type: 'layout', docs: { description: 'Require or disallow semicolons instead of ASI', diff --git a/packages/eslint-plugin/src/rules/space-before-blocks.ts b/packages/eslint-plugin/src/rules/space-before-blocks.ts index f0e45ae7e32..ec6d509e55e 100644 --- a/packages/eslint-plugin/src/rules/space-before-blocks.ts +++ b/packages/eslint-plugin/src/rules/space-before-blocks.ts @@ -16,6 +16,8 @@ export type MessageIds = InferMessageIdsTypeFromRule; export default createRule({ name: 'space-before-blocks', meta: { + deprecated: true, + replacedBy: ['@stylistic/space-before-blocks'], type: 'layout', docs: { description: 'Enforce consistent spacing before blocks', diff --git a/packages/eslint-plugin/src/rules/space-before-function-paren.ts b/packages/eslint-plugin/src/rules/space-before-function-paren.ts index 19836a9081f..96e963e99ac 100644 --- a/packages/eslint-plugin/src/rules/space-before-function-paren.ts +++ b/packages/eslint-plugin/src/rules/space-before-function-paren.ts @@ -20,6 +20,8 @@ export type MessageIds = 'missing' | 'unexpected'; export default createRule({ name: 'space-before-function-paren', meta: { + deprecated: true, + replacedBy: ['@stylistic/space-before-function-paren'], type: 'layout', docs: { description: 'Enforce consistent spacing before function parenthesis', diff --git a/packages/eslint-plugin/src/rules/space-infix-ops.ts b/packages/eslint-plugin/src/rules/space-infix-ops.ts index 2bf643b0873..f8caca1ef15 100644 --- a/packages/eslint-plugin/src/rules/space-infix-ops.ts +++ b/packages/eslint-plugin/src/rules/space-infix-ops.ts @@ -18,6 +18,8 @@ const UNIONS = ['|', '&']; export default createRule({ name: 'space-infix-ops', meta: { + deprecated: true, + replacedBy: ['@stylistic/space-infix-ops'], type: 'layout', docs: { description: 'Require spacing around infix operators', diff --git a/packages/eslint-plugin/src/rules/type-annotation-spacing.ts b/packages/eslint-plugin/src/rules/type-annotation-spacing.ts index 442dd71162a..633cefb79ae 100644 --- a/packages/eslint-plugin/src/rules/type-annotation-spacing.ts +++ b/packages/eslint-plugin/src/rules/type-annotation-spacing.ts @@ -102,6 +102,8 @@ function getRules( export default createRule({ name: 'type-annotation-spacing', meta: { + deprecated: true, + replacedBy: ['@stylistic/type-annotation-spacing'], type: 'layout', docs: { description: 'Require consistent spacing around type annotations', diff --git a/packages/eslint-plugin/tests/areOptionsValid.test.ts b/packages/eslint-plugin/tests/areOptionsValid.test.ts index ab234f2fe3a..1908acf1460 100644 --- a/packages/eslint-plugin/tests/areOptionsValid.test.ts +++ b/packages/eslint-plugin/tests/areOptionsValid.test.ts @@ -4,7 +4,7 @@ import { areOptionsValid } from './areOptionsValid'; const exampleRule = createRule<['value-a' | 'value-b'], never>({ name: 'my-example-rule', meta: { - type: 'layout', + type: 'suggestion', docs: { description: 'Detects something or other', }, diff --git a/packages/website/plugins/generated-rule-docs/insertions/insertFormattingNotice.ts b/packages/website/plugins/generated-rule-docs/insertions/insertFormattingNotice.ts index 384d3246d37..92b038b7497 100644 --- a/packages/website/plugins/generated-rule-docs/insertions/insertFormattingNotice.ts +++ b/packages/website/plugins/generated-rule-docs/insertions/insertFormattingNotice.ts @@ -3,15 +3,32 @@ import type * as unist from 'unist'; import type { RuleDocsPage } from '../RuleDocsPage'; export function insertFormattingNotice(page: RuleDocsPage): void { - if (page.rule.meta.type === 'layout') { - page.spliceChildren(0, 0, { - value: ` - -This rule will soon be moved to eslint-stylistic. + if (page.rule.meta.type !== 'layout') { + return; + } + + const replacement = page.rule.meta.replacedBy!.find(e => + e.startsWith('@stylistic/'), + ); + const url = + replacement && + `https://eslint.style/rules/default/${replacement.replace( + '@stylistic/', + '', + )}`; + + page.spliceChildren(0, 0, { + value: ` + +Formatting rules now live in eslint-stylistic. ${ + url + ? ` ${replacement} is the replacement for this rule. ` + : '' + } +
See What About Formatting? for more information.
`, - type: 'jsx', - } as unist.Node); - } + type: 'jsx', + } as unist.Node); }