Eclipse Xtext 2.13 is released!

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.

whats-new.jpg

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.

Xtext-Release-new-project-language-server-protocol.png

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.

federico-tomassetti-quote-twitter.png

 

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.

Xtext-problem-status-report.png

New Xbase Library Functions

A new 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 IChangeSerializer interface.

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.

TL;DR

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.

Xtext 2.13 is available now on the release update site. Download now and enjoy! Read the full release notes here

Learn more about Xtext in our blog

About Karsten Thoms

Karsten is a software architect at itemis and part of the Xtext team. He strongly believes that Model Driven Software Development helps to be more efficient in mission critical projects.