theia-sprotty
Version:
Glue code for sprotty diagrams in a Theia IDE
40 lines • 2.09 kB
TypeScript
import { ActionMessage, ExportSvgAction, ServerStatusAction } from 'sprotty/lib';
import { TheiaDiagramServer } from './theia-diagram-server';
import { LanguageClientContribution, ILanguageClient, Workspace, Location } from '@theia/languages/lib/browser';
import { EditorManager } from '@theia/editor/lib/browser';
import { TheiaFileSaver } from './theia-file-saver';
import { DiagramWidgetRegistry } from '../theia/diagram-widget-registry';
import { QuickPickService } from '@theia/core/lib/browser';
export interface OpenInTextEditorMessage {
location: Location;
forceOpen: boolean;
}
/**
* Connects sprotty DiagramServers to a Theia LanguageClientContribution.
*
* Used to tunnel sprotty actions to and from the sprotty server through
* the LSP.
*
* Instances bridge the gap between the sprotty DI containers (one per
* diagram) and a specific language client from the Theia DI container
* (one per application).
*/
export declare class TheiaSprottyConnector {
readonly languageClientContribution: LanguageClientContribution;
readonly fileSaver: TheiaFileSaver;
readonly editorManager: EditorManager;
readonly diagramWidgetRegistry: DiagramWidgetRegistry;
readonly workspace?: Workspace | undefined;
readonly quickPickService?: QuickPickService | undefined;
private servers;
constructor(languageClientContribution: LanguageClientContribution, fileSaver: TheiaFileSaver, editorManager: EditorManager, diagramWidgetRegistry: DiagramWidgetRegistry, workspace?: Workspace | undefined, quickPickService?: QuickPickService | undefined);
connect(diagramServer: TheiaDiagramServer): void;
disconnect(diagramServer: TheiaDiagramServer): void;
save(uri: string, action: ExportSvgAction): void;
openInTextEditor(message: OpenInTextEditorMessage): void;
showStatus(widgetId: string, status: ServerStatusAction): void;
sendThroughLsp(message: ActionMessage): void;
getLanguageClient(): Promise<ILanguageClient>;
receivedThroughLsp(message: ActionMessage): void;
}
//# sourceMappingURL=theia-sprotty-connector.d.ts.map