Model-driven development requires describing models at various levels of abstraction. To describe these models, domain-specific languages & tooling need to be developed. To make this work in practice, efforts for a customized language and IDE must be low.
In order to simplify the development of domain-specific languages (DSLs), we have built the Eclipse Xtext framework which brings advanced IDE features at low implementation effort. We enjoy supporting the Eclipse and Xtext community with our ongoing effort to improve the framework.
Xtext is a framework for the development of textual domain-specific languages. Given an EBNF-like grammar, Xtext generates a parser and abstract syntax data structures, and provides the complete infrastructure you expect for a modern language: linking, (semantic) validation, content assist, syntax coloring, goto declaration, find references, rename refactoring and many more features you know from your favourite integrated development environment.
Xtext is designed to get you going quickly. Simple languages can be built within hours, but it is also possible to build fully-featured, statically-typed programming languages like Eclipse Xtend. Xtext comes with good defaults and all aspects can easily be customized to your needs using well-defined configuration hooks.
Xtext DSLs are not restricted to the Eclipse IDE or Eclipse Rich Clients (RCP). Thanks to the Language Server Protocol, you can run them in any editor that supports language servers such as Visual Studio Code or cloud based IDEs such as Eclipse Theia. There is also xtext-web, which allows you to run your DSL in a lightweight browser widget.
As an Eclipse project, Xtext is published under the Eclipse Public License, one of the most liberal/permissive open source licenses. It can be used free of charge and also be used in commercial projects with no strings attached. Its source code is available on github.
.lc
. The obvious advantage over the XML is that this is a mergable and readable format. Furthermore, it allows to control the plugins, features and .product files from a single configuration file. If you’ve been using the Eclipse Launch Configuration XML, you’ll know the value of this DSL..target
file which the Plugin-Development-Environment (PDE) is able to use when provisioning a Target Platform. The greatest thing about this tool is that it lets you specify a version range and select the best fitting version at generation time.To speed up your start with Xtext itemis invites you to download the free Xtext FAQ - 1001 Tips and Tricks. Another valuable source of information is at the Xtext Forum. Here you can also ask the community for advise. If you plan to use Xtext in an professional context itemis offers professional support from our Xtext experts. This way your developers are much faster productive with Xtext and do not loose valuable time experimenting with the technology.
Xtext has proven itself in countless industrial projects. It is heavily compatible to previous versions and we’re continuing in putting a lot of efforts into that.
At itemis, we not only create and maintain Xtext, but we also provide services and training to get your company up to speed with your project. However you like it: either we build the DSL for you, or we’ll train you in how to do that yourself.
And since we like to drink our own Whisky, YAKINDU Statechart Tools runs with it.
Also, see what others have built with Xtext