UNPKG

coc.nvim

Version:

LSP based intellisense engine for neovim & vim8.

152 lines (151 loc) 4.51 kB
import { Range } from 'vscode-languageserver-protocol'; export declare const enum TokenType { Dollar = 0, Colon = 1, Comma = 2, CurlyOpen = 3, CurlyClose = 4, Backslash = 5, Forwardslash = 6, Pipe = 7, Int = 8, VariableName = 9, Format = 10, Plus = 11, Dash = 12, QuestionMark = 13, EOF = 14 } export interface Token { type: TokenType; pos: number; len: number; } export declare class Scanner { private static _table; static isDigitCharacter(ch: number): boolean; static isVariableCharacter(ch: number): boolean; value: string; pos: number; constructor(); text(value: string): void; tokenText(token: Token): string; next(): Token; } export declare abstract class Marker { readonly _markerBrand: any; parent: Marker; protected _children: Marker[]; appendChild(child: Marker): this; setOnlyChild(child: Marker): void; replace(child: Marker, others: Marker[]): void; readonly children: Marker[]; readonly snippet: TextmateSnippet | undefined; toString(): string; abstract toTextmateString(): string; len(): number; readonly next: Marker | null; abstract clone(): Marker; } export declare class Text extends Marker { value: string; static escape(value: string): string; constructor(value: string); toString(): string; toTextmateString(): string; len(): number; clone(): Text; } export declare abstract class TransformableMarker extends Marker { transform: Transform; } export declare class Placeholder extends TransformableMarker { index: number; static compareByIndex(a: Placeholder, b: Placeholder): number; constructor(index: number); readonly isFinalTabstop: boolean; readonly choice: Choice | undefined; toTextmateString(): string; clone(): Placeholder; } export declare class Choice extends Marker { readonly options: Text[]; appendChild(marker: Marker): this; toString(): string; toTextmateString(): string; len(): number; clone(): Choice; } export declare class Transform extends Marker { regexp: RegExp; resolve(value: string): string; private _replace; toString(): string; toTextmateString(): string; clone(): Transform; } export declare class FormatString extends Marker { readonly index: number; readonly shorthandName?: string; readonly ifValue?: string; readonly elseValue?: string; constructor(index: number, shorthandName?: string, ifValue?: string, elseValue?: string); resolve(value: string): string; private _toPascalCase; toTextmateString(): string; clone(): FormatString; } export declare class Variable extends TransformableMarker { name: string; constructor(name: string); resolve(resolver: VariableResolver): boolean; toTextmateString(): string; clone(): Variable; } export interface VariableResolver { resolve(variable: Variable): string | undefined; } export declare class TextmateSnippet extends Marker { private _placeholders?; readonly placeholderInfo: { all: Placeholder[]; last?: Placeholder; }; readonly placeholders: Placeholder[]; readonly maxIndexNumber: number; readonly minIndexNumber: number; insertSnippet(snippet: string, id: number, range: Range): number; updatePlaceholder(id: number, val: string): void; /** * newText after update with value */ getPlaceholderText(id: number, value: string): string; offset(marker: Marker): number; fullLen(marker: Marker): number; enclosingPlaceholders(placeholder: Placeholder): Placeholder[]; resolveVariables(resolver: VariableResolver): this; appendChild(child: Marker): this; replace(child: Marker, others: Marker[]): void; toTextmateString(): string; clone(): TextmateSnippet; walk(visitor: (marker: Marker) => boolean): void; } export declare class SnippetParser { static escape(value: string): string; private _scanner; private _token; text(value: string): string; parse(value: string, insertFinalTabstop?: boolean): TextmateSnippet; private _accept; private _backTo; private _until; private _parse; private _parseEscaped; private _parseTabstopOrVariableName; private _parseComplexPlaceholder; private _parseChoiceElement; private _parseComplexVariable; private _parseTransform; private _parseFormatString; private _parseAnything; }