The "Language Server Protocol" (LSP) is a "don't call us, we'll call you" plugin mechanism for arbitrary programming language support for IDEs such as VScode. The protocol clearly separates the "what" (syntax, static semantics, dynamic semantics, refactorings) from the "how" (scheduling asynchronous jobs, interprocess communication, caching, (de)serialization, visualization, UI interactions, editors) in IDE construction.
In this talk, we demonstrate how to construct an LSP server for your own language, be it a programming language or a domain-specific language. We use the Rascal meta-programming language, which allows us to express programming language syntax and semanticson the abstraction level of the language, without even thinking about lower-level implementation details. Such a language prototype canbe wired directly into a "parametric" LSP (one that works for all languages made in Rascal). In other words, only the "what" is left,and the "how" has been completely automated.
Rascal, LSP, and VScode are a potent combination for designing and deploying your own languages, but when we add Gitpod to the mix,the languages really come alive immediately. We demonstrate a Logo-like programming language designed for high school students, one they can extend and adapt themselves, to run directly in the browser with some nice visual effects.


De Amsterdamse community voor Gitpod! 🇳🇱
Platform Sponsors

Torc is a community-first platform bringing together remote-first software engineer and developer opportunities from across the globe. Join a network that’s all about connection, collaboration, and finding your next big move — together.
Join our community today!

Supercharge your dev team with AI code reviews
Get your free trial now
The "Language Server Protocol" (LSP) is a "don't call us, we'll call you" plugin mechanism for arbitrary programming language support for IDEs such as VScode. The protocol clearly separates the "what" (syntax, static semantics, dynamic semantics, refactorings) from the "how" (scheduling asynchronous jobs, interprocess communication, caching, (de)serialization, visualization, UI interactions, editors) in IDE construction.
In this talk, we demonstrate how to construct an LSP server for your own language, be it a programming language or a domain-specific language. We use the Rascal meta-programming language, which allows us to express programming language syntax and semanticson the abstraction level of the language, without even thinking about lower-level implementation details. Such a language prototype canbe wired directly into a "parametric" LSP (one that works for all languages made in Rascal). In other words, only the "what" is left,and the "how" has been completely automated.
Rascal, LSP, and VScode are a potent combination for designing and deploying your own languages, but when we add Gitpod to the mix,the languages really come alive immediately. We demonstrate a Logo-like programming language designed for high school students, one they can extend and adapt themselves, to run directly in the browser with some nice visual effects.


De Amsterdamse community voor Gitpod! 🇳🇱
Platform Sponsors

Torc is a community-first platform bringing together remote-first software engineer and developer opportunities from across the globe. Join a network that’s all about connection, collaboration, and finding your next big move — together.
Join our community today!

Supercharge your dev team with AI code reviews
Get your free trial now
Get in touch!
hi@guild.host