cm-tarnation
Version:
An alternative parser for CodeMirror 6
31 lines (30 loc) • 1.19 kB
TypeScript
import { NodeSet, Tree, TreeBuffer } from "@lezer/common";
import type { GrammarState } from "../grammar/state";
import type { ParserAction } from "../types";
export declare class Chunk {
from: number;
to: number;
length: number;
tokens: Int16Array;
size: number;
open: ParserAction | null;
close: ParserAction | null;
state: GrammarState;
tree?: Tree;
constructor(pos: number, state: GrammarState);
offset(offset: number): void;
add(id: number | null, from: number, to: number): void;
pushOpen(...ids: number[]): void;
pushClose(...ids: number[]): void;
tryForTree(nodeSet: NodeSet): Tree | TreeBuffer | null;
/**
* Determines if a grammar's state (and parse position) is compatible
* with reusing this node. This is only a safe determination if it is
* made _after_ the changed range of the document.
*
* @param state - The state to compare against.
* @param pos - The position to compare against.
* @param offset - The edit offset, to correct for chunk position differences.
*/
isReusable(state: GrammarState, pos: number, offset?: number): boolean;
}