monaco-editor-wrapper
Version:
Wrapper for monaco-vscode-editor-api and monaco-languageclient
54 lines • 2.51 kB
TypeScript
import { type LanguageClientOptions, MessageTransports } from 'vscode-languageclient/browser.js';
import { type ConnectionConfigOptions, MonacoLanguageClient, type WorkerConfigOptionsDirect, type WorkerConfigOptionsParams } from 'monaco-languageclient';
import { type Logger } from 'monaco-languageclient/tools';
export interface ConnectionConfig {
options: ConnectionConfigOptions;
messageTransports?: MessageTransports;
}
export interface LanguageClientConfig {
name?: string;
connection: ConnectionConfig;
clientOptions: LanguageClientOptions;
restartOptions?: LanguageClientRestartOptions;
}
export interface LanguageClientRestartOptions {
retries: number;
timeout: number;
keepWorker?: boolean;
}
export interface LanguageClientError {
message: string;
error: Error | string;
}
export declare class LanguageClientWrapper {
private languageClient?;
private languageClientConfig;
private worker?;
private port?;
private name?;
private logger;
constructor(config: {
languageClientConfig: LanguageClientConfig;
logger?: Logger;
});
haveLanguageClient(): boolean;
getLanguageClient(): MonacoLanguageClient | undefined;
getWorker(): Worker | undefined;
isStarted(): boolean;
start(): Promise<void>;
/**
* Restart the languageclient with options to control worker handling
*
* @param updatedWorker Set a new worker here that should be used. keepWorker has no effect then, as we want to dispose of the prior workers
* @param disposeWorker Set to false if worker should not be disposed
*/
restartLanguageClient(updatedWorker?: Worker, disposeWorker?: boolean): Promise<void>;
protected initMessageTransportWebSocket(webSocket: WebSocket, resolve: () => void, reject: (reason?: unknown) => void): Promise<void>;
protected initMessageTransportWorker(lccOptions: WorkerConfigOptionsDirect | WorkerConfigOptionsParams, resolve: () => void, reject: (reason?: unknown) => void): Promise<void>;
protected performLanguageClientStart(messageTransports: MessageTransports, resolve: () => void, reject: (reason?: unknown) => void): Promise<void>;
protected initRestartConfiguration(messageTransports: MessageTransports, restartOptions?: LanguageClientRestartOptions): void;
protected disposeWorker(): void;
disposeLanguageClient(disposeWorker: boolean): Promise<void>;
reportStatus(): string[];
}
//# sourceMappingURL=languageClientWrapper.d.ts.map