Using Sirius Web to develop a VSCode extension for an existing DSL

I had the pleasure to participate to EclipseCon 2022 last October, near Stuttgart in Germany. It was a great conference and the opportunity to meet with the Eclipse community. I was there with several other members of the Obeo team to share our work on Sirius Web.

I had the chance to be part of the program, with Benoît Lelandais from the CEA DAM (Military Applications Division of the French Nuclear Agency), to talk about creating a VSCode extension to manipulate the NabLab DSL.

NabLab is an open-source research project led by HPC initiative of the CEA. It aims to provide a productive development way for exascale High-Performance Computing technologies, flexible enough to be competitive in terms of performance. It is composed of:

  • a numerical analysis Domain Specific Language (DSL) to improve applied mathematicians' productivity throughput and enables new algorithmic developments for the construction of hierarchical and composable high-performance scientific applications. The DSL can be used and edited through textual editors (Xtext) and visualized through a graphical editor (Sirius).
  • a full-fledged environment to edit, interpret, and debug specific numerical-analysis sources and to generate optimized code for various C++ targets. The result is an Eclipse RCP product based on the following technologies: Eclipse Sirius, EMF, Xtext, CDT, and JDT.

Nablab in Eclipse

End-users use Eclipse NabLab RCP for years now. They also use VSCode/VSCodium for their C++ developments. Based on this need, they now want to manipulate the NabLab DSL (textually and graphically) directly in VSCode/VSCodium.

In this talk we have presented the challenges of creating a VSCode extension using LSP, Xtext-LSP, and Sirius Web to manipulate the NabLab DSL (the existing one from Eclipse, not a new one!). 

Nablab in VSCode

 We answered the following questions: 

  • Is it possible to share the same Xtext grammar between an RCP product and a VSCode extension? 
  • Is it possible to share the same Xtext grammar editor tooling between an RCP product and a VSCode extension? 
  • Is it possible to share the same Sirius model specification between an RCP product and a VSCode extension? 
  • How LSP has been used in our context?

 Video:

Slides

EclipseCon2022-NabLab_From_Eclipse_to_VSCode_thanks_to_LSP_and_Sirius_Web.pdf

Building Graphical Modeling Tools, Approaches to R...
Retour sur le DevFest 2022 par Obeo

Related Posts