@jupyter-lsp/jupyterlab-lsp
Version:
Language Server Protocol integration for JupyterLab
58 lines (57 loc) • 3.06 kB
TypeScript
import { Language } from '@codemirror/language';
import { ChangeSet } from '@codemirror/state';
import { JupyterFrontEndPlugin } from '@jupyterlab/application';
import { IEditorLanguageRegistry } from '@jupyterlab/codemirror';
import { IEditorPosition, IRootPosition, WidgetLSPAdapter } from '@jupyterlab/lsp';
import { IRenderMimeRegistry } from '@jupyterlab/rendermime';
import * as lsProtocol from 'vscode-languageserver-protocol';
import { CodeSignature as LSPSignatureSettings } from '../_signature';
import { EditorTooltipManager } from '../components/free_tooltip';
import { FeatureSettings, Feature } from '../feature';
import { ILogConsoleCore } from '../tokens';
import { BrowserConsole } from '../virtual/console';
interface ISplit {
lead: string;
remainder: string;
}
export declare function extractLead(lines: string[], size: number): ISplit | null;
/**
* Represent signature as a Markdown element.
*/
export declare function signatureToMarkdown(item: lsProtocol.SignatureInformation, language: Language | undefined, codeHighlighter: (source: string, variable: lsProtocol.ParameterInformation, language: Language | undefined) => string, logger: ILogConsoleCore, activeParameterFallback?: number | null, maxLinesBeforeCollapse?: number): string;
export declare function highlightCode(source: string, parameter: lsProtocol.ParameterInformation, language: Language | undefined): string;
export declare class SignatureFeature extends Feature {
readonly id: string;
readonly capabilities: lsProtocol.ClientCapabilities;
tooltip: EditorTooltipManager;
protected signatureCharacter: IRootPosition;
protected _signatureCharacters: string[];
protected console: BrowserConsole;
protected settings: FeatureSettings<LSPSignatureSettings>;
protected languageRegistry: IEditorLanguageRegistry;
constructor(options: SignatureFeature.IOptions);
get _closeCharacters(): string[];
onBlur(event: FocusEvent): void;
onCursorActivity(adapter: WidgetLSPAdapter<any>, newEditorPosition: IEditorPosition): Promise<void>;
protected getMarkupForSignatureHelp(response: lsProtocol.SignatureHelp, language: Language | undefined): lsProtocol.MarkupContent;
/**
* Represent signature as a Markdown element.
*/
protected signatureToMarkdown(item: lsProtocol.SignatureInformation, language: Language | undefined, activeParameterFallback?: number | null): string;
private _removeTooltip;
private _hideTooltip;
private handleSignature;
protected isSignatureShown(): boolean;
afterChange(change: ChangeSet, adapter: WidgetLSPAdapter<any>, editorPosition: IEditorPosition): Promise<void>;
private _requestSignature;
}
export declare namespace SignatureFeature {
interface IOptions extends Feature.IOptions {
settings: FeatureSettings<LSPSignatureSettings>;
renderMimeRegistry: IRenderMimeRegistry;
languageRegistry: IEditorLanguageRegistry;
}
const id: string;
}
export declare const SIGNATURE_PLUGIN: JupyterFrontEndPlugin<void>;
export {};