UNPKG

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
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 {};