blob: 242adc87483e53261e2de50a18f2ec2cdf91c284 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Xtext - Language Engineering Framework</title>
<description>Xtext is a framework for development of programming languages and domain specific languages. It covers all aspects of a complete language infrastructure, from parsers, over linker, compiler or interpreter to fully-blown top-notch Eclipse IDE integration. It comes with great defaults for all these aspects which at the same time can be easily tailored to your individual needs.
</description>
<link>http://xtext.org/Xtext/</link>
<atom:link href="http://xtext.org/Xtext/feed.xml" rel="self" type="application/rss+xml"/>
<pubDate>Tue, 28 Aug 2018 04:42:51 -0400</pubDate>
<lastBuildDate>Tue, 28 Aug 2018 04:42:51 -0400</lastBuildDate>
<generator>Jekyll v2.5.3</generator>
<item>
<title>Xtext 2.14.0 Release Notes</title>
<description>&lt;p&gt;While the Xtext project has paid more attention on bug fixing for the past release, Xtext 2.14 is bringing a whole bunch of new features. This version is part of the Eclipse Photon (4.8) simultaneous release. An important focus was to keep up with the fast development pace of important technologies that Xtext is building on. Since its past release, Java 9 and 10 came out. Build technologies like Maven Tycho and Gradle were changed to support that, too. The Language Server Protocol is evolving rapidly. JUnit 5 is adopted by IDEs and build systems. And Xtext is now ready for all of them!&lt;/p&gt;
&lt;h2 id=&quot;java-9-and-10-support&quot;&gt;Java 9 and 10 Support&lt;/h2&gt;
&lt;p&gt;Xtext and Xtend 2.14 are able to compile with and against Java 9 &amp;amp; 10. Here are a few notes on the support&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is no native support for Java 9/10 module visibilities but we fall back to jdt/javac on that topic.&lt;/li&gt;
&lt;li&gt;A current Maven version is required (tested with 3.5)&lt;/li&gt;
&lt;li&gt;When using Gradle, version 4.7 is required at least. The wizard will create projects accordingly.&lt;/li&gt;
&lt;li&gt;Java 9 requires Tycho 1.1 or newer, Java 10 requires Tycho 1.2&lt;/li&gt;
&lt;li&gt;Java 9 requires Oxygen.1a at least, Java 10 requires Oxygen.3a. Eclipse Photon works fine for both.&lt;/li&gt;
&lt;li&gt;Java 10 requires the org.objectweb.asm library in version 6.1.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For upgrading existing project use the New Project Wizard to create a project with the desired settings and compare build relevant files (MANIFEST.MF, build.gradle, pom.xml, *.target) with the existing projects.&lt;/p&gt;
&lt;h2 id=&quot;junit-5-support&quot;&gt;JUnit 5 Support&lt;/h2&gt;
&lt;p&gt;Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.&lt;/p&gt;
&lt;p&gt;For new projects the project wizard’s advanced page allows to select the desired JUnit version.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_wizard_junit5.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Created test projects directly only depend on the JUnit 5 API artifact&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;org.junit.jupiter:junit-jupiter-api:5.0.0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Additional dependencies are configured by the JUnit Library container. This lowers the coupling to concrete JUnit versions and the test engine used. For example, Eclipse Photon is using JUnit 5.1, while Eclipse Oxygen is using JUnit 5.0. Furthermore, the execution of tests in build systems is using the test engines provided by the build system’s test plugins.&lt;/p&gt;
&lt;h2 id=&quot;new-grammar-annotations&quot;&gt;New Grammar Annotations&lt;/h2&gt;
&lt;p&gt;The Xtext Grammar language supports the following additional annotations for parser rules:&lt;/p&gt;
&lt;h3 id=&quot;deprecated&quot;&gt;@Deprecated&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_deprecated.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This annotation marks a rule to be deprecated. Issue markers with are produced where a deprecated rule is used. By default the severity of issue is &lt;em&gt;Warning&lt;/em&gt;. The severity level can be configured in the preferences. This feature will help you to do smooth langauage evolution of the time by informing your users about deprecated parts.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_preference.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;final&quot;&gt;@Final&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_final.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A rule marked with &lt;code&gt;@Final&lt;/code&gt; cannot be overridden.&lt;/p&gt;
&lt;h3 id=&quot;exported&quot;&gt;@Exported&lt;/h3&gt;
&lt;p&gt;As a default Xtext exports all elements to the index that have a name. For customizing this behaviour you need to create a custom IDefaultResourceDescriptionStrategy manually.&lt;br /&gt;
With &lt;code&gt;@Exported&lt;/code&gt; it can be customized on grammar level, which element types are exported to the index. The customization takes effect when at least one rule in a grammar is annotated with &lt;code&gt;@Exported&lt;/code&gt;. By doing that you can easily manage visibility of elements and safe memory.&lt;/p&gt;
&lt;h2 id=&quot;eclipse-integration&quot;&gt;Eclipse Integration&lt;/h2&gt;
&lt;h3 id=&quot;create-action-quickfix&quot;&gt;Create Action Quickfix&lt;/h3&gt;
&lt;p&gt;Rules that can be consumed without object instantiation usually require a &lt;em&gt;Create Action&lt;/em&gt;. A typical example is when a rule defines an optional assignment. Xtext reports this as a warning in the grammar file.&lt;/p&gt;
&lt;p&gt;For problems of this kind a new &lt;em&gt;quickfix&lt;/em&gt; has been added that inserts the &lt;em&gt;Create Action&lt;/em&gt; at the proper place of the parser rule.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_create-action.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;code-mining-support&quot;&gt;Code Mining Support&lt;/h3&gt;
&lt;p&gt;Eclipse Photon (4.8) adds a new API called &lt;em&gt;Code Mining&lt;/em&gt;. With it text editors can inline additional semantic information into the text, which is not part of the text itself. A useful example to leverage this is to display names of inferred types, parameter names of a called function etc.&lt;/p&gt;
&lt;p&gt;Xtext adds a new bundle &lt;code&gt;org.eclipse.xtext.ui.codemining&lt;/code&gt; which is offering an API for usage of Code Mining with Xtext. The code generator fragment &lt;code&gt;org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment&lt;/code&gt; can be added to the generator workflow to create a stub implementation and provide all dependencies and bindings for the use of this API.&lt;/p&gt;
&lt;p&gt;An example implementation has been added to the Domainmodel Example DSL. To learn more about the usage of this API install the example from the File menu and look up the &lt;code&gt;DomainmodelCodeMiningProvider&lt;/code&gt; class.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_domainmodel-codemining.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3 id=&quot;new-project-and-file-wizard&quot;&gt;New Project and File Wizard&lt;/h3&gt;
&lt;p&gt;With two simple switches you can turn on the generation of a New Project Wizard and a New File Wizard for your language.&lt;/p&gt;
&lt;p&gt;These wizards are based on flexible templates to generate one or many projects with any number of files. You can enable the generation from your .mwe2 file with two simple switches:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;language = StandardLanguage {
name = &quot;org.xtext.example.mydsl.MyDsl&quot;
fileExtensions = &quot;mydsl&quot;
fileWizard = {
generate = true
}
projectWizard = {
generate = true
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The wizard to create projects allows to select from a number of templates and creates one or, in certain situations helpful, even many projects.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_new-file-wizard.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The wizard to create files is more simple in its basic form and skips the template selection if there is only one file template.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In case there are many templates the wizard gets a second page to configure the parameter whereas on the first page a combo box to select the template appears.&lt;/p&gt;
&lt;p&gt;The UI for the parameters of the templates as well as the templates them self are defined in code with a concise API. You do not need to fiddle around with SWT widgets and get most UI stuff for free. The templates are generated in the UI project of your language. You can adapt the generated templates, add new ones or contribute new template providers through extension points.&lt;/p&gt;
&lt;p&gt;If you generate the wizards for an existing project the &lt;code&gt;plugin.xml&lt;/code&gt; is not regenerated to not risk loosing manual changes you might have applied. Instead a &lt;code&gt;plugin.xml_gen&lt;/code&gt; is created. You have to merge the generated extensions to your &lt;code&gt;plugin.xml&lt;/code&gt; manually.&lt;/p&gt;
&lt;h3 id=&quot;console-icon&quot;&gt;Console Icon&lt;/h3&gt;
&lt;p&gt;The Xtext icon has been added for the Xtext console:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_console-icon.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;language-server-support&quot;&gt;Language Server Support&lt;/h2&gt;
&lt;p&gt;Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Implementation of the Language Server Protocol 3.7.0&lt;/li&gt;
&lt;li&gt;Implementation of the VS Code Debug Protocol 1.25.0&lt;/li&gt;
&lt;li&gt;Support multiple local and remote services&lt;/li&gt;
&lt;li&gt;Improved error handling&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;emf-support&quot;&gt;EMF Support&lt;/h2&gt;
&lt;p&gt;With EMF 2.14 a new registry &lt;code&gt;EAnnotationValidator.Registry.INSTANCE&lt;/code&gt;, which had to be considered in Xtext’s testing support for resetting.&lt;/p&gt;
&lt;p&gt;EMF 2.8 &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=367569#c7&quot;&gt;introduced&lt;/a&gt; the concept &lt;code&gt;ResourceLocator&lt;/code&gt; in &lt;code&gt;ResourceSet&lt;/code&gt;s. Xtext’s specialized implementation &lt;code&gt;XtextResourceSet&lt;/code&gt; did not support that so far and has been extended now.&lt;/p&gt;
&lt;h2 id=&quot;change-serializer--rename-refactoring&quot;&gt;Change Serializer &amp;amp; Rename Refactoring&lt;/h2&gt;
&lt;p&gt;The past &lt;a href=&quot;/Xtext/releasenotes.html#/releasenotes/2017/10/20/version-2-13-0&quot;&gt;release 2.13&lt;/a&gt; introduced a new API for EMF Model Manipulation and an improved rename refactoring based on the new &lt;code&gt;IChangeSerializer&lt;/code&gt; API.&lt;/p&gt;
&lt;p&gt;These new features are still incubating. Several issues that were identified by the adoption of the features have been solved.&lt;/p&gt;
&lt;h2 id=&quot;performance&quot;&gt;Performance&lt;/h2&gt;
&lt;h3 id=&quot;output-configurations-cache&quot;&gt;Output Configurations Cache&lt;/h3&gt;
&lt;p&gt;A performance bottleneck was &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/535&quot;&gt;discovered&lt;/a&gt; in the access to &lt;code&gt;IOutputConfiguration&lt;/code&gt;s in builder participants. The problem depends on the amount of files produced by code generators.&lt;/p&gt;
&lt;p&gt;A cache was introduced in class &lt;code&gt;BuilderParticipant&lt;/code&gt; to solve the issue.&lt;/p&gt;
&lt;h3 id=&quot;semantic-highlighting&quot;&gt;Semantic Highlighting&lt;/h3&gt;
&lt;p&gt;Computation of semantic highlighting &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/347&quot;&gt;was performed twice&lt;/a&gt;. This was fixed and should improve editing experience especially for larger files with intensive use of semantic highlighting, for example like the Xtend language.&lt;/p&gt;
&lt;h3 id=&quot;queuedbuilddata&quot;&gt;QueuedBuildData&lt;/h3&gt;
&lt;p&gt;A bottleneck in class &lt;code&gt;QueuedBuildData&lt;/code&gt; has been &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/40&quot;&gt;found&lt;/a&gt; that affects the build time for a large number of resources. The build time has been improved for this scenario.&lt;/p&gt;
&lt;h2 id=&quot;execution-environment&quot;&gt;Execution Environment&lt;/h2&gt;
&lt;p&gt;Xtext 2.14 comes with the following requirements for the execution environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java: 1.8, 9 or 10&lt;/li&gt;
&lt;li&gt;Eclipse Luna (4.4) or newer&lt;/li&gt;
&lt;li&gt;EMF 2.10 or newer&lt;/li&gt;
&lt;li&gt;Guice 3.0&lt;/li&gt;
&lt;li&gt;Tycho 1.1, 1.2 (Java 10 or JUnit 5)&lt;/li&gt;
&lt;li&gt;JUnit 4.12 or 5.1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that bundle &lt;code&gt;org.eclipse.xtext.xbase.lib&lt;/code&gt; was compiled with Java 1.8 now, while being compatible to 1.6 in earlier versions.&lt;/p&gt;
&lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;
&lt;p&gt;More detailed information on some topics have been written in blog posts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/xtext-2.14-adds-support-for-junit-5&quot;&gt;“Xtext 2.14 adds support for JUnit 5”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/code-mining-support-in-xtext&quot;&gt;“Code Mining Support in Xtext”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/generating-a-new-project-wizard-with-xtext-2.14&quot;&gt;“Generating a new project wizard with Xtext 2.14”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/new-file-wizard-easy-to-generate-with-xtext-2.14&quot;&gt;“New File Wizard – easy to generate with Xtext 2.14”&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/de/new-project-wizard-einfach-mit-xtext-2-14-generieren&quot;&gt;“New Project Wizard: einfach mit Xtext 2.14 generieren”&lt;/a&gt; (German)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/de/new-file-wizard-einfach-mit-xtext-2.14-generieren&quot;&gt;“Erzeugen des New File Wizards”&lt;/a&gt; (German)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/lsp4j/blob/master/CHANGELOG.md&quot;&gt;LSP4J Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
&lt;p&gt;As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 60 Bugzilla tickets have made it into this release. For further details please refer to the following lists:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3ARelease_2.14+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3ARelease_2.14+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;classification=Modeling&amp;amp;classification=Tools&amp;amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;known_name=Xtext%202.14&amp;amp;list_id=16618269&amp;amp;product=TMF&amp;amp;product=Xtend&amp;amp;query_based_on=Xtext%202.14&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.14&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;Fixed Eclipse Bugzilla tickets&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Wed, 23 May 2018 00:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/releasenotes/2018/05/23/version-2-14-0.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2018/05/23/version-2-14-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.13.0 Release Notes</title>
<description>&lt;h2 id=&quot;language-server-support&quot;&gt;Language Server Support&lt;/h2&gt;
&lt;h3 id=&quot;eclipse-new-project-wizard-language-server-build&quot;&gt;Eclipse New Project Wizard: Language Server Build&lt;/h3&gt;
&lt;p&gt;The New Project Wizard allows now to build an executable distribution of language server. On the advanced page a new option was added which is enabled when a Build System was selected. The option allows the selection of a distribution type:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regular&lt;/strong&gt;: A batch script is created that is used to start the server. The DSL jars and all of its runtime dependencies are copied to the output folder.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fat Jar&lt;/strong&gt;: The language server is packaged in a single executable jar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Both Gradle and Maven are supported. When activated, the build script of the language’s Generic IDE project is extended and the language server is packaged to the project’s build&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_13_project-wizard-ls.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;eclipse-integration&quot;&gt;Eclipse Integration&lt;/h2&gt;
&lt;h3 id=&quot;configuration-error-detection&quot;&gt;Configuration Error Detection&lt;/h3&gt;
&lt;p&gt;Invalid combinations of bundles are a frequent source of errors. This can be caused by an invalid mixture of Xtext’s UI and runtime plugins, or by DSL plugins developed with a different version of Xtext than used in the environment where it fails.&lt;/p&gt;
&lt;p&gt;Although there can’t be done anything to get the plugins working on an invalid environment, the resulting failure messages were not good for the user, leaving an impression of an unstable framework.&lt;/p&gt;
&lt;p&gt;When running in an error during the initial creation of Guice injectors in the DSL’s UI or Xtext’s Shared UI bundle, the error is catched and an analysis of the runtime environment is included in the failure message. This allows better analysis of the root cause.&lt;/p&gt;
&lt;h3 id=&quot;multi-quickfixes&quot;&gt;Multi-Quickfixes&lt;/h3&gt;
&lt;p&gt;These are quickfixes that allow to be applied to multiple markers at once.&lt;/p&gt;
&lt;p&gt;TBD&lt;/p&gt;
&lt;h3 id=&quot;better-cancellation-in-refactorings&quot;&gt;Better Cancellation in Refactorings&lt;/h3&gt;
&lt;p&gt;You can how hit the cancel dialog in refactorings and it will actually cancel at the next opportunity and not at the end only.&lt;/p&gt;
&lt;h3 id=&quot;content-type-descriptor&quot;&gt;Content Type Descriptor&lt;/h3&gt;
&lt;p&gt;Xtext UI projects provide a Content Type Descriptor by contributing to the &lt;a href=&quot;https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm&quot;&gt;&lt;code&gt;org.eclipse.core.contenttype.contentTypes&lt;/code&gt; extension point&lt;/a&gt; to the &lt;code&gt;plugin.xml&lt;/code&gt; file. This is affecting performance on text searches in Eclipse, since Eclipse can decide that a DSL file has no binary content based on the content type’s base type. (&lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/379&quot;&gt;xtext-eclipse/issues/379&lt;/a&gt;)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;extension point=&quot;org.eclipse.core.contenttype.contentTypes&quot;&amp;gt;
&amp;lt;content-type
base-type=&quot;org.eclipse.core.runtime.text&quot;
file-extensions=&quot;mydsl&quot;
id=&quot;org.eclipse.xtext.mydsl.MyDSL.contenttype&quot;
name=&quot;MyDSL File&quot;
priority=&quot;normal&quot;&amp;gt;
&amp;lt;/content-type&amp;gt;
&amp;lt;/extension&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;new-api&quot;&gt;New API&lt;/h2&gt;
&lt;h3 id=&quot;emf-model-manipulation-api-incubating&quot;&gt;EMF Model Manipulation API (incubating)&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;IChangeSerializer&lt;/code&gt; is a new API to listen to changes that are made to the EMF model of an XtextResource and serialize them back to the document’s text. It has a number of benefits to the old &lt;code&gt;XtextDocument.modify()&lt;/code&gt; approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Direct integration with the formatter, such that changes are automatically nicely formatted.&lt;/li&gt;
&lt;li&gt;Minimum text region changes resulting in less noise.&lt;/li&gt;
&lt;li&gt;Many points to hook into, e.g. for automatic update of an import section.&lt;/li&gt;
&lt;li&gt;More ways to optimize for a specific language and to tune performance.&lt;/li&gt;
&lt;li&gt;Independence from Eclipse-UI concepts like the &lt;code&gt;Document&lt;/code&gt;. This makes it reusable in languages server implementations.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can use the &lt;code&gt;IChangeSerializer&lt;/code&gt; for refactorings, semantic quickfixes, code lens etc. It still has a few limitations, e.g. it does not work with derived state models, that’s why we keep it provisional for now.&lt;/p&gt;
&lt;p&gt;Nevertheless, we have added the following new features based on it:&lt;/p&gt;
&lt;h3 id=&quot;rename-participants-for-eclipse-file-operations&quot;&gt;Rename Participants for Eclipse File Operations&lt;/h3&gt;
&lt;p&gt;Some languages tie the model file name to the content, like the package declaration in Java. For such cases you might want to participate in operations on files or directories, like move, rename or paste, to adapt your models automatically. Based on the new &lt;code&gt;IChangeSerializer&lt;/code&gt; we have implemented some generic file refactoring participants. You will get notified of such changes to react appropriately by registering your own &lt;code&gt;IResourceRelocationStrategy&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;extension point=&quot;org.eclipse.xtext.ui.resourceRelocationStrategy&quot;&amp;gt;
&amp;lt;strategy class=&quot;mydsl.MydslExecutableExtensionFactory:mydsl.MydslResourceRelocationStrategy&quot;&amp;gt;
&amp;lt;/strategy&amp;gt;
&amp;lt;/extension&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;alternative-rename-refactoring-for-xtext&quot;&gt;Alternative Rename Refactoring for Xtext&lt;/h3&gt;
&lt;p&gt;By enabling &lt;code&gt;useChangeSerializer&lt;/code&gt; flag in the workflow of your language&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Workflow {
component = XtextGenerator {
...
language = StandardLanguage {
...
renameRefactoring = {
useChangeSerializer = true
...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;you will use an new, alternative rename refactoring for Eclipse based on the &lt;code&gt;IChangeSerializer&lt;/code&gt;. This flag will also generate the binding for the &lt;code&gt;IRenameService&lt;/code&gt; and thereby enable rename refactoring on your language server.&lt;/p&gt;
&lt;h3 id=&quot;xbase-library-orgeclipsextextxbaselib&quot;&gt;Xbase Library (&lt;code&gt;org.eclipse.xtext.xbase.lib&lt;/code&gt;)&lt;/h3&gt;
&lt;h4 id=&quot;no-arg-overloads-to-all-mutable-collection-literals&quot;&gt;No-arg overloads to all mutable collection literals&lt;/h4&gt;
&lt;p&gt;Class &lt;code&gt;CollectionLiterals&lt;/code&gt; was extended by no-arg methods for all mutable collection literals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;newArrayList()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newHashMap()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newHashSet()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newLinkedHashMap()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newLinkedHashSet()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newLinkedList()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Xtext’s code base was refactored to use these methods where appropriate. As a consequence Xtext requires at least version 2.13 of &lt;code&gt;org.eclipse.xtext.xbase.lib&lt;/code&gt;. Therefore bundle manifests were refactored to constraint the library bundle’s lower version. New projects will automatically add the version constraint to manifests.&lt;/p&gt;
&lt;h4 id=&quot;flatmap-extension-method&quot;&gt;flatMap extension method&lt;/h4&gt;
&lt;p&gt;A new convenience method &lt;code&gt;flatMap&lt;/code&gt; has been added to &lt;code&gt;IterableExtensions&lt;/code&gt; and &lt;code&gt;IteratorExtensions&lt;/code&gt;, which combines &lt;code&gt;map&lt;/code&gt; and &lt;code&gt;flatten&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@FinalFieldsConstructor
@Accessors
class Planet {
final String name
final List&amp;lt;Moon&amp;gt; moons
}
@FinalFieldsConstructor
@Accessors
class Moon {
final String name
}
class Planets {
def static void main (String[] args) {
val Iterable&amp;lt;Planet&amp;gt; planets = #[
new Planet(&quot;Earth&quot;, #[new Moon (&quot;Moon&quot;)]),
new Planet(&quot;Mars&quot;, #[new Moon (&quot;Phobos&quot;), new Moon(&quot;Deimos&quot;)])
]
val moonNames_old = planets.map[moons].flatten.map[name]
val moonNames_new = planets.flatMap[moons].map[name]
}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;tracing&quot;&gt;Tracing&lt;/h2&gt;
&lt;p&gt;Tracing can now be used for debugging in generated Java code as well. The &lt;code&gt;@Traced&lt;/code&gt; annotation now takes optionally a &lt;code&gt;useForDebugging=true&lt;/code&gt;. The &lt;code&gt;@TracedAccessors&lt;/code&gt; are now adds to the &lt;code&gt;._&amp;lt;feature&amp;gt;()&lt;/code&gt; extension method a &lt;code&gt;._&amp;lt;feature&amp;gt;(useForDebugging)&lt;/code&gt; extension method.&lt;/p&gt;
&lt;h2 id=&quot;refactoring&quot;&gt;Refactoring&lt;/h2&gt;
&lt;h3 id=&quot;jdt-dependency-reduction&quot;&gt;JDT Dependency Reduction&lt;/h3&gt;
&lt;p&gt;Xtext languages can be deployed in environments without JDT UI. In some use cases it was detected that this can still lead to runtime errors due to (&lt;code&gt;NoClassDefFoundError&lt;/code&gt;). Dependencies in the following bundles have been resolved:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.xtext.builder&lt;/code&gt; (&lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/386&quot;&gt;issue#386&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.eclipse.xtext.xbase.ui&lt;/code&gt; (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=509630&quot;&gt;bug#509630&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We reduced usage of internal API which is subject for removal in JDT. Since older Xtext versions rely on this API, the API is kept by the JDT team for backwards compatibility of Xtext. (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=525462&quot;&gt;bug#525462&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id=&quot;improved-support-for-indentation-based-languages&quot;&gt;Improved Support for Indentation Based Languages&lt;/h3&gt;
&lt;p&gt;Token placement for INDENT / DEDENT tokens have been improved. This improves content assist for indentation based languages. (&lt;a href=&quot;https://github.com/eclipse/xtext-core/pull/366&quot;&gt;issue#366&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id=&quot;new-generator-infrastructure&quot;&gt;New Generator Infrastructure&lt;/h3&gt;
&lt;p&gt;Xtext 2.9 introduced a &lt;a href=&quot;version-2-9-0&quot;&gt;new generator infrastructure&lt;/a&gt;. While new projects created with Xtext and the main languages in Xtext already used this generator, there were still some languages, especially test languages, that still used the deprecated old infrastructure. All languages are now migrated to the new generator.&lt;/p&gt;
&lt;h2 id=&quot;an-eye-on-quality&quot;&gt;An Eye on Quality&lt;/h2&gt;
&lt;p&gt;With every release we are working hard on fixing as many bugs as possible. Besides our Bugtrackers Eclipse Bugzilla and GitHub Issues the &lt;a href=&quot;https://www.codetrails.com/error-analytics/&quot;&gt;Automatic Error Reporting System&lt;/a&gt; at Eclipse (AERI) is an incredible valuable source of information for us. It uncovers real problems by real users, and has made error reporting to Eclipse a no-brainer.&lt;/p&gt;
&lt;p&gt;As Xtext is a complex framework with an incredible flexibility, much can go wrong. Often these errors indicate ways of usage which we could not predict, or they show problems in custom DSLs. Sometimes they uncover also errors in code that we use. We are actively visiting the reports we get into EARI, with a focus on frequently occuring events and new ones.&lt;/p&gt;
&lt;p&gt;The Xtext team is proud that this continuous effort finally pays off. For the first time ever, we had several weeks with no new problem report. And fighting against the existing issues no a clear burn-down curve (see the Incidents Timeline). From all problems reported to AERI, we have just ~12% open, and the most frequent and urgent ones are solved.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_13_aeri_problem_status.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;/Xtext/images/releasenotes/2_13_aeri_problem_resolution.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
&lt;img src=&quot;/Xtext/images/releasenotes/2_13_aeri_incidents_timeline.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;improved-developer-contribution-support&quot;&gt;Improved Developer Contribution Support&lt;/h2&gt;
&lt;p&gt;Setting up a developer workspace has never been so easy! We have reviewed and updated our Oomph Setup which allows you to create an Eclipse development environment for Xtext with a few clicks. Just get the &lt;a href=&quot;https://www.eclipse.org/downloads/&quot;&gt;Eclipse Installer&lt;/a&gt;, go to Advanced Mode and select the Xtext subprojects you are working with. Let the Installer do the rest of the work while getting a fresh coffee.&lt;/p&gt;
&lt;h3 id=&quot;execution-environment&quot;&gt;Execution Environment&lt;/h3&gt;
&lt;p&gt;Minimal requirements are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Java 8&lt;/li&gt;
&lt;li&gt;Eclipse Luna&lt;/li&gt;
&lt;li&gt;EMF 2.10&lt;/li&gt;
&lt;li&gt;Guice 3.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Xtext has been tested also on Eclipse Oxygen.1a and Eclipse Photon M2.&lt;/p&gt;
&lt;h2 id=&quot;some-words-on-java-9&quot;&gt;Some words on Java 9&lt;/h2&gt;
&lt;p&gt;Java 9 Support in Eclipse Oxygen 1a and Xtext 2.13 is not yet in a perfect state. To be able to run mwe workflows you need either to remove &lt;code&gt;org.objectweb.asm&lt;/code&gt; from the mwe classpath (adapting manifest or build.properties) or install ASM 6.0 from the latest Eclipse Orbit repositories. The Compilation of Xtext projects with Java 9 is terrible slow due to a know &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=526209&quot;&gt;bug&lt;/a&gt; in JDT. So using Xtext 2.13 and Java 9 in production should be considered thrice and is not recommended. Setting the compiler level to 1.8 mitigates the performance issue slightly.&lt;/p&gt;
&lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
&lt;p&gt;As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 60 Bugzilla tickets have made it into this release. For further details please refer to the following lists:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3ARelease_2.13+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3ARelease_2.13+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;classification=Modeling&amp;amp;classification=Tools&amp;amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;known_name=Xtext%202.13&amp;amp;list_id=16618269&amp;amp;product=TMF&amp;amp;product=Xtend&amp;amp;query_based_on=Xtext%202.13&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.13&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;Fixed Eclipse Bugzilla tickets&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Fri, 20 Oct 2017 00:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/releasenotes/2017/10/20/version-2-13-0.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2017/10/20/version-2-13-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.12.0 Release Notes</title>
<description>&lt;p&gt;Xtext 2.12.0 brings several bug fixes and a new API for tracing generated code.&lt;/p&gt;
&lt;h2 id=&quot;new-tracing-api-for-generators&quot;&gt;New Tracing API for Generators&lt;/h2&gt;
&lt;p&gt;The new API in the &lt;code&gt;org.eclipse.xtext.generator.trace&lt;/code&gt; package allows to generate text files along with trace files. These trace files can be used by generic UI such as the “Open Generated File” action as well as domain-specific features such as debugging. It’s very easy to add such tracing information to a code generator, e.g. with &lt;a href=&quot;https://www.eclipse.org/xtend/documentation/203_xtend_expressions.html#templates&quot;&gt;Xtend templates&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xtend&quot;&gt;class MyDslGenerator extends AbstractGenerator {
@TracedAccessors(MyDslFactory)
static class MyDslTraceExtensions {}
@Inject extension MyDslTraceExtensions
override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
val m = resource.contents.head as Model
fsa.generateTracedFile(&quot;foo/Bar.txt&quot;, m, &#39;&#39;&#39;
// generated
«FOR c : m.types»
«generateClass(c)»
«ENDFOR»
&#39;&#39;&#39;)
}
@Traced def generateClass(ClassDeclaration it) &#39;&#39;&#39;
class «_name» {
«FOR m : members»
«generateMember(m)»
«ENDFOR»
}
&#39;&#39;&#39;
@Traced def dispatch generateMember(Operation it) &#39;&#39;&#39;
«_name»(«FOR it : parameter»«_name» : «_type[name.name]»«ENDFOR») : «_type[name.name]»
&#39;&#39;&#39;
@Traced def dispatch generateMember(Property it) &#39;&#39;&#39;
«_name» : «_type[name.name]»
&#39;&#39;&#39;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here &lt;code&gt;_name&lt;/code&gt; and &lt;code&gt;_type&lt;/code&gt; are &lt;a href=&quot;https://www.eclipse.org/xtend/documentation/202_xtend_classes_members.html#extension-methods&quot;&gt;extension methods&lt;/a&gt; that are generated for the metamodel of the specific language. They generate text and trace it to the respective part of the DSL source. You can find the &lt;a href=&quot;https://github.com/TypeFox/tracing_codegen&quot;&gt;full example project on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;bug-lists&quot;&gt;Bug Lists&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3ARelease_2.12+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3ARelease_2.12+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Thu, 25 May 2017 04:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/releasenotes/2017/05/25/version-2-12-0.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2017/05/25/version-2-12-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.11.0 Release Notes</title>
<description>&lt;p&gt;Version 2.11.0 is the first release of Xtext after its big internal restructuring. The successful core of Xtext is used in many applications and projects around the world, as a result our main focus for 2.11 has been keeping the high quality and stability of the project while setting the course for a more sustainable future.&lt;/p&gt;
&lt;h2 id=&quot;restructuring-and-build&quot;&gt;Restructuring and Build&lt;/h2&gt;
&lt;p&gt;Xtext and Xtend used to be one big Git repository containing all sources for Eclipse, IDEA, Web integration etc. As of 2.11, we split that into multiple smaller repository, such that you can choose yourself which ones you need. These are&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-core&quot;&gt;xtext-core&lt;/a&gt;: The core framework, &lt;a href=&quot;https://github.com/Microsoft/vscode-languageserver-protocol&quot;&gt;Language Server&lt;/a&gt; support&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-lib&quot;&gt;xtext-lib&lt;/a&gt;: Libraries for &lt;a href=&quot;/Xtext/documentation/305_xbase.html&quot;&gt;Xbase&lt;/a&gt; and &lt;a href=&quot;http://www.xtend-lang.org&quot;&gt;Xtend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-extras&quot;&gt;xtext-extras&lt;/a&gt;: Additional editor-independent features, mostly Java support&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-eclipse&quot;&gt;xtext-eclipse&lt;/a&gt;: Plug-ins for &lt;a href=&quot;http://eclipse.org&quot;&gt;Eclipse&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-idea&quot;&gt;xtext-idea&lt;/a&gt;: Plug-ins for &lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;IntelliJ IDEA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-web&quot;&gt;xtext-web&lt;/a&gt;: Support for &lt;a href=&quot;http://eclipse.org/orion/&quot;&gt;Orion&lt;/a&gt;, &lt;a href=&quot;http://ace.c9.io&quot;&gt;Ace&lt;/a&gt; and &lt;a href=&quot;https://codemirror.net&quot;&gt;CodeMirror&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-maven&quot;&gt;xtext-maven&lt;/a&gt;: Support for &lt;a href=&quot;https://maven.apache.org&quot;&gt;Maven&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-xtend&quot;&gt;xtext-xtend&lt;/a&gt;: The &lt;a href=&quot;http://www.xtend-lang.org&quot;&gt;Xtend&lt;/a&gt; language&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-umbrella&quot;&gt;xtext-umbrella&lt;/a&gt;: Common Eclipse features and P2 update sites&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition to that, we use Gradle now to build all non-Eclipse artifacts and Maven/Tycho for the Eclipse plug-ins. We have also set up a very sophisticated staged Jenkins build that allows to build from individual branches as well.&lt;/p&gt;
&lt;h2 id=&quot;language-server-protocol&quot;&gt;Language Server Protocol&lt;/h2&gt;
&lt;p&gt;With 2.11 the Xtext project supports the &lt;a href=&quot;https://github.com/Microsoft/language-server-protocol&quot;&gt;language server protocol&lt;/a&gt; (LSP), which will allow users to host their languages in many different editors. So far LSP support for &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VS Code&lt;/a&gt;, the Eclipse IDE, &lt;a href=&quot;https://www.eclipse.org/che/&quot;&gt;Eclipse Che&lt;/a&gt;, &lt;a href=&quot;https://orionhub.org&quot;&gt;Eclipse Orion&lt;/a&gt;, and Emacs exists. Furthermore Microsoft’s Monaco editor provides support and can be integrated in any JavaScript application.&lt;/p&gt;
&lt;p&gt;The LSP support in Xtext v2.11 is marked as provisional to leave open the possibility to further enhance the architecture and API. That said it is known to be used in commercial products already. Also in the long term the LSP support might replace the native &lt;a href=&quot;/Xtext/documentation/330_web_support.html&quot;&gt;web-editor support&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_vscode_example.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;idea-support&quot;&gt;IDEA Support&lt;/h2&gt;
&lt;p&gt;The IntelliJ IDEA integration of Xtext is currently lacking contributors. Therefore, unfortunately, the IDEA support has &lt;strong&gt;not&lt;/strong&gt; been part of the 2.11 release. &lt;a href=&quot;https://github.com/eclipse/xtext-idea/issues&quot;&gt;Contributions are very welcome&lt;/a&gt;!&lt;/p&gt;
&lt;h2 id=&quot;important-changes&quot;&gt;Important Changes&lt;/h2&gt;
&lt;h3 id=&quot;execution-environment&quot;&gt;Execution Environment&lt;/h3&gt;
&lt;p&gt;All Xtext plug-ins now require JavaSE-1.8 as execution environment. The minimal supported target platform is Eclipse Luna.&lt;/p&gt;
&lt;h3 id=&quot;testing-projects&quot;&gt;Testing Projects&lt;/h3&gt;
&lt;p&gt;There are new projects &lt;code&gt;org.eclipse.xtext.testing&lt;/code&gt; for general testing utility and &lt;code&gt;org.eclipse.xtext.xbase.testing&lt;/code&gt; for testing Xbase languages. These projects contain the platform-independent code from &lt;code&gt;org.eclipse.xtext.junit4&lt;/code&gt; and &lt;code&gt;org.eclipse.xtext.xbase.junit&lt;/code&gt;, respectively. The classes that have been copied to the new &lt;code&gt;testing&lt;/code&gt; projects are now marked as deprecated in the old &lt;code&gt;junit&lt;/code&gt; projects, but those can still be used for testing Eclipse UI features.&lt;/p&gt;
&lt;h3 id=&quot;ide-guice-module&quot;&gt;IDE Guice Module&lt;/h3&gt;
&lt;p&gt;Xtext uses &lt;a href=&quot;/Xtext/documentation/302_configuration.html#dependency-injection&quot;&gt;dependency injection with Guice&lt;/a&gt; for language-specific configuration. There are separated hierarchies of Guice modules that aim at different integration platforms: &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java&quot;&gt;Runtime&lt;/a&gt; (core services used by all language integrations), &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/DefaultUiModule.java&quot;&gt;Eclipse&lt;/a&gt;, &lt;a href=&quot;https://github.com/eclipse/xtext-idea/blob/master/org.eclipse.xtext.idea/src/org/eclipse/xtext/idea/DefaultIdeaModule.xtend&quot;&gt;IDEA&lt;/a&gt;, and &lt;a href=&quot;https://github.com/eclipse/xtext-web/blob/master/org.eclipse.xtext.web/src/main/java/org/eclipse/xtext/web/server/DefaultWebModule.xtend&quot;&gt;Web&lt;/a&gt;. The 2.11 release introduces a new &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/DefaultIdeModule.xtend&quot;&gt;IDE&lt;/a&gt; module hierarchy, which is used for generic editor and IDE features. This new module is employed by the &lt;a href=&quot;/Xtext/documentation/330_web_support.html&quot;&gt;web-editor support&lt;/a&gt; and the LSP support, but not by the Eclipse and IDEA integrations.&lt;/p&gt;
&lt;p&gt;The new IDE module brings reusability of many language-specific services, but the price for this is some API breakage. If you are already using the web-editor support, you’ll need to make a few changes to your language configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Remove constructors from &lt;code&gt;&amp;lt;Language Name&amp;gt;WebModule&lt;/code&gt;. ExecutorServices are now managed by the &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/ExecutorServiceProvider.xtend&quot;&gt;ExecutorServiceProvider&lt;/a&gt; and disposed by the &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.util/src/org/eclipse/xtext/util/DisposableRegistry.xtend&quot;&gt;DisposableRegistry&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Move custom bindings for generic IDE services from &lt;code&gt;&amp;lt;Language Name&amp;gt;WebModule&lt;/code&gt; to the new &lt;code&gt;&amp;lt;Language Name&amp;gt;IdeModule&lt;/code&gt; (e.g. content assist).&lt;/li&gt;
&lt;li&gt;Fix &lt;code&gt;&amp;lt;Language Name&amp;gt;WebSetup&lt;/code&gt; and &lt;code&gt;&amp;lt;Language Name&amp;gt;Servlet&lt;/code&gt;; if unsure how to do that, delete them, re-run the language generator workflow, and reapply any customizations you made.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;xbase-features&quot;&gt;Xbase Features&lt;/h2&gt;
&lt;h3 id=&quot;improved-xbase-compiler&quot;&gt;Improved Xbase Compiler&lt;/h3&gt;
&lt;p&gt;The Java code produced by the Xbase compiler is now &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072&quot;&gt;less verbose and more readable&lt;/a&gt;. For many situations Xbase does not produce synthetic variables anymore.&lt;/p&gt;
&lt;p&gt;For &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=501975&quot;&gt;switch statements on Strings&lt;/a&gt; an additional null guard is produced. This lead to NPEs when a null argument was passed to the switch statement.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;A for-loop over an array resulted in uncompilable Java code. This has been &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=440006&quot;&gt;fixed&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;comparison-with-null&quot;&gt;Comparison with null&lt;/h3&gt;
&lt;p&gt;For comparison expressions with &lt;code&gt;null&lt;/code&gt; as argument it is more efficient to use the triple (not) equals operator &lt;code&gt;===&lt;/code&gt; and &lt;code&gt;!==&lt;/code&gt; instead of &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;!=&lt;/code&gt;. While the “normal” operators will result in a call of &lt;code&gt;Objects.equal&lt;/code&gt;, the triple equals operator can perform a direct comparison.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;For these situations &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=401012&quot;&gt;a warning is produced&lt;/a&gt; and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=403018&quot;&gt;a quickfix is offered&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;xtext-project-wizard&quot;&gt;Xtext Project Wizard&lt;/h2&gt;
&lt;h3 id=&quot;usability&quot;&gt;Usability&lt;/h3&gt;
&lt;p&gt;We have examined the user experience with the New Xtext Project wizard and improved it with the input we gained from users. It was possible to enter invalid values for &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380&quot;&gt;project names&lt;/a&gt; and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380&quot;&gt;file extensions&lt;/a&gt;, this is now checked.&lt;/p&gt;
&lt;p&gt;An usability test of the advanced configuration page revealed that especially less experienced users could had &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/119&quot;&gt;issues with the dependencies between options&lt;/a&gt;. From different proposals it turned out best from the user’s perspective if mandatory options are automatically selected and disable. Further an information message is presented to the user about this action. The ‘Generic IDE Support’ option gets an additional information hover.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_project-wizard-autoselect.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The wizard’s text messages have been revised and &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/pull/157&quot;&gt;made consistent&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;line-delimiter&quot;&gt;Line Delimiter&lt;/h3&gt;
&lt;p&gt;The Xtext project wizard now &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/101&quot;&gt;considers the workspace default line delimiter&lt;/a&gt; and configures the generated MWE2 workflow accordingly. As a result the artifacts produced by the Xtext generator will use the same line delimiter explicitly.&lt;/p&gt;
&lt;h3 id=&quot;tycho-build-configuration&quot;&gt;Tycho Build Configuration&lt;/h3&gt;
&lt;p&gt;For projects that are created with Eclipse plug-in and Maven as build system, the generated target definition is upgraded to &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/79&quot;&gt;use the Eclipse Neon repository&lt;/a&gt;. Eclipse Tycho is &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/76&quot;&gt;configured with version 0.25.0&lt;/a&gt; now.&lt;/p&gt;
&lt;h2 id=&quot;example-projects&quot;&gt;Example Projects&lt;/h2&gt;
&lt;p&gt;The provided example projects have been revised and use the new generator workflow, new project structure and new testing modules.&lt;/p&gt;
&lt;h2 id=&quot;deprecated-components&quot;&gt;Deprecated Components&lt;/h2&gt;
&lt;h3 id=&quot;old-xtext-generator&quot;&gt;Old Xtext Generator&lt;/h3&gt;
&lt;p&gt;With Xtext 2.9 a &lt;a href=&quot;/Xtext/releasenotes.html#/releasenotes/2015/11/16/version-2-9-0&quot;&gt;new generator infrastructure was introduced&lt;/a&gt;. In favor of this new generator &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/58&quot;&gt;the old generator has been deprecated&lt;/a&gt;. Bugfixes will be done primarily for the new generator and most of them will not be backported, thus it is highly recommended to migrate your languages’ &lt;code&gt;.mwe2&lt;/code&gt; workflows to use the new &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend&quot;&gt;&lt;code&gt;org.eclipse.xtext.xtext.XtextGenerator&lt;/code&gt;&lt;/a&gt; component.&lt;/p&gt;
&lt;h3 id=&quot;running-the-language-generator-from-maven&quot;&gt;Running the Language Generator from Maven&lt;/h3&gt;
&lt;p&gt;The Maven POM module &lt;a href=&quot;http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/&quot;&gt;org.eclipse.xtext.xtext&lt;/a&gt;, which has been deprecated since 2015, is no longer published. If you use the old generator component, you should replace the &lt;code&gt;org.eclipse.xtext.xtext&lt;/code&gt; dependency according to the &lt;a href=&quot;http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/2.10.0/org.eclipse.xtext.xtext-2.10.0.pom&quot;&gt;dependencies of that module&lt;/a&gt;. The new generator component requires much fewer dependencies; a suitable configuration for it can be obtained by creating a new Maven project with the Xtext project wizard.&lt;/p&gt;
&lt;h2 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h2&gt;
&lt;h3 id=&quot;closed-memory-leaks&quot;&gt;Closed Memory Leaks&lt;/h3&gt;
&lt;p&gt;The memory leak affected editors and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=493784&quot;&gt;downgraded performance while editing&lt;/a&gt; resources for which JVM types are inferred (including Xtend).&lt;/p&gt;
&lt;p&gt;A second leak affected the &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=479328&quot;&gt;Syntax Graph View&lt;/a&gt; and slowed down the IDE.&lt;/p&gt;
&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;
&lt;p&gt;The Serializer was &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/17&quot;&gt;performing poor&lt;/a&gt; for certain grammars. This has been fixed.&lt;/p&gt;
&lt;h3 id=&quot;bug-lists&quot;&gt;Bug Lists&lt;/h3&gt;
&lt;p&gt;In addition to the restructuring and the LSP support many bugs have been fixed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;chfield=resolution&amp;amp;chfieldfrom=2016-06-22&amp;amp;chfieldto=2017-01-24&amp;amp;classification=Modeling&amp;amp;classification=Tools&amp;amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;known_name=Xtext%202.11&amp;amp;list_id=15601548&amp;amp;product=TMF&amp;amp;product=Xtend&amp;amp;query_based_on=Xtext%202.11&amp;amp;query_format=advanced&amp;amp;resolution=FIXED&quot;&gt;Fixed Eclipse Bugzilla tickets&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Wed, 01 Feb 2017 03:00:00 -0500</pubDate>
<link>http://xtext.org/Xtext/releasenotes/2017/02/01/version-2-11-0.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2017/02/01/version-2-11-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.10.0 Release Notes</title>
<description>&lt;p&gt;This is a bugfix release. &lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;j1=OR&amp;amp;list_id=15981214&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.10&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;Here&lt;/a&gt; is the list of the fixed bugs.&lt;/p&gt;
</description>
<pubDate>Wed, 25 May 2016 04:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/releasenotes/2016/05/25/version-2-10-0.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2016/05/25/version-2-10-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.9.0 Release Notes</title>
<description>&lt;p&gt;Version 2.9.0 is the first release of Xtext to ship with support for IntelliJ and the Web. Additionally, the “New Project Wizard” does now offer to create Maven or Gradle build support for your new project. Advanced uses may appreciate two new features in the Xtext grammar language.&lt;/p&gt;
&lt;p&gt;The release ships with over 240 bugfixes and enhancements. The full bugzilla log can be found &lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;j1=OR&amp;amp;list_id=11172029&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.9&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following features have been added in particular.&lt;/p&gt;
&lt;h2 id=&quot;develop-your-xtext-language-in-intellij-idea&quot;&gt;Develop your Xtext Language in IntelliJ IDEA&lt;/h2&gt;
&lt;p&gt;Xtext not only lets you develop an IDEA plug-in for your language but you can also do the language development itself entirely within Jetbrains popular IDE. &lt;br /&gt;
Check out &lt;a href=&quot;http://blogs.itemis.com/xtext/get-started-with-xtext-and-intellij-idea-in-5-minutes&quot;&gt;this tutorial&lt;/a&gt; to learn how this works.&lt;/p&gt;
&lt;h2 id=&quot;run-your-xtext-smart-editor-in-the-web&quot;&gt;Run your Xtext Smart Editor in the Web&lt;/h2&gt;
&lt;p&gt;With Xtext you can now also have rich text editors for you language in the Web.&lt;br /&gt;
With Version 2.9.0 we already support three different javascript editor frameworks. For more details read the corresponding &lt;a href=&quot;https://www.eclipse.org/Xtext/documentation/310_web_integration.html&quot;&gt;section in the documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;new-xtext-project-wizard&quot;&gt;New Xtext Project Wizard&lt;/h2&gt;
&lt;p&gt;A new wizard to produce a readily configured Xtext project has been developed. It is used in both IntelliJ and Eclipse and allows the user to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;decide which target editors your want (Eclipse, Web, IntelliJ)&lt;/li&gt;
&lt;li&gt;what build system you prefer (Maven or Gradle)&lt;/li&gt;
&lt;li&gt;tell the project layout. I.e. whether you want Maven-style src/main/java or the standard src/ folder scheme.&lt;/li&gt;
&lt;li&gt;and whether you want testing support&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;new-xtext-code-generator&quot;&gt;New Xtext Code Generator&lt;/h2&gt;
&lt;p&gt;We have entirely rewritten the code generator that produces the various artifacts from grammars. It is now simpler to configure and at the same time supports the various new options, the new Xtext wizard provides.&lt;/p&gt;
&lt;h2 id=&quot;enhanced-gradle-and-maven-support&quot;&gt;Enhanced Gradle and Maven Support&lt;/h2&gt;
&lt;p&gt;The Maven and Gradle plugins have been overhauled and improved. Additionally we added full support to run, build and test IntelliJ IDEA plugins from Gradle.&lt;/p&gt;
&lt;h2 id=&quot;incremental-standalonebuilder&quot;&gt;Incremental Standalonebuilder&lt;/h2&gt;
&lt;p&gt;The Eclipse builder always worked incrementally. We have now written one that is Eclipse-independent and is used from within IntelliJ as well as a Gradle Deamon.&lt;/p&gt;
&lt;h2 id=&quot;grammar-language-enhancements&quot;&gt;Grammar Language Enhancements&lt;/h2&gt;
&lt;p&gt;New features in the grammar language allow to reduce duplicate grammar information. Fragments are a way to inline similar productions in different rules, while parameters can be used to call turn off parts of a production. More details can be found &lt;a href=&quot;http://zarnekow.blogspot.de/2015/10/the-xtext-grammar-learned-new-tricks.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
</description>
<pubDate>Mon, 16 Nov 2015 03:00:00 -0500</pubDate>
<link>http://xtext.org/Xtext/releasenotes/2015/11/16/version-2-9-0.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2015/11/16/version-2-9-0.html</guid>
<category>releasenotes</category>
</item>
<item>
<title>Xtext 2.9 Release Candidate</title>
<description>&lt;p&gt;A release candidate of the upcoming version of Xtext can now be tried and tested. &lt;br /&gt;
The Eclipse plugins are available through the milestone update site:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The IntelliJ IDEA Plugins are available through this repository URL:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.rc1/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.rc1/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You need to add that URL as a repository in IDEA and choose all three plugins (org.eclipse.xtext, org.eclipse.xtext.xtext and org.eclipse.xtend),&lt;br /&gt;
because IDEA doesn’t pull-in dependencies automatically.&lt;/p&gt;
&lt;h3 id=&quot;when-is-the-release&quot;&gt;When Is The Release?&lt;/h3&gt;
&lt;p&gt;If everything goes smoothly and noone reveals major issues in this release candidate (please try hard!), &lt;br /&gt;
we hope to get out the release on &lt;em&gt;December 1st&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id=&quot;whats-new&quot;&gt;What’s new?&lt;/h3&gt;
&lt;h4 id=&quot;intellij-idea-as-an-alternative-to-eclipse&quot;&gt;IntelliJ IDEA As An Alternative To Eclipse&lt;/h4&gt;
&lt;p&gt;In addition to the existing Eclipse integration, it is now possible to design languages entirely in IntelliJ IDEA, as well.&lt;br /&gt;
Languages developed in Eclipse can target all available platforms (Eclipse, IntelliJ IDEA (new), Web editors (new)) while when&lt;br /&gt;
working in IDEA it is not possible to develop an Eclipse plug-in for you language. IDEA is just not so well suited for Eclipse Plug-in development.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Also note: This doesn’t mean we are dropping Eclipse support, nor are we going to think of that any time soon!&lt;/em&gt;&lt;/p&gt;
&lt;h4 id=&quot;headless-builds-for-xtext-projects&quot;&gt;Headless Builds For Xtext Projects&lt;/h4&gt;
&lt;p&gt;No matter what IDE you choose for development, or what target platforms for your language you want you’ll get a fully working build based on Maven and/or Gradle.&lt;br /&gt;
So your Xtext projects can be built and published in any headless Java environment. That’s why one essentially really doesn’t need a particular&lt;br /&gt;
tool to develop Xtext languages anymore. That said, it’s recommended to use them anyway :).&lt;/p&gt;
&lt;h4 id=&quot;new-project-wizard&quot;&gt;New Project Wizard&lt;/h4&gt;
&lt;p&gt;The new wizard runs in both Eclipse and IntelliJ IDEA and lets you choose, whether you want to have &lt;br /&gt;
editor support at all (yes you can just focus on the compiler) and what build-systems you prefer.&lt;/p&gt;
&lt;h4 id=&quot;web-support&quot;&gt;Web Support&lt;/h4&gt;
&lt;p&gt;One of two new target platforms is web editor support for Xtext languages. With Eclipse Orion, Ace, and Code Mirror, we already support three different JS editors.&lt;br /&gt;
Each with a slightly different set of features and requirements. Check out &lt;a href=&quot;http://spoenemann.blogspot.de/2015/05/editing-dsls-in-web-browser.html&quot;&gt;Miro’s blog post&lt;/a&gt; on how to give it a spin.&lt;/p&gt;
&lt;h4 id=&quot;language-editors-for-intellij-idea&quot;&gt;Language Editors for IntelliJ IDEA&lt;/h4&gt;
&lt;p&gt;The other new editor target platform is IntelliJ IDEA. We even developed a &lt;a href=&quot;https://github.com/xtext/xtext-gradle-plugin/tree/master/xtext-idea-gradle-plugin&quot;&gt;full gradle integration&lt;/a&gt; to build, test and run&lt;br /&gt;
the developed IDEA plugins.&lt;/p&gt;
&lt;h4 id=&quot;all-new-code-generator&quot;&gt;All New Code Generator&lt;/h4&gt;
&lt;p&gt;We finally managed to rewrite the old Xtext code generator entirely in Xtend.&lt;br /&gt;
It’s now much simpler, faster and more convenient to use and more fun to maintain :).&lt;/p&gt;
&lt;h4 id=&quot;new-grammar-language-features&quot;&gt;New Grammar Language Features&lt;/h4&gt;
&lt;p&gt;The Xtext Grammar Language got some new features, to reduce redundancy in more complex grammars such as an ECMAScript 6 IDE&lt;br /&gt;
we help a customer with. &lt;a href=&quot;http://zarnekow.blogspot.de&quot;&gt;Sebastian has written&lt;/a&gt; about some of them.&lt;/p&gt;
&lt;h4 id=&quot;many-more-fixes-and-improvements&quot;&gt;Many More Fixes And Improvements&lt;/h4&gt;
&lt;p&gt;As if that wasn’t enough new stuff, we of course have also more than 200 issues on the go.&lt;br /&gt;
The &lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;j1=OR&amp;amp;list_id=13155507&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.9&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;detailed list&lt;/a&gt; can be found in our bug tracker.&lt;/p&gt;
</description>
<pubDate>Wed, 11 Nov 2015 00:00:00 -0500</pubDate>
<link>http://xtext.org/Xtext/news/2015/11/11/Xtext-2.9-RC.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/news/2015/11/11/Xtext-2.9-RC.html</guid>
<category>news</category>
</item>
<item>
<title>Xtext in IntelliJ IDEA - Preview</title>
<description>&lt;p&gt;Today we’ve released a preview version for the upcoming IntelliJ IDEA support of Xtext. &lt;br /&gt;
With this it is now possible to &lt;em&gt;develop Xtext languages entirely in IDEA&lt;/em&gt; and due to the cool Gradle support in any other environment, too.&lt;/p&gt;
&lt;p&gt;The preview plugins for IntelliJ IDEA can be installed from the following repository location:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You need to install all three plugins from this repository into the latest &lt;a href=&quot;https://www.jetbrains.com/idea/nextversion/&quot;&gt;IDEA 15 Preview&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There is a &lt;a href=&quot;https://player.vimeo.com/video/141201249&quot;&gt;screencast on vimeo&lt;/a&gt; that shows what Xtext in IntellijJ IDEA looks like.&lt;/p&gt;
&lt;p&gt;Please try it out and provide feedback through bugzilla or elsewhere.&lt;/p&gt;
</description>
<pubDate>Fri, 02 Oct 2015 00:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/news/2015/10/02/Xtext-2.9-preview.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/news/2015/10/02/Xtext-2.9-preview.html</guid>
<category>news</category>
</item>
<item>
<title>Xtext 2.9 Beta</title>
<description>&lt;p&gt;(for download instructions, &lt;a href=&quot;#download-links&quot;&gt;see below&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The main theme of our ongoing work in Xtext &amp;amp; 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.&lt;/p&gt;
&lt;p&gt;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:&lt;/p&gt;
&lt;h3 id=&quot;intellij-idea-support&quot;&gt;IntelliJ IDEA Support&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Stefan has written up more infos about the IntellIJ IDEA part &lt;a href=&quot;http://oehme.github.io/2015/05/22/xtext-intellij-beta.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&quot;weborion-support&quot;&gt;Web/Orion Support&lt;/h3&gt;
&lt;p&gt;The other part we wanted to share and get feedback on, is the early state of our web support. Same story: &lt;b&gt;don’t use it in production&lt;/b&gt;! 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Miro has written a more detailed post about this over &lt;a href=&quot;http://spoenemann.blogspot.de/2015/05/editing-dsls-in-web-browser.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/Xtext/images/news/xtext-2.9-wizard.png&quot; alt=&quot;the new wizard&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Please tell us, what you would like to do with this. Bug reports and feature requests go here : &lt;a href=&quot;https://bugs.eclipse.org/bugs/enter_bug.cgi?product=TMF&amp;amp;component=Xtext&quot;&gt;bugs.eclipse.org&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;other-themes-in-29&quot;&gt;Other Themes In 2.9&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id=&quot;more-updates-soon&quot;&gt;More updates soon&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h3 id=&quot;download-links&quot;&gt;Download Links&lt;/h3&gt;
&lt;p&gt;Here are the download links for the beta:&lt;/p&gt;
&lt;p&gt;Ready to use eclipse distributions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-win32-x86_64.zip&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-win32-x86_64.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-macosx-cocoa-x86_64.tar.gz&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-macosx-cocoa-x86_64.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-linux-gtk-x86_64.tar.gz&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-linux-gtk-x86_64.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-win32.zip&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-win32.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-linux-gtk.tar.gz&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-linux-gtk.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eclipse update site : &lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/]&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/&lt;/a&gt;&lt;br /&gt;
IDEA plug-in repository : &lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Fri, 22 May 2015 00:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/news/2015/05/22/Xtext-2.9-beta.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/news/2015/05/22/Xtext-2.9-beta.html</guid>
<category>news</category>
</item>
<item>
<title>XtextCON 2015 - Final Program Online</title>
<description>&lt;p&gt;We are happy to announce the final program for XtextCON 2015. The conference now features 34 sessions with 27 speakers from different countries. Here is an excerpt of lately added sessions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Oomph, Eclipse the Way You Want It&lt;/em&gt; (Ed Merks, Eike Stepper),&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Xtext editors in JavaFX applications&lt;/em&gt; (Tom Schindl),&lt;/li&gt;
&lt;li&gt;&lt;em&gt;The Future of Xtext&lt;/em&gt; (Sven Efftinge, Sebastian Zarnekow)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The conference also covers graphical diagramming topics, such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Enhancing Graphical Editors with Xtext&lt;/em&gt; (Miro Spönemann),&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Lightweight Diagrams for Your DSLs&lt;/em&gt; (Christian Schneider),&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Graphical Views with FXDiagram&lt;/em&gt; (Dr. Jan Köhnlein)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In addition to those technical sessions, there will be case studies from different industries, e.g.:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Model based migration of legacy software&lt;/em&gt; (Arjan Mooij),&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Sustainable Service Design through Xtext&lt;/em&gt; (Dr. Michael Bischoff),&lt;/li&gt;
&lt;li&gt;&lt;em&gt;EAI and Xtext DSLs&lt;/em&gt; (André Lehner, Dietmar Stoll)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is much more to discover &lt;a href=&quot;http://xtextcon.org&quot;&gt;on the website&lt;/a&gt;. And don’t forget to register!&lt;/p&gt;
&lt;h2 id=&quot;xtext-clinic&quot;&gt;Xtext Clinic&lt;/h2&gt;
&lt;p&gt;In addition to the conference program, the Xtext committers will again run the Xtext Clinic. This is an offer to the attendees to make an appointment for a one hour session, where individual Xtext-related problems and challenges can be discussed and solved. The clinic has been utilised a lot last year with very positive feedback. &lt;br /&gt;
So in case you are going, don’t hesitate and make an appointment!&lt;/p&gt;
&lt;p&gt;Hope to see you in May!&lt;/p&gt;
</description>
<pubDate>Tue, 31 Mar 2015 00:00:00 -0400</pubDate>
<link>http://xtext.org/Xtext/news/2015/03/31/XtextCON.html</link>
<guid isPermaLink="true">http://xtext.org/Xtext/news/2015/03/31/XtextCON.html</guid>
<category>news</category>
</item>
</channel>
</rss>