The Xtext team proudly announces the availability of the 2.14 release. While the previous releases have focused on performance and internal improvements this release comes with a bunch of new features that will ease your life and make your DSLs even more valuable. We encourage to update to this release. Xtext 2.14 will also be part of the upcoming Eclipse Photon release scheduled for June 27.
Of course 2.14 provides full compatibility with the recent Java 9 and 10 releases. Quite a lot of effort went into this support as Xtext is not the only part that needed adoption. We heavily rely on JDT, Gradle, Maven and Maven Tycho which all had to be compatible before.
The new version is fully compatible with your existing languages. To best employ the new features after the upgrade, we recommend to use the Xtext Project Wizard to create new projects with an up-to-date configuration and compare the setup with your existing language. For example, for Java 10 support, we had to upgrade the ASM library to version 6.1.1 and so do you.
The brand new Code Mining API from Eclipse Photon is supported by Xtext 2.14, too. To give it a try, you’ll need Eclipse Photon. You should use the latest Eclipse 4.8 Integration Build. The Domain-Model Example DSL contains a sample implementation for Code Minings and serves as a blueprint if you plan to implement your own. This is how it looks like in action:
As the Code Mining implementation in Eclipse is still under development, its inventor Angelo Zerr is happy to get your feedback, too. Fame and fortune is to come if you report bugs to the Platform Text component in time so they can be fixed for the Photon release.
We also updated the testing infrastructure. The JUnit support has been extended so you can execute tests written with JUnit 5. The Xtext Project Wizard allows you now to select JUnit 5 for testing support and will produce a sample parser test and add the required dependencies.
Creating project and file wizards for your DSL has always been a pain point. There already exists a non-well known generator fragment for an Eclipse New Project Wizard that produced a wizard which was not easily customizable. Now we have a new API and generator fragment that allows to produce new project and new file wizards.
The Xtext Grammar language now supports additional annotations for parser rules:
@Deprecated: This annotation marks a rule to be deprecated. Issue markers with are produced where a deprecated rule is used.
@Final: A rule marked as final cannot be overridden.
@Exported: With @Exported it can be customized on grammar level, which element types are exported to the index. The customization takes effect when at least one rule in a grammar is annotated with @Exported. By doing that you can easily manage visibility of elements and safe memory.
To enable your DSLs to run out of the box on as many editors as possible the support of the language server protocol was updated to 3.7 with VS code debug protocol 1.25.
Xtend 2.14 is released together with Xtext and of course also supports Java 9 and 10. In addition a few more enhancements are included. One nice thing to mention is the detection of unnecessary modifiers.
And of course we have worked on performance improvements and have closed bugs to improve overall behaviour while adding new features.
Xtext 2.14 is now available on the release update site.
If you have feedback please leave a comment. Suggestions for improvements, bug reports or code contributions are warmly welcome on GitHub. And if you are interested in news about Xtext in general follow us on Twitter. See you there!