Skip to content

Commit a6e1daf

Browse files
authoredJan 13, 2025··
fix: fix overlapping errors between newlines-between and comment-after fixes
1 parent afdda90 commit a6e1daf

29 files changed

+691
-208
lines changed
 

‎rules/sort-classes.ts

+9-18
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import { isNodeEslintDisabled } from '../utils/is-node-eslint-disabled'
4242
import { hasPartitionComment } from '../utils/has-partition-comment'
4343
import { sortNodesByGroups } from '../utils/sort-nodes-by-groups'
4444
import { getCommentsBefore } from '../utils/get-comments-before'
45-
import { makeNewlinesFixes } from '../utils/make-newlines-fixes'
4645
import { getNewlinesErrors } from '../utils/get-newlines-errors'
4746
import { createEslintRule } from '../utils/create-eslint-rule'
4847
import { getLinesBetween } from '../utils/get-lines-between'
@@ -52,8 +51,8 @@ import { toSingleLine } from '../utils/to-single-line'
5251
import { rangeToDiff } from '../utils/range-to-diff'
5352
import { getSettings } from '../utils/get-settings'
5453
import { isSortable } from '../utils/is-sortable'
55-
import { useGroups } from '../utils/use-groups'
5654
import { makeFixes } from '../utils/make-fixes'
55+
import { useGroups } from '../utils/use-groups'
5756
import { complete } from '../utils/complete'
5857
import { pairwise } from '../utils/pairwise'
5958
import { matches } from '../utils/matches'
@@ -652,29 +651,21 @@ export default createEslintRule<SortClassesOptions, MESSAGE_ID>({
652651

653652
for (let messageId of messageIds) {
654653
context.report({
655-
fix: (fixer: TSESLint.RuleFixer) => [
656-
...makeFixes({
657-
sortedNodes: sortedNodesExcludingEslintDisabled,
658-
sourceCode,
659-
options,
660-
fixer,
661-
nodes,
662-
}),
663-
...makeNewlinesFixes({
664-
sortedNodes: sortedNodesExcludingEslintDisabled,
665-
sourceCode,
666-
options,
667-
fixer,
668-
nodes,
669-
}),
670-
],
671654
data: {
672655
nodeDependentOnRight: firstUnorderedNodeDependentOnRight?.name,
673656
right: toSingleLine(right.name),
674657
left: toSingleLine(left.name),
675658
rightGroup: right.group,
676659
leftGroup: left.group,
677660
},
661+
fix: (fixer: TSESLint.RuleFixer) =>
662+
makeFixes({
663+
sortedNodes: sortedNodesExcludingEslintDisabled,
664+
sourceCode,
665+
options,
666+
fixer,
667+
nodes,
668+
}),
678669
node: right.node,
679670
messageId,
680671
})

‎rules/sort-decorators.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ import { toSingleLine } from '../utils/to-single-line'
3131
import { rangeToDiff } from '../utils/range-to-diff'
3232
import { getSettings } from '../utils/get-settings'
3333
import { isSortable } from '../utils/is-sortable'
34-
import { useGroups } from '../utils/use-groups'
3534
import { makeFixes } from '../utils/make-fixes'
35+
import { useGroups } from '../utils/use-groups'
3636
import { complete } from '../utils/complete'
3737
import { pairwise } from '../utils/pairwise'
3838

‎rules/sort-enums.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ import { toSingleLine } from '../utils/to-single-line'
3131
import { rangeToDiff } from '../utils/range-to-diff'
3232
import { getSettings } from '../utils/get-settings'
3333
import { isSortable } from '../utils/is-sortable'
34-
import { sortNodes } from '../utils/sort-nodes'
3534
import { makeFixes } from '../utils/make-fixes'
35+
import { sortNodes } from '../utils/sort-nodes'
3636
import { complete } from '../utils/complete'
3737
import { pairwise } from '../utils/pairwise'
3838

‎rules/sort-exports.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ import { getLinesBetween } from '../utils/get-lines-between'
2323
import { getSourceCode } from '../utils/get-source-code'
2424
import { rangeToDiff } from '../utils/range-to-diff'
2525
import { getSettings } from '../utils/get-settings'
26-
import { sortNodes } from '../utils/sort-nodes'
2726
import { makeFixes } from '../utils/make-fixes'
27+
import { sortNodes } from '../utils/sort-nodes'
2828
import { complete } from '../utils/complete'
2929
import { pairwise } from '../utils/pairwise'
3030

‎rules/sort-heritage-clauses.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ import { toSingleLine } from '../utils/to-single-line'
2626
import { rangeToDiff } from '../utils/range-to-diff'
2727
import { getSettings } from '../utils/get-settings'
2828
import { isSortable } from '../utils/is-sortable'
29-
import { useGroups } from '../utils/use-groups'
3029
import { makeFixes } from '../utils/make-fixes'
30+
import { useGroups } from '../utils/use-groups'
3131
import { complete } from '../utils/complete'
3232
import { pairwise } from '../utils/pairwise'
3333

@@ -176,19 +176,19 @@ let sortHeritageClauses = (
176176
let leftNumber = getGroupNumber(options.groups, left)
177177
let rightNumber = getGroupNumber(options.groups, right)
178178
context.report({
179-
data: {
180-
right: toSingleLine(right.name),
181-
left: toSingleLine(left.name),
182-
rightGroup: right.group,
183-
leftGroup: left.group,
184-
},
185179
fix: fixer =>
186180
makeFixes({
187181
sortedNodes: sortedNodesExcludingEslintDisabled,
188182
sourceCode,
189183
fixer,
190184
nodes,
191185
}),
186+
data: {
187+
right: toSingleLine(right.name),
188+
left: toSingleLine(left.name),
189+
rightGroup: right.group,
190+
leftGroup: left.group,
191+
},
192192
messageId:
193193
leftNumber === rightNumber
194194
? 'unexpectedHeritageClausesOrder'

‎rules/sort-imports.ts

+3-12
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import { hasPartitionComment } from '../utils/has-partition-comment'
2828
import { createNodeIndexMap } from '../utils/create-node-index-map'
2929
import { sortNodesByGroups } from '../utils/sort-nodes-by-groups'
3030
import { getCommentsBefore } from '../utils/get-comments-before'
31-
import { makeNewlinesFixes } from '../utils/make-newlines-fixes'
3231
import { getNewlinesErrors } from '../utils/get-newlines-errors'
3332
import { createEslintRule } from '../utils/create-eslint-rule'
3433
import { getLinesBetween } from '../utils/get-lines-between'
@@ -37,8 +36,8 @@ import { getSourceCode } from '../utils/get-source-code'
3736
import { rangeToDiff } from '../utils/range-to-diff'
3837
import { getSettings } from '../utils/get-settings'
3938
import { isSortable } from '../utils/is-sortable'
40-
import { useGroups } from '../utils/use-groups'
4139
import { makeFixes } from '../utils/make-fixes'
40+
import { useGroups } from '../utils/use-groups'
4241
import { complete } from '../utils/complete'
4342
import { pairwise } from '../utils/pairwise'
4443
import { matches } from '../utils/matches'
@@ -571,15 +570,8 @@ export default createEslintRule<Options<string[]>, MESSAGE_ID>({
571570

572571
for (let messageId of messageIds) {
573572
context.report({
574-
fix: fixer => [
575-
...makeFixes({
576-
sortedNodes: sortedNodesExcludingEslintDisabled,
577-
nodes: nodeList,
578-
sourceCode,
579-
options,
580-
fixer,
581-
}),
582-
...makeNewlinesFixes({
573+
fix: fixer =>
574+
makeFixes({
583575
options: {
584576
...options,
585577
customGroups: [],
@@ -589,7 +581,6 @@ export default createEslintRule<Options<string[]>, MESSAGE_ID>({
589581
sourceCode,
590582
fixer,
591583
}),
592-
],
593584
data: {
594585
rightGroup: right.group,
595586
leftGroup: left.group,

‎rules/sort-jsx-props.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import { getSourceCode } from '../utils/get-source-code'
2424
import { rangeToDiff } from '../utils/range-to-diff'
2525
import { getSettings } from '../utils/get-settings'
2626
import { isSortable } from '../utils/is-sortable'
27-
import { useGroups } from '../utils/use-groups'
2827
import { makeFixes } from '../utils/make-fixes'
28+
import { useGroups } from '../utils/use-groups'
2929
import { pairwise } from '../utils/pairwise'
3030
import { complete } from '../utils/complete'
3131
import { matches } from '../utils/matches'

‎rules/sort-maps.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ import { toSingleLine } from '../utils/to-single-line'
2525
import { rangeToDiff } from '../utils/range-to-diff'
2626
import { getSettings } from '../utils/get-settings'
2727
import { isSortable } from '../utils/is-sortable'
28-
import { sortNodes } from '../utils/sort-nodes'
2928
import { makeFixes } from '../utils/make-fixes'
29+
import { sortNodes } from '../utils/sort-nodes'
3030
import { complete } from '../utils/complete'
3131
import { pairwise } from '../utils/pairwise'
3232

‎rules/sort-modules.ts

+9-18
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ import { hasPartitionComment } from '../utils/has-partition-comment'
4444
import { createNodeIndexMap } from '../utils/create-node-index-map'
4545
import { sortNodesByGroups } from '../utils/sort-nodes-by-groups'
4646
import { getNewlinesErrors } from '../utils/get-newlines-errors'
47-
import { makeNewlinesFixes } from '../utils/make-newlines-fixes'
4847
import { getCommentsBefore } from '../utils/get-comments-before'
4948
import { getNodeDecorators } from '../utils/get-node-decorators'
5049
import { createEslintRule } from '../utils/create-eslint-rule'
@@ -56,8 +55,8 @@ import { toSingleLine } from '../utils/to-single-line'
5655
import { rangeToDiff } from '../utils/range-to-diff'
5756
import { getSettings } from '../utils/get-settings'
5857
import { isSortable } from '../utils/is-sortable'
59-
import { useGroups } from '../utils/use-groups'
6058
import { makeFixes } from '../utils/make-fixes'
59+
import { useGroups } from '../utils/use-groups'
6160
import { complete } from '../utils/complete'
6261
import { pairwise } from '../utils/pairwise'
6362

@@ -442,29 +441,21 @@ let analyzeModule = ({
442441

443442
for (let messageId of messageIds) {
444443
context.report({
445-
fix: (fixer: TSESLint.RuleFixer) => [
446-
...makeFixes({
447-
sortedNodes: sortedNodesExcludingEslintDisabled,
448-
sourceCode,
449-
options,
450-
fixer,
451-
nodes,
452-
}),
453-
...makeNewlinesFixes({
454-
sortedNodes: sortedNodesExcludingEslintDisabled,
455-
sourceCode,
456-
options,
457-
fixer,
458-
nodes,
459-
}),
460-
],
461444
data: {
462445
nodeDependentOnRight: firstUnorderedNodeDependentOnRight?.name,
463446
right: toSingleLine(right.name),
464447
left: toSingleLine(left.name),
465448
rightGroup: right.group,
466449
leftGroup: left.group,
467450
},
451+
fix: (fixer: TSESLint.RuleFixer) =>
452+
makeFixes({
453+
sortedNodes: sortedNodesExcludingEslintDisabled,
454+
sourceCode,
455+
options,
456+
fixer,
457+
nodes,
458+
}),
468459
node: right.node,
469460
messageId,
470461
})

‎rules/sort-named-exports.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import { getSourceCode } from '../utils/get-source-code'
2424
import { rangeToDiff } from '../utils/range-to-diff'
2525
import { getSettings } from '../utils/get-settings'
2626
import { isSortable } from '../utils/is-sortable'
27-
import { sortNodes } from '../utils/sort-nodes'
2827
import { makeFixes } from '../utils/make-fixes'
28+
import { sortNodes } from '../utils/sort-nodes'
2929
import { complete } from '../utils/complete'
3030
import { pairwise } from '../utils/pairwise'
3131

‎rules/sort-named-imports.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ import { getSourceCode } from '../utils/get-source-code'
2424
import { rangeToDiff } from '../utils/range-to-diff'
2525
import { getSettings } from '../utils/get-settings'
2626
import { isSortable } from '../utils/is-sortable'
27-
import { sortNodes } from '../utils/sort-nodes'
2827
import { makeFixes } from '../utils/make-fixes'
28+
import { sortNodes } from '../utils/sort-nodes'
2929
import { complete } from '../utils/complete'
3030
import { pairwise } from '../utils/pairwise'
3131

‎rules/sort-object-types.ts

+2-11
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ import { isNodeFunctionType } from '../utils/is-node-function-type'
4141
import { createNodeIndexMap } from '../utils/create-node-index-map'
4242
import { sortNodesByGroups } from '../utils/sort-nodes-by-groups'
4343
import { getCommentsBefore } from '../utils/get-comments-before'
44-
import { makeNewlinesFixes } from '../utils/make-newlines-fixes'
4544
import { getNewlinesErrors } from '../utils/get-newlines-errors'
4645
import { createEslintRule } from '../utils/create-eslint-rule'
4746
import { getLinesBetween } from '../utils/get-lines-between'
@@ -447,22 +446,14 @@ export let sortObjectTypeElements = <MessageIds extends string>({
447446

448447
for (let messageId of messageIds) {
449448
context.report({
450-
fix: fixer => [
451-
...makeFixes({
449+
fix: fixer =>
450+
makeFixes({
452451
sortedNodes: sortedNodesExcludingEslintDisabled,
453452
sourceCode,
454453
options,
455454
fixer,
456455
nodes,
457456
}),
458-
...makeNewlinesFixes({
459-
sortedNodes: sortedNodesExcludingEslintDisabled,
460-
sourceCode,
461-
options,
462-
fixer,
463-
nodes,
464-
}),
465-
],
466457
data: {
467458
right: toSingleLine(right.name),
468459
left: toSingleLine(left.name),

‎rules/sort-objects.ts

+9-18
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import { singleCustomGroupJsonSchema } from './sort-objects/types'
3939
import { sortNodesByGroups } from '../utils/sort-nodes-by-groups'
4040
import { allModifiers, allSelectors } from './sort-objects/types'
4141
import { getCommentsBefore } from '../utils/get-comments-before'
42-
import { makeNewlinesFixes } from '../utils/make-newlines-fixes'
4342
import { getNewlinesErrors } from '../utils/get-newlines-errors'
4443
import { createEslintRule } from '../utils/create-eslint-rule'
4544
import { getLinesBetween } from '../utils/get-lines-between'
@@ -48,8 +47,8 @@ import { getSourceCode } from '../utils/get-source-code'
4847
import { rangeToDiff } from '../utils/range-to-diff'
4948
import { getSettings } from '../utils/get-settings'
5049
import { isSortable } from '../utils/is-sortable'
51-
import { useGroups } from '../utils/use-groups'
5250
import { makeFixes } from '../utils/make-fixes'
51+
import { useGroups } from '../utils/use-groups'
5352
import { sortNodes } from '../utils/sort-nodes'
5453
import { complete } from '../utils/complete'
5554
import { pairwise } from '../utils/pairwise'
@@ -502,29 +501,21 @@ export default createEslintRule<Options, MESSAGE_ID>({
502501

503502
for (let messageId of messageIds) {
504503
context.report({
505-
fix: fixer => [
506-
...makeFixes({
507-
sortedNodes: sortedNodesExcludingEslintDisabled,
508-
sourceCode,
509-
options,
510-
fixer,
511-
nodes,
512-
}),
513-
...makeNewlinesFixes({
514-
sortedNodes: sortedNodesExcludingEslintDisabled,
515-
sourceCode,
516-
options,
517-
fixer,
518-
nodes,
519-
}),
520-
],
521504
data: {
522505
nodeDependentOnRight: firstUnorderedNodeDependentOnRight?.name,
523506
rightGroup: right.group,
524507
leftGroup: left.group,
525508
right: right.name,
526509
left: left.name,
527510
},
511+
fix: fixer =>
512+
makeFixes({
513+
sortedNodes: sortedNodesExcludingEslintDisabled,
514+
sourceCode,
515+
options,
516+
fixer,
517+
nodes,
518+
}),
528519
node: right.node,
529520
messageId,
530521
})

‎rules/sort-switch-case.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import {
1111
localesJsonSchema,
1212
orderJsonSchema,
1313
} from '../utils/common-json-schemas'
14+
import { makeSingleNodeCommentAfterFixes } from '../utils/make-single-node-comment-after-fixes'
1415
import { validateCustomSortConfiguration } from '../utils/validate-custom-sort-configuration'
15-
import { makeCommentAfterFixes } from '../utils/make-comment-after-fixes'
1616
import { createNodeIndexMap } from '../utils/create-node-index-map'
1717
import { createEslintRule } from '../utils/create-eslint-rule'
1818
import { getSourceCode } from '../utils/get-source-code'
@@ -182,13 +182,13 @@ export default createEslintRule<Options, MESSAGE_ID>({
182182
lastCaseRange,
183183
sourceCode.getText(defaultCase.node),
184184
),
185-
...makeCommentAfterFixes({
185+
...makeSingleNodeCommentAfterFixes({
186186
sortedNode: punctuatorAfterLastCase,
187187
node: defaultCase.node,
188188
sourceCode,
189189
fixer,
190190
}),
191-
...makeCommentAfterFixes({
191+
...makeSingleNodeCommentAfterFixes({
192192
node: punctuatorAfterLastCase,
193193
sortedNode: defaultCase.node,
194194
sourceCode,

0 commit comments

Comments
 (0)
Please sign in to comment.