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.
36 lines (35 loc) • 1.61 kB
TypeScript
import { StateField, EditorState } from "@codemirror/state";
import { EditorView } from "@codemirror/view";
import { SyntaxNode } from "@lezer/common";
import { MenuRow } from "../compute-menu-contents";
export declare type UpdateDispatch = {
from: number;
to: number;
value: string;
};
export declare type SelectionRoute = [number, number];
export interface PopoverMenuState {
menuState: popOverSMState;
targetNode: SyntaxNode | null;
highlightNode: SyntaxNode | null;
targetedTypings: [];
tooltip: any;
selectedRouting: [number, number];
menuContents: MenuRow[];
hasProjectionContent: boolean;
}
export declare const popoverMenuState: PopoverMenuState;
export declare type popoverSMEvent = "closeTooltip" | "firstUse" | "openTooltip" | "stopUsingTooltip" | "switchToMonocle" | "switchToTooltip" | "switchToDocked" | "useTooltip";
export declare type popOverSMState = "monocleOpen" | "tooltipOpen" | "dockOpen" | "tooltipClosed" | "tooltipInUse" | "preFirstUse";
export declare const visibleStates: Set<popOverSMState>;
export declare function buildProjectionsForMenu(props: {
fullCode: string;
node: SyntaxNode | null;
state: EditorState;
view: EditorView;
currentCodeSlice: string;
}): MenuRow[];
export declare function maybeFilterToFullProjection(menuRows: MenuRow[]): MenuRow[];
export declare const popOverState: StateField<PopoverMenuState>;
export declare const popoverEffectDispatch: import("@codemirror/state").StateEffectType<popoverSMEvent>;
export declare const setRouting: import("@codemirror/state").StateEffectType<[number, number]>;