Skip to content

eclipse-glsp/glsp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

232 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Eclipse GLSP

Client Status ServerJava Status ServerNode Status Dev Status Theia Status Vscode Status Eclipse Status Playwright Status Examples Status

For a full overview of all CI workflows across the organization, see Workflow Status.

The Graphical Language Server Platform provides extensible components for the development of diagram editors including edit functionality in (distributed) web-applications via a client-server protocol.

It follows the architectural pattern of the Language Server Protocol, but applies it to graphical modeling and diagram editors for browser/cloud-based deployments. Parts of the protocol and the web-based client implementation is based on Sprotty but extends it with editing functionality and GLSP-specific communication with the server.

For more information, please have a look at the GLSP documentation, visit the GLSP website and the protocol spec. If you have questions, please raise them in the discussions and have a look at our communication and support options.

diagramanimated.mp4

Getting started

The best way to getting started is to read the overview in the documentation and follow the getting started guide.

Features

Below is a list of features that are supported by the different base technologies that can be used with GLSP.

Expand feature list
Feature Standalone Theia Integration Eclipse Integration VS Code Integration
Model Saving
Model Dirty State
Model SVG Export
Model Layout
Restoring viewport on re-open
Model Edit Modes
- Edit
- Read-only


✓ 




 


✓ 
Client View Port
- Center
- Fit to Screen








Client Status Notification
Client Message Notification
Client Progress Reporting
Element Selection
Element Hover
Element Validation
Element Navigation
Element Type Hints
Element Creation and Deletion
Node Change Bounds
- Move
- Resize








Node Change Container
Edge Reconnect
Edge Routing Points
Ghost Elements
Element Text Editing
Clipboard (Cut, Copy, Paste)
Undo / Redo
Contexts
- Context Menu
- Command Palette
- Tool Palette












Accessibility Features (experimental)
- Search
- Move
- Zoom
- Resize




Helper Lines (experimental)

Repositories

The GLSP source code consists of the following repositories:

Release plan

We release a minor version of Eclipse GLSP every three months, aligned with the Eclipse Theia Community Releases, focusing on bug fixes and adding functionality while ensuring backward compatibility. Currently, there are no major releases with API breaks planned. For a detailed history of past releases, visit our releases page on GitHub.

Shared artifacts

This repository provides the following packages and artifacts that are shared across all GLSP repositories and/or projects:

Build artifacts

Packages are available via npmjs, such as the glsp-client and the theia integration. The examples are available on npmjs too.

The Java server packages are available as maven as well as p2 dependency from the following maven repository or p2 update site.

Maven Repositories

P2 Update Sites

All changes on the master branch are deployed automatically to the corresponding snapshot repositories.

Developer Documentation (dev-packages)

First time setup

  • Install node.js (requires Node v22+)
  • Install pnpm: https://pnpm.io/installation (use pnpm 10+); a recent pnpm automatically switches to the version pinned in the packageManager field
  • Clone this repository
  • Install dependencies: pnpm i or pnpm i --frozen-lockfile

Build & Testing

  • Build (all packages): pnpm build
  • Test (all packages): pnpm test
  • Clean (all packages): pnpm clean

Workflow Diagram Example

The Workflow Diagram is a consistent example provided by all GLSP components. The example implements a simple flow chart diagram editor with different types of nodes and edges (see screenshot below). The example can be used to try out different GLSP features, as well as several available integrations with IDE platforms (Theia, VS Code, Eclipse, Standalone). As the example is fully open source, you can also use it as a blueprint for a custom implementation of a GLSP diagram editor. The workflow example consists of the following components: the Workflow Diagram Server, the client, and optionally an IDE integration of the Workflow Diagram Editor.

For detailed instructions on how to build and run the Workflow Diagram example, please refer to the corresponding section in the glsp-client README.