@eclipse-glsp/vscode-integration
Version:
Glue code to integrate GLSP diagrams in VSCode extensions (extension part)
53 lines • 2.62 kB
TypeScript
/********************************************************************************
* Copyright (c) 2021-2023 EclipseSource and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
********************************************************************************/
import { BaseJsonrpcGLSPClient } from '@eclipse-glsp/protocol';
import { MessageConnection } from 'vscode-jsonrpc';
import { BaseGlspVscodeServer, GlspVscodeServerOptions } from '../../common';
export interface WebsocketGlspVscodeServerOptions extends GlspVscodeServerOptions {
/** (Web)socket connection options of the running server. */
readonly connectionOptions: WebSocketConnectionOptions;
}
export type WebSocketConnectionOptions = {
/** Address of the server websocket endpoint */
webSocketAddress: string;
} | {
/** Server websocket port */
port: number;
/** Server hostname. Default is 'localhost' */
host?: string;
/** Websocket endpoint path*/
path: string;
/** The websocket protocol used by the server. Default is 'ws' */
protocol?: 'ws' | 'wss';
};
/**
* This component can be used to bootstrap your extension when using an external
* GLSP server implementation that communicates via WebSocket connection
*
* It sets up a JSON-RPC connection to a server running on a specified port and
* provides an interface, ready to be used by the `GlspVscodeConnector` for the
* GLSP-VSCode integration.
*/
export declare class WebSocketGlspVscodeServer extends BaseGlspVscodeServer<BaseJsonrpcGLSPClient> {
protected readonly options: WebsocketGlspVscodeServerOptions;
constructor(options: WebsocketGlspVscodeServerOptions);
protected getWebSocketAddress(): string | undefined;
createGLSPClient(): Promise<BaseJsonrpcGLSPClient>;
protected createConnection(): Promise<MessageConnection>;
protected createWebSocketConnection(address: string): Promise<MessageConnection>;
}
export declare function isValidWebSocketAddress(address: string): boolean;
//# sourceMappingURL=websocket-glsp-vscode-server.d.ts.map