prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
58 lines (57 loc) • 2.15 kB
TypeScript
/**
* @typedef TokenStreamItem
* @property {string} type
* @property {string | Array<string|TokenStreamItem>} content
*
* @typedef {Array<string|TokenStreamItem>} TokenStream
*
* @typedef {string | [string, string | SimplifiedTokenStream]} SimplifiedToken
* @typedef {Array<string | [string, string | Array]>} SimplifiedTokenStream
*
* @typedef {Array<PrettyTokenStreamItem>} PrettyTokenStream
* @typedef {string | LineBreakItem | GlueItem | [string, string | Array]} PrettyTokenStreamItem
*/
/**
* Simplifies the token stream to ease the matching with the expected token stream.
*
* * Strings are kept as-is
* * In arrays each value is transformed individually
* * Values that are empty (empty arrays or strings only containing whitespace)
* @param {TokenStream} tokenStream
* @returns {SimplifiedTokenStream}
*/
export function simplify(tokenStream: TokenStream): SimplifiedTokenStream;
/**
* @param {TokenStream} tokenStream
* @param {string} [indentation]
* @returns {string}
*/
export function prettyprint(tokenStream: TokenStream, indentation?: string): string;
export type TokenStreamItem = {
type: string;
content: string | Array<string | TokenStreamItem>;
};
export type TokenStream = Array<string | TokenStreamItem>;
export type SimplifiedToken = string | [string, string | SimplifiedTokenStream];
export type SimplifiedTokenStream = Array<string | [string, string | any[]]>;
export type PrettyTokenStream = Array<PrettyTokenStreamItem>;
export type PrettyTokenStreamItem = string | LineBreakItem | GlueItem | [string, string | any[]];
/**
* This item indicates that one or multiple line breaks are present between the preceding and following items in the
* source token stream.
*
* Only if an item is enabled will it appear in the pretty-printed token stream.
*/
declare class LineBreakItem {
/** @param {number} sourceCount */
constructor(sourceCount: number);
sourceCount: number;
enabled: boolean;
}
/**
* This item indicates the the preceding and following items are to be printed on the same line in the pretty-printed
* token stream.
*/
declare class GlueItem {
}
export {};