The Xtend Language with its Rich String concept is a perfect match to build template based code generators. When using Xtext based models, it is quite easy to implement a generator by implementing the IGenerator interface. The Xtext framework enables integration of such generators in standalone and integrated environments with minimal customization effort.
Nearly every Eclipse user is aware what Xtext is and what it is useful for. It is always a pleasure to see in which kind of areas it is used.
One reason is clearly, that it is really easy to build a first working example in no time. The grammar alone is sufficient and the rest is done by a code generator. Xtext will generate stub classes, that are ready to fill in individual logic for different areas.
By doing that most of the things just work, because Xtext comes with a lot of defaults that suits in most of the cases.
The Language Server Protocol (LSP) introduced by Microsoft’s VSCode team has been a hot topic recently. In a nutshell it is an effort to unify how editors communicate with advanced language tooling.
In this session we want to give you an overview of what the LSP is, why it is so important and how you could leverage it. We will also explain what it does and what it doesn’t do, discuss some misconceptions and show some cool demos based on a Java implementation of the protocol.
Xtext makes it easy to develop programming and domain-specific languages and tooling for them. It includes a basic language infrastructure consisting of a parser, linker, and compiler, as well as advanced features such as Java integration, symbol indexing, incremental building, and editing support for different platforms. Starting from version 2.11, in addition to Eclipse, Intellij IDEA and the Web support, Xtext comes with a Language Server Protocol implementation that opens a way to new platforms such as Eclipse Che and VSCode.
Xtext has revolutionized the way to implement textual DSLs and is used
nowadays successfully in many projects. The framework provides an excellent
documentation and introductionary examples which allows developers without
even having knowledge about Eclipse plugin development or parser techology to
build sophisticated languages with extraordinary tool support. Advanced users
are even able to build full-blown programming languages for the JVM, like
Avaloq is an internationally leading Fintech company and the creator of the Avaloq Banking Suite. Domain Specific Languages (DSLs) are used to customize the business logic of the banking suite. Xtext is an Eclipse project that provides rich support for the implementation of DSLs. Xtext is very flexible and easily extensible allowing to apply it way beyond simple flowchart DSLs. At Avaloq we used Xtext to implement tools for over 80 DSLs out of which over 50 languages existed long before we learned about Xtext and hence were designed without Xtext implementation in mind.