System Architecture · Published October 4, 2021

LSP for our DSL (Domain Specific Language)

LSP for our DSL (Domain Specific Language)
LSP for our DSL (Domain Specific Language)
techManta Architecture Team

The following blog is compiled jointly by the technical architects at techManta.

LSP (Language Server Protocol) is a protocol defined between an integrated software development editor like Visual Studio Code/ Eclipse/ Atom and a Language Server that provides language features like auto-complete, go to definition, find all references, etc. In our case, we developed a simple language for our own DSL (Domain Specific Language).

Do not forget to read our blog about our DSL (Domain Specific Language) for Rapid Application Prototyping and Software Development at:

Domain Specific Language : Rapid Application Development and Sofware Engineering DSL

Language Server Protocol Image LSP (Language Server Protocol) + DSL(Domain Specific Language) is the Value Proposition of our Low Code Platform Symplat.

What is LSP?

The idea behind Language Server Protocol (LSP) is to standardize the protocol for how Language Servers and Development Tools such as Visual Studio Code/ Eclipse/ Atom editors communicate. Traditional software engineering with programming languages such as Java/ Python/ Javascript is aided with the help of Language Server aids such as Auto-Complete, Diagnostics, Go To Definition, etc. If Language Servers were replicated for each language across popular development tools it would lead to the n X m problem; a version for a language server for each development tool and each language. This would get completely out of hand with continuous maintenance, upgrades, and feature support.

With a protocol such as LSP (Language Server Protocol), a single Language Server can be reused in multiple development tools, which in turn can support multiple languages with minimal effort. It solves the traditional n X m problem.

We developed our own language and supported it over multiple editors, and at some point in time we plan to include support on web browers such as Google Chrome/ Safari/ Firefox.

Language Server Protocol : LSP

Why did we do LSP?

Our DSL (Domain Specific Language) is for Rapid Application Prototyping and Software Development; it is a simple language with simple semantics and syntax. We call it a ‘Business Declarative Language’. Traditional software is built using a GPL (General programming language) which comes with LSP support out of the box on popular code editors like Visual Studio Code/ Eclipse/ Atom. Since we decided to create our own language, we wanted it to have the same highly beneficial features of general-purpose programming languages such as auto-complete, go to definition, diagnostics, find.

A screen-shot of the auto-complete feature of LSP implemented on Visual Studio Code:
Intellisense Image Auto-Completed, Intelli-Sensed & Context Based Suggestions. Check out our products page, we have developed so much more on the Visual Studio Code extension along with LSP such as a DevOps Extension, a Model Hydration Extension. Visual Studio Code is used by more than 57% of the developers around the world and is the editor of choice for front-end development:

Products of techManta : techManta Products

The LSP Advantage

When a well-structured DSL and LSP come together it makes software development a far easier experience. In our case, the DSL constrains the system and limits the vocabulary to only provide the entities/ attributes/ annotations available at a specific location. We have abstracted the process of software engineering into commonly occurring patterns and encapsulated it to hide the complexity of a GPL (General Programming Language).

Contact Us to Know More : Contact