diff --git a/packages/eslint-plugin/src/configs/all.ts b/packages/eslint-plugin/src/configs/all.ts index 9b5dd8fce57d..fa907dbd96f8 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', @@ -164,8 +137,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', @@ -173,19 +144,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 8a4ed0a00da5..67557c744ac6 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 412065b91ff5..a07d1903f518 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 8ceb2a8c0efa..1e7c6e278d4e 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 851d6fcc19b0..2c565e602d66 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 a0645e640409..8bc0de12fc86 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 b50d6b71814a..95682192c1ca 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 cfec69fdcbb5..220b62a1c743 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 0e4e26b4fa49..e80a0e76401d 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 548c39768b3c..c987b1c19eb2 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 2383142387a7..f78e70f84a0d 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 02ee716a1b2b..6420e969e4f6 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 279ea3840473..375a5191c1f7 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 66792ba75018..d1249a1c1984 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 442c8135e072..43c4ce0bb29d 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 89100ef01ac7..ec1bf5f811e6 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 2129c27f9fb7..70ad3626ab08 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 f0e45ae7e329..ec6d509e55e6 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 19836a9081f4..96e963e99acb 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 2bf643b08736..f8caca1ef15d 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 442dd71162a2..633cefb79ae6 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 ab234f2fe3a8..1908acf1460f 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 384d3246d372..92b038b74974 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); }