routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
Generated
Vendored
+52
@@ -0,0 +1,52 @@
|
||||
import { makeSingleNodeCommentAfterFixes } from './make-single-node-comment-after-fixes.js'
|
||||
/**
|
||||
* Generates fixes for handling inline trailing comments during sorting.
|
||||
*
|
||||
* Ensures that inline comments (comments on the same line after code) are
|
||||
* properly moved when their associated nodes are reordered during sorting. This
|
||||
* maintains the relationship between code and its inline comments.
|
||||
*
|
||||
* The function compares the original node positions with the sorted positions
|
||||
* and creates fixes only for nodes that have actually moved. For each moved
|
||||
* node, it delegates to `makeSingleNodeCommentAfterFixes` to handle the
|
||||
* specific comment adjustments.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* // Original code:
|
||||
* const b = 2 // second value
|
||||
* const a = 1 // first value
|
||||
*
|
||||
* // After sorting (with comment fixes):
|
||||
* const a = 1 // first value
|
||||
* const b = 2 // second value
|
||||
*
|
||||
* // Comments stay with their associated nodes
|
||||
* ```
|
||||
*
|
||||
* @param params - Parameters for generating fixes.
|
||||
* @returns Array of ESLint fix operations to apply.
|
||||
*/
|
||||
function makeCommentAfterFixes({ sortedNodes, sourceCode, fixer, nodes }) {
|
||||
let fixes = []
|
||||
for (let max = nodes.length, i = 0; i < max; i++) {
|
||||
let sortingNode = nodes.at(i)
|
||||
let sortedSortingNode = sortedNodes.at(i)
|
||||
let { node } = sortingNode
|
||||
let { node: sortedNode } = sortedSortingNode
|
||||
if (node === sortedNode) {
|
||||
continue
|
||||
}
|
||||
fixes.push(
|
||||
...makeSingleNodeCommentAfterFixes({
|
||||
sortedNode,
|
||||
sourceCode,
|
||||
fixer,
|
||||
node,
|
||||
}),
|
||||
)
|
||||
}
|
||||
return fixes
|
||||
}
|
||||
export { makeCommentAfterFixes }
|
||||
Reference in New Issue
Block a user