Software Engineering and Architecture Group (SEARCH) > CS > JBI > FWN > RUG

Connecting the Rascal Language Workbench to the Language Server Protocol

Rascal is a metaprogramming language and language workbench. One of the goals of Rascal is to allow the effective and efficient definition of domain-specific languages (DSLs) and their IDEs. Currently, the IDE support offered by Rascal is tightly coupled to the Eclipse IDE. Recently, however, Microsoft published the Language Server Protocol (LSP): a generic protocol for connecting language runtimes to IDEs.

The goal of this project is to explore how Rascal's IDE features can be expressed in terms of this protocol, so that users of Rascal-defined DSLs can use other IDE frameworks than Eclipse (for instance, VS Code, Atom, IntelliJ etc.). In addition, users of Rascal itself would also benefit from this work.

Deliverables:

  • A clear description of the current API of IDE hooks in Rascal and the LSP.
  • Analysis and design of a new Rascal API based on LSP.
  • Implementation of the API.
  • Evaluation by porting an existing DSL IDE to the new API and connecting it, for instance, to VS Code.
  • Optional: showing that Rascal's own IDE can be supported using the new API.

Contact: Tijs van der Storm.