UNPKG

@jupyter-lsp/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

45 lines (44 loc) 2.31 kB
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 {};