@jupyter-lsp/jupyterlab-lsp
Version:
Language Server Protocol integration for JupyterLab
45 lines (44 loc) • 2.31 kB
TypeScript
import { SourceChange } from '@jupyter/ydoc';
import { ILSPCompletionThemeManager } from '@jupyter-lsp/completion-theme';
import { CodeEditor } from '@jupyterlab/codeeditor';
import { ICompletionProvider, CompletionHandler, ICompletionContext, Completer } from '@jupyterlab/completer';
import { ILSPDocumentConnectionManager } from '@jupyterlab/lsp';
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
import type * as lsProtocol from 'vscode-languageserver-protocol';
import { CodeCompletion as LSPCompletionSettings } from '../../_completion';
import { FeatureSettings } from '../../feature';
import { CompletionTriggerKind } from '../../lsp';
import { ILSPLogConsole } from '../../tokens';
import { BrowserConsole } from '../../virtual/console';
import { CompletionItem } from './item';
import { LSPCompletionRenderer } from './renderer';
interface IOptions {
settings: FeatureSettings<LSPCompletionSettings>;
renderMimeRegistry: IRenderMimeRegistry;
iconsThemeManager: ILSPCompletionThemeManager;
connectionManager: ILSPDocumentConnectionManager;
}
export declare class CompletionProvider implements ICompletionProvider<CompletionItem> {
protected options: IOptions;
readonly identifier = "lsp";
readonly label = "LSP";
readonly rank = 1000;
protected console: BrowserConsole;
constructor(options: IOptions);
renderer: LSPCompletionRenderer;
modelFactory: (context: ICompletionContext) => Promise<Completer.IModel>;
/**
* Resolve (fetch) details such as documentation.
*/
resolve(completionItem: CompletionItem): Promise<any>;
shouldShowContinuousHint(completerIsVisible: boolean, changed: SourceChange, context?: ICompletionContext): boolean;
fetch(request: CompletionHandler.IRequest, context: ICompletionContext, trigger?: CompletionTriggerKind): Promise<CompletionHandler.ICompletionItemsReply<CompletionItem>>;
isApplicable(context: ICompletionContext): Promise<boolean>;
}
export declare function transformLSPCompletions<T>(token: CodeEditor.IToken, positionInToken: number, lspCompletionItems: lsProtocol.CompletionItem[], createCompletionItem: (kind: string, match: lsProtocol.CompletionItem) => T, console: ILSPLogConsole): {
start: number;
end: number;
items: T[];
source: string;
};
export {};