UNPKG

@krassowski/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

142 lines (141 loc) 6.69 kB
import { JupyterFrontEnd } from '@jupyterlab/application'; import { CodeEditor } from '@jupyterlab/codeeditor'; import { CodeMirrorEditor } from '@jupyterlab/codemirror'; import { IDocumentWidget } from '@jupyterlab/docregistry'; import { FileEditor } from '@jupyterlab/fileeditor'; import { ILoggerRegistry } from '@jupyterlab/logconsole'; import * as nbformat from '@jupyterlab/nbformat'; import { Notebook, NotebookPanel } from '@jupyterlab/notebook'; import { ITranslator } from '@jupyterlab/translation'; import { Signal } from '@lumino/signaling'; import { WidgetAdapter } from '../adapters/adapter'; import { FileEditorAdapter } from '../adapters/file_editor/file_editor'; import { NotebookAdapter } from '../adapters/notebook/notebook'; import { LSPConnection } from '../connection'; import { DocumentConnectionManager } from '../connection_manager'; import { IForeignCodeExtractorsRegistry } from '../extractors/types'; import { IFeatureSettings } from '../feature'; import { ILSPExtension } from '../index'; import { LanguageServerManager } from '../manager'; import { ICodeOverridesRegistry } from '../overrides/tokens'; import { ILSPFeatureManager, ILSPLogConsole, ILSPVirtualEditorManager, WidgetAdapterConstructor } from '../tokens'; import { CodeMirrorVirtualEditor } from '../virtual/codemirror_editor'; import { VirtualDocument } from '../virtual/document'; import { IVirtualEditor } from '../virtual/editor'; import { CodeMirrorIntegration, CodeMirrorIntegrationConstructor } from './codemirror'; import { EditorAdapter } from './editor_adapter'; import IEditor = CodeEditor.IEditor; export interface ITestEnvironment { document_options: VirtualDocument.IOptions; virtual_editor: CodeMirrorVirtualEditor; adapter: WidgetAdapter<any>; /** * Has to be called after construction! */ init(): void; dispose(): void; } export declare class MockLanguageServerManager extends LanguageServerManager { fetchSessions(): Promise<void>; } export declare class MockSettings<T> implements IFeatureSettings<T> { private settings; changed: Signal<IFeatureSettings<T>, void>; constructor(settings: T); get composite(): Required<T>; set(setting: keyof T, value: any): void; } export declare class MockExtension implements ILSPExtension { app: JupyterFrontEnd; connection_manager: DocumentConnectionManager; language_server_manager: LanguageServerManager; feature_manager: ILSPFeatureManager; editor_type_manager: ILSPVirtualEditorManager; foreign_code_extractors: IForeignCodeExtractorsRegistry; code_overrides: ICodeOverridesRegistry; console: ILSPLogConsole; user_console: ILoggerRegistry; translator: ITranslator; constructor(); } export declare abstract class TestEnvironment implements ITestEnvironment { virtual_editor: CodeMirrorVirtualEditor; protected abstract get_adapter_type(): WidgetAdapterConstructor<any>; adapter: WidgetAdapter<any>; abstract widget: IDocumentWidget; protected extension: ILSPExtension; protected abstract get_defaults(): VirtualDocument.IOptions; document_options: VirtualDocument.IOptions; constructor(options?: Partial<VirtualDocument.IOptions>); protected abstract create_widget(): IDocumentWidget; init(): void; create_virtual_editor(): CodeMirrorVirtualEditor; dispose(): void; } export interface IFeatureTestEnvironment extends ITestEnvironment { init_integration<T extends CodeMirrorIntegration>(options: IFeatureTestEnvironment.IInitOptions): T; dispose_feature(feature: CodeMirrorIntegration): void; } export declare namespace IFeatureTestEnvironment { interface IInitOptions { constructor: CodeMirrorIntegrationConstructor; id: string; register?: boolean; document?: VirtualDocument; settings?: IFeatureSettings<any>; } } export declare class FileEditorTestEnvironment extends TestEnvironment { protected get_adapter_type(): typeof FileEditorAdapter; widget: IDocumentWidget<FileEditor>; protected get_defaults(): VirtualDocument.IOptions; get ce_editor(): CodeMirrorEditor; create_widget(): IDocumentWidget; dispose(): void; } export declare class NotebookTestEnvironment extends TestEnvironment { widget: NotebookPanel; protected get_adapter_type(): typeof NotebookAdapter; get notebook(): Notebook; protected get_defaults(): VirtualDocument.IOptions; create_widget(): IDocumentWidget; } declare const FileEditorFeatureTestEnvironment_base: { new (...args: any[]): { _connections: Map<CodeMirrorIntegration, LSPConnection>; init(): void; readonly status_message: import("../adapters/adapter").StatusMessage; init_integration<T extends CodeMirrorIntegration>(options: IFeatureTestEnvironment.IInitOptions): T; dispose_feature(feature: CodeMirrorIntegration): void; create_dummy_connection(): LSPConnection; dispose(): void; document_options: VirtualDocument.IOptions; virtual_editor: CodeMirrorVirtualEditor; adapter: WidgetAdapter<any>; }; } & typeof FileEditorTestEnvironment; export declare class FileEditorFeatureTestEnvironment extends FileEditorFeatureTestEnvironment_base { } declare const NotebookFeatureTestEnvironment_base: { new (...args: any[]): { _connections: Map<CodeMirrorIntegration, LSPConnection>; init(): void; readonly status_message: import("../adapters/adapter").StatusMessage; init_integration<T extends CodeMirrorIntegration>(options: IFeatureTestEnvironment.IInitOptions): T; dispose_feature(feature: CodeMirrorIntegration): void; create_dummy_connection(): LSPConnection; dispose(): void; document_options: VirtualDocument.IOptions; virtual_editor: CodeMirrorVirtualEditor; adapter: WidgetAdapter<any>; }; } & typeof NotebookTestEnvironment; export declare class NotebookFeatureTestEnvironment extends NotebookFeatureTestEnvironment_base { } export declare function code_cell(source: string[] | string, metadata?: Partial<nbformat.ICodeCellMetadata>): nbformat.ICodeCell; export declare function set_notebook_content(notebook: Notebook, cells: nbformat.ICodeCell[], metadata?: nbformat.INotebookMetadata): void; export declare const python_notebook_metadata: nbformat.INotebookMetadata; export declare function showAllCells(notebook: Notebook): void; export declare function getCellsJSON(notebook: Notebook): Array<nbformat.ICell>; export declare function synchronize_content(environment: IFeatureTestEnvironment, adapter: EditorAdapter<IVirtualEditor<IEditor>>): Promise<void>; export {};