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.