diff --git a/docs/content/rules/sort-classes.mdx b/docs/content/rules/sort-classes.mdx index f448126d..361b5e03 100644 --- a/docs/content/rules/sort-classes.mdx +++ b/docs/content/rules/sort-classes.mdx @@ -197,9 +197,9 @@ Allows you to use comments to separate the class members into logical groups. Th default: ``` [ - 'static-block', 'index-signature', 'static-property', + 'static-block', ['protected-property', 'protected-accessor-property'], ['private-property', 'private-accessor-property'], ['property', 'accessor-property'], @@ -312,11 +312,6 @@ Example 2: (The most important group is written in the comments) ```ts abstract class Example extends BaseExample { - // 'static-block' - static { - console.log("I am a static block"); - } - // 'index-signature' [key: string]: any; @@ -326,6 +321,11 @@ abstract class Example extends BaseExample { // 'declare-protected-static-readonly-property' declare protected static readonly value: string; + // 'static-block' + static { + console.log("I am a static block"); + } + // 'protected-abstract-override-readonly-decorated-property' @SomeDecorator protected abstract override readonly _value: number; diff --git a/rules/sort-classes.ts b/rules/sort-classes.ts index 054251d6..0f2e945c 100644 --- a/rules/sort-classes.ts +++ b/rules/sort-classes.ts @@ -234,9 +234,9 @@ export default createEslintRule({ ignoreCase: true, partitionByComment: false, groups: [ - 'static-block', 'index-signature', 'static-property', + 'static-block', ['protected-property', 'protected-accessor-property'], ['private-property', 'private-accessor-property'], ['property', 'accessor-property'], @@ -258,9 +258,9 @@ export default createEslintRule({ let options = complete(context.options.at(0), settings, { groups: [ - 'static-block', 'index-signature', 'static-property', + 'static-block', ['protected-property', 'protected-accessor-property'], ['private-property', 'private-accessor-property'], ['property', 'accessor-property'], diff --git a/test/sort-classes.test.ts b/test/sort-classes.test.ts index 486fc9b8..955ce3ec 100644 --- a/test/sort-classes.test.ts +++ b/test/sort-classes.test.ts @@ -5290,21 +5290,21 @@ describe(ruleName, () => { protected protectedProperty + static {} + static staticProperty [key: string]: string - - static {} } `, output: dedent` class Class { - static {} - [key: string]: string static staticProperty + static {} + protected accessor protectedAccessorProperty protected protectedProperty @@ -5417,6 +5417,15 @@ describe(ruleName, () => { data: { left: 'protectedProperty', leftGroup: 'protected-property', + right: 'static', + rightGroup: 'static-block', + }, + }, + { + messageId: 'unexpectedClassesGroupOrder', + data: { + left: 'static', + leftGroup: 'static-block', right: 'staticProperty', rightGroup: 'static-property', }, @@ -5430,15 +5439,6 @@ describe(ruleName, () => { rightGroup: 'index-signature', }, }, - { - messageId: 'unexpectedClassesGroupOrder', - data: { - left: '[key: string]', - leftGroup: 'index-signature', - right: 'static', - rightGroup: 'static-block', - }, - }, ], }, ],