Right on time for EclipseCon Europe the Xtext project managed to release its new version 2.13. Xtext 2.13 is the first version for the Eclipse Photon simultaneous release and was designed to fit well with the recently released Eclipse Oxygen.1a version. For users of older Eclipse versions, Xtext remains compatible back to Eclipse Luna.
Xtext's New Project Wizard: Option to build Language Server Support
We have enhanced Xtext’s New Project Wizard, which now adds an option to build Language Server packages for languages created with Xtext. The wizard will enhance the build scripts to produce the packages, which can be integrated with any tool that supports language integration through the Language Server Protocol (LSP), e.g. VS Code, Eclipse Che and others.
Users can choose between a Fat Jar packaging, which packages the DSL and all required dependencies into a single executable jar, or a “Regular” format, which will have each jar on its own and includes launch scripts for the language server. A basic language server package is around 13 MB size, more depends on a DSLs individual dependencies.
The full support of the LSP is still on top of Xtext’s agenda. With this release will finally get support for rename refactoring.
Xtext 2.13: Quality, stability, robustness
The processed bugs of a release are often just a link to a list in the release notes. But it should be worth to mention that this is the most important and least thankful job to keep a project alive and kicking.
It is especially Christian Dietrich’s invaluable work that is addressing the problems that real users have out there, on the support forum and by fixing bugs. Also I am continuously working down the “big pile of shit”. That might not be the fun work, but it is crucial for the project’s health.
We have focussed also on issues that are reported to Eclipse’s Automatic Error Reporting System (AERI), where actual problems are reported by users automatically. You might have noticed in Eclipse this feature when a pop up message appears in Eclipse’s lower right corner and asks you to send to report when something goes wrong. These reports are very important to us, and we are analyzing them continuously.
With this release we finally managed to reach a break even point where we don’t get more reports inside than we are able to process. And for some weeks we are even not getting new requests, and fight against the remaining ones.
As of today, Xtext has only about 10% of the reports open, and I believe this is a top quota. I believe that Xtext is amongst the most active projects using AERI at Eclipse.
New Xbase Library Functions
flatMap() function has been added to Xtext’s library bundle
org.eclipse.xtext.xbase.lib. It combines map with flatten, a likely combination in functional programming.
Further mutable collection literals finally get no-args factory methods in class
CollectionLiterals. Usage of these methods yield better performance, and Xtext’s code has been refactored to use these methods.
New Model Manipulation API
Synchronization of text with the EMF resources is one of the magic things Xtext is doing for you without usually noticing it. For advanced users who need to influence the process of changes to the EMF model, there is now a new API. Its core concept is the
This API is still in incubation status, so we expect that it might change later. For the rare case that you might need this API, please give feedback so that we can improve it.
The road to Eclipse Photon
Xtext 2.13 is our first milestone towards the Eclipse Photon simultaneous release. As of today we plan to deliver Xtext 2.15 for this release in June 2018, so there is likely another release in between.
Our focus at itemis will be on language server, Java 9, usability and performance. We have found first issues with Java 9 and are still getting more insights with it, but could not solve all of them for 2.13 already. We warmly encourage you to provide feedback or even contributions. To ease your contribution, we polished our Oomph Setup, so that setting up a fully working dev workspace is a matter of coffee drinking.
As Xtext is a non-trivial framework, so it is important to us to lower the hurdle to use it as much as possible. We expect to add more features for build, Xtext’s UI (e.g. wizards), and documentation. Therefore we listen to requirements users have or what we need in concrete projects. Also here, your input is valuable to us.
Xtext @ EclipseCon Europe 2017
The complete itemis Xtext team will be at EclipseCon Europe in Ludwigsburg next week. All of us have multiple talks there, and some are Xtext related. If you can make it to ECE 2017, make sure to come to our talks. We will often hang around the itemis booth in front of the Theater, and would happily talk with you about your experience and ideas on Xtext. It is YOU that can shape the future of Xtext! We will help you wherever we can.
Xtext 2.13 was released on October 20th 2017. The release’s main new features are enhanced Language Server Support, additional library functions and an API for EMF model manipulation. With this release Xtext has improved much on stability again, and is one of the projects with highest AERI problem report fixing rate at Eclipse. Future focus for Eclipse Photon are language servers, usability and scalability.