| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /**
- * Local type override for web-tree-sitter.
- *
- * The upstream types declare children/namedChildren as (Node | null)[],
- * but in practice they never contain null entries. This override uses
- * non-nullable arrays to match native tree-sitter's API and avoid
- * pervasive null-check changes across the extraction pipeline.
- *
- * This file takes precedence over node_modules/web-tree-sitter/web-tree-sitter.d.ts
- * because TypeScript resolves local declarations first.
- */
- declare module 'web-tree-sitter' {
- export interface Point {
- row: number;
- column: number;
- }
- export interface Range {
- startPosition: Point;
- endPosition: Point;
- startIndex: number;
- endIndex: number;
- }
- export interface Edit {
- startPosition: Point;
- oldEndPosition: Point;
- newEndPosition: Point;
- startIndex: number;
- oldEndIndex: number;
- newEndIndex: number;
- }
- export type ParseCallback = (index: number, position: Point) => string | undefined;
- export interface ParseOptions {
- includedRanges?: Range[];
- progressCallback?: (state: { currentOffset: number; hasError: boolean }) => void;
- }
- export interface EmscriptenModule {
- [key: string]: any;
- }
- export class Parser {
- language: Language | null;
- static init(moduleOptions?: EmscriptenModule): Promise<void>;
- constructor();
- delete(): void;
- setLanguage(language: Language | null): this;
- parse(callback: string | ParseCallback, oldTree?: Tree | null, options?: ParseOptions): Tree | null;
- reset(): void;
- getIncludedRanges(): Range[];
- getTimeoutMicros(): number;
- setTimeoutMicros(timeout: number): void;
- setLogger(callback: ((message: string, isLex: boolean) => void) | boolean | null): this;
- getLogger(): ((message: string, isLex: boolean) => void) | null;
- }
- export class Language {
- types: string[];
- fields: (string | null)[];
- get name(): string | null;
- get version(): number;
- get abiVersion(): number;
- get fieldCount(): number;
- get stateCount(): number;
- fieldIdForName(fieldName: string): number | null;
- fieldNameForId(fieldId: number): string | null;
- idForNodeType(type: string, named: boolean): number | null;
- get nodeTypeCount(): number;
- nodeTypeForId(typeId: number): string | null;
- nodeTypeIsNamed(typeId: number): boolean;
- nodeTypeIsVisible(typeId: number): boolean;
- get supertypes(): number[];
- subtypes(supertype: number): number[];
- nextState(stateId: number, typeId: number): number;
- lookaheadIterator(stateId: number): any;
- query(source: string): any;
- static load(input: string | Uint8Array): Promise<Language>;
- }
- export class Tree {
- language: Language;
- copy(): Tree;
- delete(): void;
- get rootNode(): Node;
- rootNodeWithOffset(offsetBytes: number, offsetExtent: Point): Node;
- edit(edit: Edit): void;
- walk(): TreeCursor;
- getChangedRanges(other: Tree): Range[];
- getIncludedRanges(): Range[];
- }
- export class Node {
- id: number;
- startIndex: number;
- startPosition: Point;
- tree: Tree;
- get typeId(): number;
- get grammarId(): number;
- get type(): string;
- get grammarType(): string;
- get isNamed(): boolean;
- get isExtra(): boolean;
- get isError(): boolean;
- get isMissing(): boolean;
- get hasChanges(): boolean;
- get hasError(): boolean;
- get endIndex(): number;
- get endPosition(): Point;
- get text(): string;
- get parseState(): number;
- get nextParseState(): number;
- equals(other: Node): boolean;
- child(index: number): Node | null;
- namedChild(index: number): Node | null;
- childForFieldId(fieldId: number): Node | null;
- childForFieldName(fieldName: string): Node | null;
- fieldNameForChild(index: number): string | null;
- fieldNameForNamedChild(index: number): string | null;
- childrenForFieldName(fieldName: string): Node[];
- childrenForFieldId(fieldId: number): Node[];
- firstChildForIndex(index: number): Node | null;
- firstNamedChildForIndex(index: number): Node | null;
- get childCount(): number;
- get namedChildCount(): number;
- get firstChild(): Node | null;
- get firstNamedChild(): Node | null;
- get lastChild(): Node | null;
- get lastNamedChild(): Node | null;
- // Override: non-nullable arrays (tree-sitter never returns null in these)
- get children(): Node[];
- get namedChildren(): Node[];
- descendantsOfType(types: string | string[], startPosition?: Point, endPosition?: Point): Node[];
- get nextSibling(): Node | null;
- get previousSibling(): Node | null;
- get nextNamedSibling(): Node | null;
- get previousNamedSibling(): Node | null;
- get descendantCount(): number;
- get parent(): Node | null;
- childWithDescendant(descendant: Node): Node | null;
- descendantForIndex(start: number, end?: number): Node | null;
- namedDescendantForIndex(start: number, end?: number): Node | null;
- descendantForPosition(start: Point, end?: Point): Node | null;
- namedDescendantForPosition(start: Point, end?: Point): Node | null;
- walk(): TreeCursor;
- edit(edit: Edit): void;
- toString(): string;
- }
- export class TreeCursor {
- copy(): TreeCursor;
- delete(): void;
- get currentNode(): Node;
- get currentFieldId(): number;
- get currentFieldName(): string | null;
- get currentDepth(): number;
- get currentDescendantIndex(): number;
- get nodeType(): string;
- get nodeTypeId(): number;
- get nodeStateId(): number;
- get nodeId(): number;
- get nodeIsNamed(): boolean;
- get nodeIsMissing(): boolean;
- get nodeText(): string;
- get startPosition(): Point;
- get endPosition(): Point;
- get startIndex(): number;
- get endIndex(): number;
- gotoFirstChild(): boolean;
- gotoLastChild(): boolean;
- gotoParent(): boolean;
- gotoNextSibling(): boolean;
- gotoPreviousSibling(): boolean;
- gotoDescendant(goalDescendantIndex: number): void;
- gotoFirstChildForIndex(goalIndex: number): boolean;
- gotoFirstChildForPosition(goalPosition: Point): boolean;
- reset(node: Node): void;
- resetTo(cursor: TreeCursor): void;
- }
- }
|