coc.nvim
Version:
LSP based intellisense engine for neovim & vim8.
42 lines (41 loc) • 2.01 kB
TypeScript
import { Neovim } from '@chemzqm/neovim';
import { CancellationToken, Disposable, Location } from 'vscode-languageserver-protocol';
import { ProviderResult } from '../provider';
import { IList, ListAction, ListContext, ListItem, ListTask, LocationWithLine, WorkspaceConfiguration, ListArgument, PreiewOptions } from '../types';
import ListConfiguration from './configuration';
interface ActionOptions {
persist?: boolean;
reload?: boolean;
parallel?: boolean;
}
export default abstract class BasicList implements IList, Disposable {
protected nvim: Neovim;
name: string;
defaultAction: string;
readonly actions: ListAction[];
options: ListArgument[];
protected disposables: Disposable[];
private optionMap;
config: ListConfiguration;
constructor(nvim: Neovim);
protected readonly hlGroup: string;
protected readonly previewHeight: number;
protected readonly splitRight: boolean;
parseArguments(args: string[]): {
[key: string]: string | boolean;
};
protected getConfig(): WorkspaceConfiguration;
protected addAction(name: string, fn: (item: ListItem, context: ListContext) => ProviderResult<void>, options?: ActionOptions): void;
protected addMultipleAction(name: string, fn: (item: ListItem[], context: ListContext) => ProviderResult<void>, options?: ActionOptions): void;
addLocationActions(): void;
convertLocation(location: Location | LocationWithLine | string): Promise<Location>;
jumpTo(location: Location | LocationWithLine | string, command?: string): Promise<void>;
private createAction;
protected previewLocation(location: Location, context: ListContext): Promise<void>;
preview(options: PreiewOptions, context: ListContext): Promise<void>;
protected getPreviewCommand(context: ListContext): string;
abstract loadItems(context: ListContext, token?: CancellationToken): Promise<ListItem[] | ListTask | null | undefined>;
doHighlight(): void;
dispose(): void;
}
export {};