@eclipse-glsp/protocol
Version:
The protocol definition for client-server communication in GLSP
79 lines • 2.61 kB
TypeScript
/********************************************************************************
* Copyright (c) 2023-2024 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 { Args } from '../action-protocol/types';
/**
* A key-value pair structure to map a diagramType to its server-handled action kinds.
*/
export interface ServerActions {
[ ]: string[];
}
export interface InitializeParameters {
/**
* Unique identifier for the current client application.
*/
applicationId: string;
/**
* GLSP protocol version that this client is implementing.
*/
protocolVersion: string;
/**
* Additional custom arguments e.g. application specific parameters.
*/
args?: Args;
}
export interface InitializeResult {
/**
* GLSP protocol version that the server is implementing.
*/
protocolVersion: string;
/**
* The actions (grouped by diagramType) that the server can handle.
*/
serverActions: ServerActions;
}
/**
* Known server actions i.e. action kinds that the server can handle for a specific diagram type.
*/
export interface InitializeClientSessionParameters {
/**
* Unique identifier for the new client session.
*/
clientSessionId: string;
/**
* Unique identifier of the diagram type for which the session should be configured.
*/
diagramType: string;
/**
* The set of action kinds that can be handled by the client.
* Used by the server to know which dispatched actions should be forwarded to the client.
*/
clientActionKinds: string[];
/**
* Additional custom arguments.
*/
args?: Args;
}
export interface DisposeClientSessionParameters {
/**
* Unique identifier of the client session that should be disposed.
*/
clientSessionId: string;
/**
* Additional custom arguments.
*/
args?: Args;
}
//# sourceMappingURL=types.d.ts.map