prong-editor
Version:
Prong (PRojectional jsON Gui) is an editor framework for creating bespoke in-browser editors for JSON-based domain-specific languages (such as [Vega](https://vega.github.io/vega/), [Vega-Lite](https://vega.github.io/vega-lite/), [Tracery](https://tracery.
44 lines (43 loc) • 1.14 kB
TypeScript
import { SyntaxNode } from "@lezer/common";
declare type NodeType = SyntaxNode["type"]["name"];
declare type functionQueryType = (value: string, nodeType: NodeType, keyPath: (string | number)[], cursorPosition: number, nodePos: {
start: number;
end: number;
}) => boolean;
export declare type ProjectionQuery = {
type: "function";
query: functionQueryType;
} | {
type: "index";
query: (number | string)[];
} | {
type: "multi-index";
query: (number | string)[][];
} | {
type: "regex";
query: RegExp;
} | {
type: "value";
query: string[];
} | {
type: "schemaMatch";
query: string[];
} | {
type: "nodeType";
query: NodeType[];
};
export declare function keyPathMatchesQuery(query: (string | number)[], keyPath: (string | number)[]): boolean;
export declare function runProjectionQuery(props: {
query: ProjectionQuery;
keyPath: (string | number)[];
nodeValue: string;
typings: any[];
nodeType: SyntaxNode["type"]["name"];
projId: number;
cursorPosition: number;
nodePos: {
start: number;
end: number;
};
}): boolean;
export {};