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.46 kB
TypeScript
import { SyntaxNode } from "@lezer/common";
import { UpdateDispatch } from "./popover-menu/PopoverState";
export declare type MenuEvent = addElementAsSiblingInArrayEvent | addObjectKeyEvent | nullEvent | removeElementFromArrayEvent | removeObjectKeyEvent | simpleSwapEvent | increaseItemIdxEvent | decreaseItemIdxEvent;
declare type baseEvent = {
nodeId: string;
};
interface nullEvent extends baseEvent {
type: "nullEvent";
}
interface simpleSwapEvent extends baseEvent {
type: "simpleSwap";
payload: string;
}
interface addObjectKeyEvent extends baseEvent {
type: "addObjectKey";
payload: {
key: string;
value: string;
};
}
interface addElementAsSiblingInArrayEvent extends baseEvent {
type: "addElementAsSiblingInArray";
payload: string;
}
interface removeObjectKeyEvent extends baseEvent {
type: "removeObjectKey";
}
interface removeElementFromArrayEvent extends baseEvent {
type: "removeElementFromArray";
}
interface increaseItemIdxEvent extends baseEvent {
type: "increaseItemIdx";
}
interface decreaseItemIdxEvent extends baseEvent {
type: "decreaseItemIdx";
}
declare type ModifyCmd<A extends MenuEvent> = (value: A, syntaxNode: SyntaxNode, currentText: string, cursorPos: number) => UpdateDispatch | undefined;
export declare const boundCheck: (node: SyntaxNode) => {
isFirst: boolean;
isLast: boolean;
};
export declare const modifyCodeByCommand: ModifyCmd<any>;
export {};