@vectara/vectara-ui
Version:
Vectara's design system, codified as a React and Sass component library
24 lines (23 loc) • 1.01 kB
TypeScript
/**
* This exposes a utility that wraps an ANTLR-generated lexer in a TokensProvider class and returns that class.
* The underlying logic is mostly lifted from https://tomassetti.me/writing-a-browser-based-editor-using-monaco-and-antlr.
*/
import * as monaco from "monaco-editor/esm/vs/editor/editor.api";
import ILineTokens = monaco.languages.ILineTokens;
import { Token } from "antlr4ng";
type SyntaxChecker = {
Parser: any;
onError: (offendingSymbol: Token | null, line: number, column: number, msg: string) => void;
};
/**
* Generates a TokensProvider for use with the CodeEditor component.
* Provide the optional syntaxChecker config to enable client-side syntax checking.
*/
export declare const generateTokensProvider: (Lexer: any, syntaxChecker?: SyntaxChecker) => {
new (): {
getInitialState(): monaco.languages.IState;
tokenize(line: string): monaco.languages.ILineTokens;
tokensForLine(input: string): monaco.languages.ILineTokens;
};
};
export {};