/** * Navigation + hover brains: hover tooltips, go-to-definition, find- * references, and rename for sequence names. * * Pure and dependency-free, position-based. What's under the caret is * resolved by `tokenAt` via text scanning (no parse — robust on half-typed * documents), then each feature acts on that token: * - hover → a short doc for the tag / attribute / sequence reference * - definition → the `` declaration for a reference * - references → every place that names sequence X (decl + parent + ${{}}) * - rename → replace exactly the base-name span at each of those places */ import type { Position, Range } from './types.js'; export type Token = { readonly kind: 'tag'; readonly name: string; readonly range: Range; } | { readonly kind: 'attr'; readonly name: string; readonly range: Range; } | { readonly kind: 'ref'; readonly name: string; readonly base: string; readonly range: Range; }; export interface Hover { readonly contents: string; readonly range: Range; } export interface TextEdit { readonly range: Range; readonly newText: string; } export declare function tokenAt(text: string, position: Position): Token | null; export declare function findSequenceDeclaration(text: string, name: string): Range | null; /** Every span that names sequence `base` (declaration, parent=, `${{…}}`). */ export declare function findReferences(text: string, base: string): Range[]; export declare function computeHover(text: string, position: Position): Hover | null; export declare function computeDefinition(text: string, position: Position): Range | null; export declare function computeReferences(text: string, position: Position): Range[]; export declare function computeRename(text: string, position: Position, newName: string): TextEdit[]; //# sourceMappingURL=navigation.d.ts.map