Xtext 2.9 Beta May 22, 2015 (Sven Efftinge)
(for download instructions, see below)
The main theme of our ongoing work in Xtext & Xtend 2.9 is to reach out to other tools and platforms. After seven years of development, Xtext has become the de facto standard for implementing programming languages and external domain specific languages and IDE support for Eclipse. A couple of months ago, we announced that we have now started to extract the IDE-related infrastructure from Eclipse, such that it can be used in other scenarios as well.
Today we want to give early adopters a chance to test the current status quo and provide feedback (you always could do that, since everything we do is open-source). The “2.9 Beta” we are putting out today is a frozen state of the head, that was tested just a bit and has known issues. So it’s not an actual release and you should not use it in production! Still, it comes with some new stuff that might be interesting:
IntelliJ IDEA Support
With 2.9 you will be able to produce a feature-rich plug-in not only for Eclipse, but also for IntellIj IDEA, from the same language description. The IntelliJ editor already supports syntax coloring and content assist and even some rename refactoring works. Also, we have been working on an incremental standalone compiler, that is used by IDEA, and automatically runs the code generators for the changed and affected files.
The IDEA integration hasn’t been so easy, because IDEA is already a rich platform and it’s a bit challenging to map IDEA’s concepts with ours in performant ways. So there is still some work ahead of us, especially in the case of Xbase and Xtend, where a seamless integration with the Java IDE is our goal. We are simply not there yet and especially the integration with Java is still in a very early and bad stage. If you have Xtext DSLs that don’t use Xbase, there is a lot that works quite well already.
Stefan has written up more infos about the IntellIJ IDEA part here.
The other part we wanted to share and get feedback on, is the early state of our web support. Same story: don’t use it in production! The Xtext project wizard can create a web project, which provides you with an example html webpage, an orion editor and a java-based server backend for the editor. Syntax Coloring is done entirely in the browser, while validation and content assist are provided by the server. The server side really just projects tool support on that widget and doesn’t need any other integration with your web application, just use the orion editor as a feature rich text widget.
The client-server communication already uses an optimized communication protocol based on text-deltas and it features a cancelation policy that will avoid any unnecessary processes. Even with large documents response time is very good.
Miro has written a more detailed post about this over here.
To try it out, just download (see below) and use the new “Xtext project wizard” to create a fresh Xtext language with a dedicated project for the web support.
Please tell us, what you would like to do with this. Bug reports and feature requests go here : bugs.eclipse.org
Other Themes In 2.9
Besides the web and IDEA support, we are working on making it even simpler to build Xtext projects. One goal for instance is to allow for xtext projects without any Eclipse dependency, such that you can just use the runtime and build and deploy it with Maven or Gradle. In addition we will again spend much time on improving the overall performance and bugfixes of course.
More updates soon
The 2.9 release is planned for autumn 2015 and shall come with production ready support for IDEA and Web. Until then we will likely have more beta releases, depending on demand and progress.
Here are the download links for the beta:
Ready to use eclipse distributions:
Eclipse update site : http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/
IDEA plug-in repository : http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta2/updatePlugins.xml