The Graphical Language Server Protocol Framework provides extensible components to enable the development of diagram editors including edit functionality in (distributed) web-applications via a client-server protocol. This Graphical Language Server Protocol (GLSP) is work in progress and developed in collaboration among TypeFox, Obeo, and EclipseSource. It follows the same architectural pattern as the Language Server Protocol for textual languages, but applies it to graphical modeling for browser/cloud-based deployments. The protocol as well as the client implementation is heavily based on Sprotty but extends it with editing functionality and GLSP-specific communication with the server.
Below is a screenshot of a small example diagram being edited in the GLSP client, as well as the server log printing the GLSP actions processed on the server during the current editing session. Click on the image below to see it in action.
The client packages are available via NPM.
The server packages are available as maven repository or p2 update site.
You’ll need node in version 8:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash nvm install 8
npm install -g yarn
npm install -g lerna
git clone [email protected]:eclipsesource/graphical-lsp.git cd graphical-lsp
cd client yarn
cd server mvn clean install
Once the server is built with
mvn clean install -Pfatjar -- note the activation of the profile
fatjar, you should have a jar file
X.X.X is the current version. You can now start the server by executing the following commands:
cd server/example/workflow-example/target java -jar workflow-example-X.X.X-SNAPSHOT-glsp.jar com.eclipsesource.glsp.example.workflow.ExampleServerLauncher
To start the example server from within your IDE, run the main method of the class ExampleServerLauncher.java in the module
Once the server is running, you can go ahead and start the theia client:
cd client/examples/workflow/browser-app yarn start
and then open http://localhost:3000 in the browser.
The example workspace should be opend automatically on Theia launch. This workspace constains the file "example1.wf". You can display this file in the Workflow Digram editor via context menu (Open with -> Workflow Diagram)
We'd be thrilled to receive your contribution! Please feel free to open issues, fork this repo, and/or open pull requests. Note that we will ask you to sign a CLA to ensure all contributions can be distributed under the terms of the following open-source licenses: Apache License 2.0, BSD 2/3 License, MIT License, and Eclipse Public License v2.0.
The build task Build all packages of the VSCode workspace in
yarn. This build task is also marked as the default build task of this workspace. Thus, to perform a full build in VSCode, you can simply click the menu Terminal --> Run Build Task..., or press Ctrl + Shift + B (unless you have changed the keybinding for invoking a build in VSCode), or use the command palette task Tasks: Run Build Task.
To avoid having to perform a full build after each change, you can use the following workflow in VSCode to enable watching and automatic rebuilding.
As a prerequisite, perform a full build once (Ctrl + Shift + B or
cd client; yarn; see above). Now perform the following steps to watch and automatically build on every file change in any package.
Alternatively, you can use the command line workflow detailed below.
Start the browser backend:
cd client/examples/workflow/browser-app yarn start:debug
In a new terminal, invoke the following command to watch all packages:
cd client yarn watch