Back to top

Tags: ${tags}${ end } ${ isset categories }

Categories: ${categories}${ end }

Graphical Language Server Platform™ (GLSP)

Eclipse GLSP™
Graphical Language Server Platform for next-generation diagram editors

Modern diagram editors for Eclipse Theia, VS Code, Web pages and more


GLSP Overview

The Graphical Language Server Platform (GLSP) is an extensible open-source framework for building custom diagram editors based on web technologies. Alongside an extensible client framework and a server framework, GLSP provides a language server protocol (LSP) for diagrams. With that, GLSP enables the development of modern, web-based diagram editors, whereas the heavy lifting, such as loading, interpreting, and editing according to the rules of the modeling language, is encapsulated in the server. GLSP provides integration layers, to use GLSP editors seamlessly in web pages, Eclipse Theia, VS Code and even Eclipse desktop.

Features

Web-based Diagram Editors

Web-based Diagram Editors

GLSP provides the perfect basis for the efficient development of web-based diagram editors including edit functionality, layouting, shapes, palettes and everything else you expect from a powerful, modern diagram editor. GLSP doesn't hide the underlying rendering technologies, such as Eclipse Sprotty, SVG, and CSS. Thus, you have the full power of those technologies at your fingertips to implement scalable and interactive diagrams that are styleable with CSS.

Flexible and Extensible

Flexible and Extensible

GLSP enables a clear separation between diagram client and server which communicates using the defined protocol. This flexible approach provides a clear encapsulation of your domain-specific diagram logic on the server from the rendering part on the client. The diagram client is highly customizable and extensible to add custom shapes or editing features. Also the protocol can be extended with custom messages, if needed.

The client is based on modern web technologies and can be integrated in any web application, as well as into web IDEs, such as Eclipse Theia, VS Code or the Eclipse desktop IDE. GLSP provides two server frameworks, in Java or Node, for developing your domain-specific diagram logic. Moreover, it can even be hooked up with your existing modeling tool to enable a clean and efficient migration path from desktop to web.

Components

GLSP provides a ready-to-use diagram client, which is responsible for rendering domain-specific diagrams. It is implemented using HTML5, Typescript, Sprotty and SVG. The generic GLSP diagram client can be connected to any domain-specific GLSP server via the defined protocol to support a specific diagram type. Furthermore, the diagram client is easily customizable and extensible by domain-specific features.

Following the successful pattern provided by the language server protocol (LSP) for textual languages, GLSP provides a defined protocol for the communication between the GLSP client and the server. In this modular architecture, server and client are well encapsulated and can be developed in an independent way. This allows mixing in the ideal technologies on both sides and reusing existing clients and server.

Enabled by the flexible protocol-based architecture, a domain-specific GLSP server can be implemented in any preferred technology. Therefore, you can easily integrate a GLSP server into an existing environment and even reuse existing domain-specific business logic. GLSP provides a framework for the implementation of GLSP servers using Java or Node, as well as an optional integration with EMF.

Diagram Editor Integrations

Eclipse GLSP provides a standalone diagram client that can be directly deployed as a web application. Therefore, GLSP does not depend on the usage of any IDE.

The GLSP diagram editor client is based on standard web technologies (SVG, HTML and CSS) and can therefore be seamlessly embedded on any website.

Eclipse GLSP provides a ready-to-be-used integration with VS Code to provide diagram editors as extensions for the popular IDE.

Using the powerful extension mechanism of Eclipse Theia, GLSP provides a full integration of diagram editors into the popular IDE framework.

Using a Chrome-based browser Eclipse GLSP provides a seamless integration of diagram editors into the Eclipse desktop IDE.

Eclipse GLSP provides a consistent example for all available integrations, see our workflow example.