import { CodeEditor } from '@jupyterlab/codeeditor'; import { CompletionConnector, CompletionHandler, ContextConnector } from '@jupyterlab/completer'; import { Session } from '@jupyterlab/services'; import { LabIcon } from '@jupyterlab/ui-components'; import { ILSPCompletionThemeManager } from '@krassowski/completion-theme/lib/types'; import type * as lsProtocol from 'vscode-languageserver-types'; import { CodeCompletion as LSPCompletionSettings } from '../../_completion'; import { LSPConnection } from '../../connection'; import { FeatureSettings } from '../../feature'; import { ExtendedCompletionTriggerKind } from '../../lsp'; import { IRootPosition, IVirtualPosition } from '../../positioning'; import { ILSPLogConsole } from '../../tokens'; import { VirtualDocument } from '../../virtual/document'; import { IVirtualEditor } from '../../virtual/editor'; import { CompletionLabIntegration } from './completion'; import { ICompletionsSource, IExtendedCompletionItem } from './item'; /** * Completion items reply from a specific source */ export interface ICompletionsReply extends CompletionHandler.ICompletionItemsReply { source: ICompletionsSource | null; items: IExtendedCompletionItem[]; } export declare function transformLSPCompletions(token: CodeEditor.IToken, position_in_token: number, lspCompletionItems: lsProtocol.CompletionItem[], createCompletionItem: (kind: string, match: lsProtocol.CompletionItem) => T, console: ILSPLogConsole): { start: number; end: number; items: T[]; source: { name: string; priority: number; }; }; /** * A LSP connector for completion handlers. */ export declare class LSPConnector implements CompletionHandler.ICompletionItemsConnector { protected options: LSPConnector.IOptions; isDisposed: boolean; private _editor; private _connections; private _context_connector; private _kernel_connector; private _kernel_and_context_connector; private console; responseType: "ICompletionItemsReply"; virtual_editor: IVirtualEditor; trigger_kind: ExtendedCompletionTriggerKind; lab_integration: CompletionLabIntegration; items: CompletionHandler.ICompletionItems; get kernel_completions_first(): boolean; protected get use_lsp_completions(): boolean; protected get use_kernel_completions(): boolean; protected get suppress_continuous_hinting_in(): string[]; protected get suppress_trigger_character_in(): string[]; get should_show_documentation(): boolean; /** * Create a new LSP connector for completion requests. * * @param options - The instantiation options for the LSP connector. */ constructor(options: LSPConnector.IOptions); dispose(): void; protected get _has_kernel(): boolean; protected get _is_kernel_idle(): boolean; protected get _should_wait_for_busy_kernel(): boolean; protected _kernel_language(): Promise; protected get _kernel_timeout(): number; get fallback_connector(): ContextConnector | CompletionConnector; protected transform_from_editor_to_root(position: CodeEditor.IPosition): IRootPosition; /** * Fetch completion requests. * * @param request - The completion request text and details. */ fetch(request: CompletionHandler.IRequest): Promise; get_connection(uri: string): LSPConnection | undefined; fetch_lsp(token: CodeEditor.IToken, typed_character: string, start: IVirtualPosition, end: IVirtualPosition, cursor: IVirtualPosition, document: VirtualDocument, position_in_token: number): Promise; protected icon_for(type: string): LabIcon; private transform_reply; protected merge_replies(replies: ICompletionsReply[], editor: CodeEditor.IEditor): ICompletionsReply; list(query: string | undefined): Promise; remove(id: CompletionHandler.IRequest): Promise; save(id: CompletionHandler.IRequest, value: void): Promise; private suppress_if_needed; } /** * A namespace for LSP connector statics. */ export declare namespace LSPConnector { /** * The instantiation options for cell completion handlers. */ interface IOptions { /** * The editor used by the LSP connector. */ editor: CodeEditor.IEditor; virtual_editor: IVirtualEditor; /** * The connections to be used by the LSP connector. */ connections: Map; settings: FeatureSettings; labIntegration: CompletionLabIntegration; themeManager: ILSPCompletionThemeManager; session?: Session.ISessionConnection | null; console: ILSPLogConsole; } }