Wednesday, September 04, 2013

Xtend and Xtext 2.4.3 Is Out!

We have released version 2.4.3 of Xtext and Xtend. As you can see by the minor increment it's a fully backwards compatible bugfix release. For this release more than 120 bugzillas have been solved, among them some very important enhancements:

Active Annotations : New Provisional File API

The still provisional active annotations API has gotten a new compiler phase and API which allows users to interact with the file system during compilation. This on the one hand is useful to generate signatures based on configuration files or generally project resources and on the other hand allows to update or fully generate such resources based on code. I have written a separate blog post describing an example.

Active Annotations : Polishing, Fixes and Constrain Enforcements

The API has been further refined and polished. Many contracts already described in the JavaDoc are now enforced such that you get early feedback when violating them.

Full Support For Unicode

Xtend now fully supports Unicode in identifiers. When translated to Java unicode characters get escaped only when the target encoding cannot display them. The same mechanism is used for string literals. We haven't pulled this up to Xbase for now, because it would have required clients to regenerate their language infrastructure. This is planned for the next release (2.5).

Content Assist

There were some important context where content assist didn't work. That has been fixed. Also some performance optimizations have been made. That said it's still not where we want it to be. So stay tuned.

Auto Edit

Severe performance problems with large documents have been identified and solved.

Rename Refactoring, Organize Imports, Formatting

Various enhancements have been made and bugs have been fixed in this area.

Xcore Support

There were some URI-related problems with using Xcore, which in some situations were a real showstopper. They are fixed now.

URI Handling

A problem that was introduced with 2.4.2, which made the build fail with URI comparison exception, has been fixed. As a result when generating an Xtext language the *.ecore and *.genmodel files are now generated to a different location.

... and many more

Check the full list.


  1. Sven, I am excited that there is support for Unicode in identifiers. However, although I have updated to the latest version, it appears that the supplied terminal ID does not support unicode. What do we have to do in order to tap into this new Unicode support in terminals? Thanks!

    1. We cannot change the Temrminals grammar. As written in the paragraph the unicode support has been added to Xtend only. Have a look at the grammar, to see how it has been done.

      It's a bit messy...