routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+84
@@ -0,0 +1,84 @@
|
||||
import { TSESTree } from '@typescript-eslint/types'
|
||||
import { TSESLint } from '@typescript-eslint/utils'
|
||||
import { CommonPartitionOptions } from '../types/common-partition-options.js'
|
||||
/**
|
||||
* Parameters for determining the complete range of a node.
|
||||
*
|
||||
* Configures how to calculate the node's range including associated comments
|
||||
* and parentheses.
|
||||
*/
|
||||
interface GetNodeRangeParameters {
|
||||
/**
|
||||
* Optional configuration for comment handling.
|
||||
*/
|
||||
options?: Pick<CommonPartitionOptions, 'partitionByComment'>
|
||||
/**
|
||||
* Whether to exclude the highest-level block comment from the range. Useful
|
||||
* for preserving file-level documentation comments in their original
|
||||
* position.
|
||||
*/
|
||||
ignoreHighestBlockComment?: boolean
|
||||
/**
|
||||
* ESLint source code object for accessing comments and tokens.
|
||||
*/
|
||||
sourceCode: TSESLint.SourceCode
|
||||
/**
|
||||
* AST node to get the range for.
|
||||
*/
|
||||
node: TSESTree.Node
|
||||
}
|
||||
/**
|
||||
* Determines the complete range of a node including its associated comments.
|
||||
*
|
||||
* Calculates the full range that should be considered when moving or analyzing
|
||||
* a node. This includes:
|
||||
*
|
||||
* - The node itself
|
||||
* - Parentheses surrounding the node (if any)
|
||||
* - Preceding comments that "belong" to the node.
|
||||
*
|
||||
* The function intelligently determines which comments should be included by:
|
||||
*
|
||||
* - Including comments directly above the node (no empty lines between)
|
||||
* - Stopping at partition comments (used to separate sections)
|
||||
* - Stopping at ESLint disable/enable comments
|
||||
* - Optionally excluding the highest block comment (e.g., file headers).
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* // Source code:
|
||||
* // This comment belongs to the function
|
||||
* // So does this one
|
||||
* function foo() {}
|
||||
*
|
||||
* const range = getNodeRange({ node: functionNode, sourceCode })
|
||||
* // Returns range including both comments
|
||||
* ```
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* // Source code:
|
||||
* /* File header comment *\/
|
||||
* // Function comment
|
||||
* function bar() { }
|
||||
*
|
||||
* const range = getNodeRange({
|
||||
* node: functionNode,
|
||||
* sourceCode,
|
||||
* ignoreHighestBlockComment: true
|
||||
* });
|
||||
* // Returns range including line comment but not block comment
|
||||
* ```
|
||||
*
|
||||
* @param params - Parameters for range calculation.
|
||||
* @returns Tuple of [start, end] positions including relevant comments.
|
||||
*/
|
||||
export declare function getNodeRange({
|
||||
ignoreHighestBlockComment,
|
||||
sourceCode,
|
||||
options,
|
||||
node,
|
||||
}: GetNodeRangeParameters): TSESTree.Range
|
||||
export {}
|
||||
Reference in New Issue
Block a user