coc.nvim
Version:
LSP based intellisense engine for neovim & vim8.
69 lines (68 loc) • 2.31 kB
TypeScript
import { Neovim, Window } from '@chemzqm/neovim';
import { Event } from 'vscode-languageserver-protocol';
import { ListHighlights, ListItem } from '../types';
import ListConfiguration from './configuration';
export declare type MouseEvent = 'mouseDown' | 'mouseDrag' | 'mouseUp' | 'doubleClick';
export interface MousePosition {
winid: number;
lnum: number;
col: number;
current: boolean;
}
export default class ListUI {
private nvim;
private config;
window: Window;
private height;
private newTab;
private _bufnr;
private currIndex;
private highlights;
private items;
private disposables;
private signOffset;
private selected;
private mouseDown;
private creating;
private _onDidChangeLine;
private _onDidOpen;
private _onDidClose;
private _onDidChange;
private _onDidLineChange;
private _onDoubleClick;
readonly onDidChangeLine: Event<number>;
readonly onDidLineChange: Event<number>;
readonly onDidOpen: Event<number>;
readonly onDidClose: Event<number>;
readonly onDidChange: Event<void>;
readonly onDidDoubleClick: Event<void>;
constructor(nvim: Neovim, config: ListConfiguration);
index: number;
getItem(delta: number): ListItem;
readonly item: Promise<ListItem>;
echoMessage(item: ListItem): Promise<void>;
updateItem(item: ListItem, index: number): Promise<void>;
getItems(): Promise<ListItem[]>;
onMouse(event: MouseEvent): Promise<void>;
reset(): void;
hide(): void;
resume(name: string, position: string): Promise<void>;
toggleSelection(): Promise<void>;
selectLines(start: number, end: number): Promise<void>;
selectAll(): Promise<void>;
clearSelection(): void;
readonly shown: boolean;
readonly bufnr: number;
readonly ready: Promise<void>;
drawItems(items: ListItem[], name: string, position?: string, reload?: boolean): Promise<void>;
appendItems(items: ListItem[]): Promise<void>;
private setLines;
restoreWindow(): void;
dispose(): void;
readonly length: number;
readonly selectedItems: ListItem[];
private doHighlight;
setCursor(lnum: number, col: number): void;
addHighlights(highlights: ListHighlights[], append?: boolean): void;
private getSelectedRange;
}