blob: caff078aa50adc7328cf8db83c96f818a9eb7ee6 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Xtext - Release Notes</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description"
content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
<meta name="author" content="Sven Efftinge">
<meta name="author" content="Miro Spoenemann">
<!-- styles -->
<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="/Xtext/images/favicon.png">
<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
<!-- cover flow -->
<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
<!--[if lt IE 9]>
<link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
<![endif]-->
<!-- BEGIN Cookie Consent
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
<script>
window.addEventListener("load", function(){
window.cookieconsent.initialise({
"palette": {
"popup": {
"background": "#000"
},
"button": {
"background": "#f1d600"
}
},
"theme": "edgeless",
"type": "opt-in",
onInitialise: function (status) {
var type = this.options.type;
var didConsent = this.hasConsented();
if (type == 'opt-in' && didConsent) {
// TODO: enable cookies
}
if (type == 'opt-out' && !didConsent) {
// TODO: disable cookies
}
},
onStatusChange: function(status, chosenBefore) {
var type = this.options.type;
var didConsent = this.hasConsented();
if (type == 'opt-in' && didConsent) {
// TODO: enable cookies
}
if (type == 'opt-out' && !didConsent) {
// TODO: disable cookies
}
},
onRevokeChoice: function() {
var type = this.options.type;
if (type == 'opt-in') {
// TODO: disable cookies
}
if (type == 'opt-out') {
// TODO: enable cookies
}
},
"content": {
"href": "http://www.eclipse.org/legal/privacy.php"
}
})});
</script>
END Cookie Consent -->
</head>
<body>
<header class="site-header">
<!-- Navbar -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse"
data-target=".nav-collapse"> <span class="icon-bar"></span> <span
class="icon-bar"></span> <span class="icon-bar"></span>
</a> <a class="brand" href="/Xtext/index.html"></a>
<div class="nav-collapse collapse" style="height: 0px;">
<ul class="nav">
<!--li ><a href="/Xtext/news.html">News</a></li-->
<li ><a href="/Xtext/download.html">Download</a></li>
<li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
<li ><a href="/Xtext/community.html">Community</a></li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
<li><a href="https://www.typefox.io/language-engineering/" target="_blank">TypeFox</a></li>
</ul>
</li>
<li ><a href="http://xtend-lang.org">Xtend</a></li>
</ul>
<!--div class="nav pull-right">
<li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
</div-->
</div>
<!--/.nav-collapse -->
</div>
</div>
</div>
<!-- Navbar End -->
</header>
<div id="page">
<div class="inner">
<div class="container">
<br/>
<div>
<h3>Table of Contents</h3>
<ul>
<li><p><a href="#/releasenotes/2021/03/02/version-2-25-0">Xtext 2.25.0 Release Notes &mdash; Mar 2, 2021</a></p>
<li><p><a href="#/releasenotes/2020/12/01/version-2-24-0">Xtext 2.24.0 Release Notes &mdash; Dec 1, 2020</a></p>
<li><p><a href="#/releasenotes/2020/09/01/version-2-23-0">Xtext 2.23.0 Release Notes &mdash; Sep 1, 2020</a></p>
<li><p><a href="#/releasenotes/2020/06/02/version-2-22-0">Xtext 2.22.0 Release Notes &mdash; Jun 2, 2020</a></p>
<li><p><a href="#/releasenotes/2020/03/03/version-2-21-0">Xtext 2.21.0 Release Notes &mdash; Mar 3, 2020</a></p>
<li><p><a href="#/releasenotes/2019/12/03/version-2-20-0">Xtext 2.20.0 Release Notes &mdash; Dec 3, 2019</a></p>
<li><p><a href="#/releasenotes/2019/09/03/version-2-19-0">Xtext 2.19.0 Release Notes &mdash; Sep 3, 2019</a></p>
<li><p><a href="#/releasenotes/2019/06/04/version-2-18-0">Xtext 2.18.0 Release Notes &mdash; Jun 4, 2019</a></p>
<li><p><a href="#/releasenotes/2019/04/03/version-2-17-1">Xtext 2.17.1 Release Notes &mdash; Apr 3, 2019</a></p>
<li><p><a href="#/releasenotes/2019/03/05/version-2-17-0">Xtext 2.17.0 Release Notes &mdash; Mar 5, 2019</a></p>
</ul>
</div>
<hr/>
<section id="/releasenotes/2021/03/02/version-2-25-0">
<h1>Xtext 2.25.0 Release Notes<small>&nbsp;&nbsp;Mar 2, 2021</small></h1>
<br/>
<p>Xtext 2.25.0 is a maintenance release.</p>
<h2 id="call-to-action-secure-the-future-maintenance-of-xtext">Call to Action: Secure the future maintenance of Xtext</h2>
<p>As you might have recognized, the number of people contributing to Xtext on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext is at risk, at least in the current form and as part of the Eclipse Simrel. If you care, please join the discussion in <a href="https://github.com/eclipse/xtext/issues/1721">https://github.com/eclipse/xtext/issues/1721</a>.</p>
<h2 id="documentation">Documentation</h2>
<p>The <a href="https://www.eclipse.org/Xtext/documentation/340_lsp_support.html">LSP Support</a> section has been added to the Xtext documentation.</p>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>MWE(2) was updated to 2.12.1/1.6.1.</li>
<li>Xtext now uses Guava 30.1, ASM 9.1 and GSON 2.8.6.</li>
</ul>
<h2 id="bugfixes">Bugfixes</h2>
<ul>
<li><a href="https://github.com/eclipse/xtext-core/issues/1648">xtext-core#1648</a>: A regression in JUnit 5 API was fixed. It should work well again.</li>
<li><a href="https://github.com/eclipse/xtext-core/issues/1655">xtext-core#1655</a>: The ANTLR option <code>k</code> in the workflow works now as expected.</li>
<li><code>XbaseInterpreter</code> now correctly handles the <code>return;</code> statement.</li>
</ul>
<h2 id="enhancements">Enhancements</h2>
<ul>
<li>The <code>Formatter2</code> is now flagged as API.</li>
<li>The Java API for <code>Formatter2</code> learned a new, more fancy syntax. e.g. instead of <code>it -&gt; it.noSpace()</code> you now can write <code>this::noSpace</code>.</li>
<li>The <code>TemplateNewFileWizard</code> and <code>NewFileWizardPrimaryPage</code> API is opened up to allow for easier customization.</li>
</ul>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Arne Deutsch (itemis)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Karsten Thoms (Karakun)</li>
<li>Nico Prediger (itemis)</li>
<li>Sebastian Zarnekow (independent)</li>
<li>Mark Sujew (TypeFox) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Harald Fassler <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Andreas Heiduk <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Lorenzo Addazi (Mälardalen University Sweden)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.25+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.25+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.25&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.25&amp;query_format=advanced&amp;status_whiteboard=v2.25&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2020/12/01/version-2-24-0">
<h1>Xtext 2.24.0 Release Notes<small>&nbsp;&nbsp;Dec 1, 2020</small></h1>
<br/>
<p>Xtext 2.24.0 is a maintenance release.</p>
<h2 id="call-to-action-secure-the-future-maintenance-of-xtext">Call to Action: Secure the future maintenance of Xtext</h2>
<p>As you might have recognized, the number of people contributing to Xtext on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext is at risk. If you care, please join the discussion in <a href="https://github.com/eclipse/xtext/issues/1721">https://github.com/eclipse/xtext/issues/1721</a>.</p>
<h2 id="java-based-api-for-new-formatter">Java based API for new Formatter</h2>
<p>With Xtext 2.24 we introduce a new preliminary <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/formatting2/AbstractJavaFormatter.java">API</a> that allows you to implement the Formatter(2) in Java instead of Xtend. With Java 11 and later, you can use local variable type inference and the equivalent of commonly used extensions are available via delegate methods. We encourage you to give it a try and to give feedback.</p>
<h2 id="xtext-generator">Xtext Generator</h2>
<p>The (new) <a href="https://github.com/eclipse/xtext-core/tree/master/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator">Xtext Generator</a> is now API.</p>
<h2 id="language-server-protocol">Language Server Protocol</h2>
<p>The Xtext Language Server Protocol (LSP) implementation has now an experimental API for Quickfix code actions (have a look at the <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/editor/quickfix/IQuickFixProvider.java"><code>IQuickFixProvider</code></a> interface and <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/codeActions/QuickFixCodeActionService.java"><code>QuickFixCodeActionService</code></a> class).</p>
<h2 id="eclipse-integration">Eclipse Integration</h2>
<ul>
<li>We did a number of performance improvments for editing <code>.xtext</code> files.</li>
<li>We fixed a flaw in <a href="https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.builder/src/org/eclipse/xtext/builder/ParallelBuilderParticipant.java"><code>ParallelBuilderParticipant</code></a> that may have lead to missing generated files.</li>
<li>The Validate Action now should behave correctly with Fast, Normal and Expensive Checks.</li>
</ul>
<h2 id="no-xtend">No Xtend</h2>
<p>The Xtext codebase (besides Xtend) is now, with a small number of exceptions in the language generation area, xbase and tests, completely written in Java and thus more proof in a future without Xtend.</p>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>Eclipse Platform and JDT Maven dependencies were updated to the 4.17 / Eclipse 2020-09 versions.</li>
<li>MWE(2) was updated to 2.12.0/1.6.0.</li>
<li>LSP4J was updated to 0.10.0, but you still can run it with 0.9.0 too.</li>
<li>Xtext now uses ASM 9.</li>
<li>Xtext Web uses JQuery 3.5.1.</li>
<li>We are now Junit 5.7 compatible.</li>
</ul>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Karsten Thoms (Karakun)</li>
<li>Nico Prediger (itemis)</li>
<li>Arne Deutsch (itemis)</li>
<li>Sebastian Zarnekow (independent)</li>
<li>Neeraj Bhusare (Zafin)</li>
<li>Frank Benoit (ETAS)</li>
<li>George Suaridze (1C-Soft)</li>
<li>Hannes Niederhausen (itemis)</li>
<li>Heinrich Weichert (AVL DiTEST) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Srinivas Iyer (Nash Technologies) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Tamas Miklossy (itemis)</li>
<li>Titouan Vervack (Sigasi)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.24+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.24+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.24&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.24&amp;query_format=advanced&amp;status_whiteboard=v2.24&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2020/09/01/version-2-23-0">
<h1>Xtext 2.23.0 Release Notes<small>&nbsp;&nbsp;Sep 1, 2020</small></h1>
<br/>
<p>Xtext 2.23.0 is a maintenance release.</p>
<h2 id="call-to-action-secure-the-future-maintenance-of-xtext">Call to Action: Secure the future maintenance of Xtext</h2>
<p>As you might have recognized, the number of people contributing to Xtext on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext is at risk. If you care, please join the discussion in <a href="https://github.com/eclipse/xtext/issues/1721">https://github.com/eclipse/xtext/issues/1721</a>.</p>
<h2 id="xtext-xtend-eclipse-and-java-11">Xtext, Xtend, Eclipse, and Java 11</h2>
<p>The Eclipse Platform and Java Development Tools have decided to migrate to Java 11 with the new 2020-09 (4.17) release. Xtext and Xtend depend on these projects both for the integration into Eclipse as well as in the LSP and standalone mode. Xtext 2.23 still works with Java 8, but if you want to work with Xtext in Eclipse 2020-09 (4.17) you have to start your Tycho builds with Java 11 as well as launch your Runtime Eclipse Applications with Java 11.</p>
<p>We decided to follow suit to close a window of opportunity for hard to find bugs. Therefore, the version 2.24 of Xtext and Xtend which is due along with Eclipse 2020-12 will be the first release that depends on Java 11. Please feel encouraged to join the discussion in <a href="https://github.com/eclipse/xtext/issues/1804">https://github.com/eclipse/xtext/issues/1804</a> if you have any concerns, general comments or other suggestions.</p>
<h2 id="ui-testing">UI Testing</h2>
<p>The AbstractCodeMiningTest and the AbstractMultiQuickfixTest base classes have been added to the org.eclipse.xtext.ui.testing package to provide a convenient way to test the code mining and multi-quickfix capabilities. The Xtext example projects and the Xtend code base have been extended by concrete test cases to demonstrate the usage of these framework classes.</p>
<h2 id="junit-5">Junit 5</h2>
<p><code>InjectionExtension</code> now supports the Junit 5 <code>@Nested</code> tests.</p>
<h2 id="core-api">Core API</h2>
<p>A protected method to get at the lazy proxy information of a LazyLinkingResource was added to enable subclasses to work with these.</p>
<h2 id="eclipse-integration">Eclipse Integration</h2>
<h3 id="quickfix-improvements">Quickfix improvements</h3>
<p>Convert a terminal fragment to a terminal rule. It resolves the following errors:</p>
<ul>
<li>A rule call in the parser rule points to a terminal fragment.</li>
<li>A hidden token in the grammar definition or a parser rule points to a terminal fragment.</li>
</ul>
<p>Remove illegal hidden token definition. It resolves the following errors:</p>
<ul>
<li>The hidden-token points to a parser rule, terminal fragment, or an enum rule.</li>
</ul>
<p>Create a new rule definition. It resolves the following errors:</p>
<ul>
<li>An undefined parser rule is cross-referenced.</li>
<li>An undefined enum, terminal, or a terminal fragment is cross-referenced.</li>
</ul>
<p>(<a href="https://github.com/eclipse/xtext-eclipse/issues/1448">xtext-eclipse#1448</a>)</p>
<h3 id="eclipse-api">Eclipse API</h3>
<p>The class org.eclipse.xtext.ui.editor.reconciler.TemplatePositionUpdater is now public to be usable for clients.</p>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>Eclipse platform dependencies where updated (e.g org.eclipse.core.runtime:3.17.100 to 3.18.0).</li>
</ul>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Nico Prediger (itemis)</li>
<li>Sebastian Zarnekow (independent)</li>
<li>Karsten Thoms (Karakun)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Arne Deutsch (itemis)</li>
<li>Jan Koehnlein (TypeFox)</li>
<li>Neeraj Bhusare (Zafin)</li>
<li>Titouan Vervack (Sigasi)</li>
<li>Hendrik Eeckhaut (Sigasi)</li>
<li>Frank Benoit (ETAS) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Aaron R Miller <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Ivan Nieves <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Stéphane Galland (Université de Technologie de Belfort)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.23+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.23+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.23&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.23&amp;query_format=advanced&amp;status_whiteboard=v2.23&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2020/06/02/version-2-22-0">
<h1>Xtext 2.22.0 Release Notes<small>&nbsp;&nbsp;Jun 2, 2020</small></h1>
<br/>
<p>Xtext 2.22.0 is mainly a maintenance release.</p>
<h2 id="call-to-action-secure-the-future-maintenance-of-xtext">Call to Action: Secure the future maintenance of Xtext</h2>
<p>As you might have recognized, the number of people contributing to Xtext on a regular basis has declined over the past years and so has the number of contributions. At the same time the amount of work for basic maintenance has stayed the same or even increased with the new release cadence of Java and the Eclipse simultaneous release. Briefly: The future maintenance of Xtext is at risk. If you care, please join the discussion in <a href="https://github.com/eclipse/xtext/issues/1721">https://github.com/eclipse/xtext/issues/1721</a>.</p>
<h2 id="documentation">Documentation</h2>
<p>The <a href="https://www.eclipse.org/Xtext/community.html">Xtext community website</a> and the <a href="https://www.eclipse.org/Xtext/documentation/index.html">Xtext documentation website</a> have been updated. New Xtext-based projects have been added, some editor features and the Unit testing / UI testing capabilities have been documented and the embedded code snippets have been updated as well.</p>
<p>We further enhanced the <a href="https://github.com/eclipse/xtext/tree/master/dev-doc">Xtext Developer Documentation</a> to enable the community to easily contribute to Xtext.</p>
<h2 id="code-generation-improvements">Code Generation improvements</h2>
<p>This release contains some fixes to improve the generated code in the <code>src-gen</code> folders. The following files are affected:</p>
<ul>
<li><code>Internal&lt;dslName&gt;.g</code> file in the <strong>runtime</strong> module - <a href="https://github.com/eclipse/xtext-core/issues/1467">xtext-core#1467</a></li>
<li><code>Internal&lt;dslName&gt;Parser.java</code> file in the <strong>runtime</strong> module - <a href="https://github.com/eclipse/xtext-core/issues/1467">xtext-core#1467</a></li>
<li><code>&lt;dslName&gt;GrammarAccess.java</code> file in the <strong>runtime</strong> module - <a href="https://github.com/eclipse/xtext-core/issues/269">xtext-core#269</a></li>
<li><code>Partial&lt;dslName&gt;ContentAssistParser.java</code> file in the <strong>ide</strong> module - <a href="https://github.com/eclipse/xtext-core/issues/1418">xtext-core#1418</a></li>
</ul>
<p>We encourage you to regenerate your languages with the latest Xtext version. Usually you do not recognize any changes, unless you check-in the <code>src-gen</code> folders in a version control system.</p>
<h2 id="eclipse-integration">Eclipse Integration</h2>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>Xtext 2.22 requires ASM 8.0.1 (updated from 7.2.0).</li>
<li>Maven Tycho was updated to version 1.7.0.</li>
<li>MWE(2) was updated to 2.11.3/1.5.3.</li>
</ul>
<h2 id="removals">Removals</h2>
<ul>
<li>Xtext no longer has a direct dependency to ICU4J. If you use ICU4J in your codebase you should also consider to get rid of this dependencies as it will no longer be supported by Eclipse (Platform).</li>
<li>As announced in the 2.21 Release the deprecated API in the LSP area was removed.</li>
<li>We also removed the outdated leftovers of IDEA Support in <code>org.eclipse.xtext.xtext.generator</code>.</li>
</ul>
<h2 id="deprecations">Deprecations</h2>
<ul>
<li><code>IXtext2EcorePostProcessor</code> &amp; <code>XtendXtext2EcorePostProcessor</code> &amp; <code>ProjectAwareXtendXtext2EcorePostProcessor</code> were deprecated as they depend on old Xpand/Xtend(1). As already announced in the <a href="#/releasenotes/2020/03/03/version-2-21-0">2.21 release notes</a> you should avoid depending on the old Xpand based <code>org.eclipse.xtext.generator</code> as well as on Xtend(1) based postprocessing. So if you have an <code>.ext</code> file right next to your <code>.xtext</code> file or subclass the interface it’s about time to switch to a manually maintained Ecore model.</li>
</ul>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Nico Prediger (itemis)</li>
<li>Sebastian Zarnekow (independent)</li>
<li>Karsten Thoms (Karakun)</li>
<li>Neeraj Bhusare (Zafin)</li>
<li>Arne Deutsch (itemis)</li>
<li>Jan Koehnlein (TypeFox)</li>
<li>George Suaridze (1C LLC) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Mathias Rieder (Bachmann)</li>
<li>Mikael Barbero (Eclipse Foundation)</li>
<li>Titouan Vervack (Sigasi)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.22+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.22+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.22&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.22&amp;query_format=advanced&amp;status_whiteboard=v2.22&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2020/03/03/version-2-21-0">
<h1>Xtext 2.21.0 Release Notes<small>&nbsp;&nbsp;Mar 3, 2020</small></h1>
<br/>
<p>Xtext 2.21 is mainly a maintenance release with a focus on internal improvements to enable more people to contribute and only a few new features. The internal usage of Xtend was reduced where it is not beneficial. This improves build performance and lowers the barrier for new contributors. Also all the tests that were failing on Windows only were adapted, such that developing Xtext on Windows machines is now more satisfying.</p>
<h2 id="license-change">License Change</h2>
<p>In compliance with general requirements by the Eclipse Foundation the license for Xtext &amp; Xtend has been changed to <a href="https://www.eclipse.org/legal/epl-2.0/">EPL 2.0</a>.</p>
<h2 id="documentation">Documentation</h2>
<p>The <a href="https://www.eclipse.org/Xtext/community.html">Xtext community website</a> has been updated to list all the cool projects people are building around Xtext/Xtend.<br />
The list is not yet complete, so feel free to contact us if you are also interested in listing your project there.</p>
<p>The documentation about the <a href="https://github.com/eclipse/xtext/blob/master/dev-doc/MaintenanceTasks.md">release process</a> was improved to enable more people to contribute to this process.</p>
<h2 id="eclipse-integration">Eclipse Integration</h2>
<h3 id="skip-create-markers-in-target-folders">Skip create markers in target folders</h3>
<p>Creation of markers in target folders is disabled. This avoids confusing error markers and improves performance at the same time.</p>
<h3 id="avoid-generation-of-dependency-to-xpandold-generator">Avoid generation of dependency to Xpand/old generator</h3>
<p>The wizard to generate projects for existing ecore models does not create a dependency to deprecated Xpand/old generator any more.</p>
<h2 id="xtext-maven-plugin">xtext-maven-plugin</h2>
<h3 id="testgenerate-goal">testGenerate Goal</h3>
<p>The Maven plugin has now two goals, <code>generate</code> and <code>testGenerate</code>. The new <code>testGenerate</code> goal runs during the <code>generate-test-sources</code> phase and uses the test classpath of the Maven project.</p>
<h2 id="lsp">LSP</h2>
<h3 id="multiple-root-folders-per-workspace">Multiple root folders per workspace</h3>
<p>Xtext based languages now allow a workspace to be composed of multiple root folders.</p>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>MWE(2) was updated to 2.11.2 / 1.5.2.</li>
<li>Xtext 2.21 now requires EMF 2.20 as minimal required version.</li>
<li>LSP4J is now on version 0.9.0 / Language Server Protocol version 3.15.</li>
<li>Maven Tycho was updated to version 1.6.0.</li>
<li>JUnit was updated to version 5.6.</li>
</ul>
<h2 id="deprecations">Deprecations</h2>
<ul>
<li>In <code>org.eclipse.xtext.ide</code> many of the LSP Services were changed in the protocol to use service specific parameters instead of <code>TextDocumentPositionParams</code>. We adapted the services to use the new parameter classes and marked the old ones as deprecated and to be removed with Xtext 2.22. If you have custom subclasses of the affected services please adapt your implementations. This also holds true for deprecations in lsp services that we marked as deprecated in earlier releases.</li>
<li>We again encourage you to get rid of the old generator as we might have to remove it in 2020-06 / Xtext 2.22 - see/join <a href="https://github.com/eclipse/xtext/issues/1669">Xtext Issue #1669</a>.</li>
</ul>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Karsten Thoms (Karakun)</li>
<li>Sebastian Zarnekow (independent)</li>
<li>Nico Prediger (itemis)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Arne Deutsch (itemis)</li>
<li>Marcus Mews (NumberFour)</li>
<li>Lorenzo Bettini (Università degli Studi di Firenze)</li>
<li>Sven Efftinge (TypeFox)</li>
<li>Jan Rosczak (Hapag-Lloyd)</li>
<li>Jan Koehnlein (TypeFox)</li>
<li>Robert Lewis <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Ryan Dunn <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Mathias Rieder (Bachmann)</li>
<li>Hannes Niederhausen (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>David Medina (Sigasi) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. Almost 60 issues and 320 pull requests have made it into this release. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.21+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.21+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.21&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.21&amp;query_format=advanced&amp;status_whiteboard=v2.21&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2019/12/03/version-2-20-0">
<h1>Xtext 2.20.0 Release Notes<small>&nbsp;&nbsp;Dec 3, 2019</small></h1>
<br/>
<p>Xtext 2.20.0 is mainly a maintenance release.</p>
<h2 id="eclipse-integration">Eclipse Integration</h2>
<h3 id="egit-minimal-version">EGit minimal version</h3>
<p>Xtext requires to use EGit 4.1 or newer now. We have removed a workaround that prevented an endless build loop caused by EGit <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=474003">Bug#474003</a>. Since we expect that no clients are still using Xtext &gt;= 2.20 together with the ancient EGit version, we felt safe to finally remove this workaround.</p>
<h3 id="new-project-wizard--new-file-wizard-improvements">New Project Wizard / New File Wizard improvements</h3>
<p>The <code>New Project Wizard</code> / <code>New File Wizard</code> generator fragments have been extended by the <code>generateToolbarButton</code> option. Setting this option to <code>true</code> adds new project wizard / new file wizard buttons to the toolbar. Furthermore, the New Project Wizard templates provide an API to<br />
register images that can be used in the template descriptions. All these wizard improvements are demonstrated by the Statemachine example shipped by the Xtext framework.</p>
<h2 id="xtext-web">Xtext-Web</h2>
<p>The <code>Xtext-Web Entities Example</code> provides improved validator and formatter capabilities, such as validating the entity, property and operation names, validating the uniquness of the property/operation definitions as well as properly formatting the defined packages, entities, properties and operations elements.</p>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>The Eclipse Modeling Workflow Engine (MWE2) was updated to version 2.11.1.</li>
<li>LSP4J is now on version 0.8.1.</li>
<li>Maven Tycho was updated to version 1.5.1.</li>
<li>Gradle to version 5.6.x (Should also work with Gradle 6.0.x which we will ship with Xtext 2.21).</li>
<li>grgit Gradle Plugin 4.0.0</li>
</ul>
<h2 id="xtend">Xtend</h2>
<p>A word on Xtend. Back in 2013 Xtend was the “Java 10 of today” even before Java 8 was out. Meanwhile Java Release cadence has speeded up and many of Xtends features can be achieved with pure Java, too. There is still some areas where Xtend is particularly advanced like Code generation, Unit tests and lambda heavy APIs like JvmModelInferrer and Formatter. For other tasks there is no need to use Xtend. Also the resources we have no longer allow us to keep the head start against Java. And learning Xtend still is a burden for new Xtext users. To reflect this changed situation we have decided to make Java the default in the wizard again (except e.g. the Generator and a few other APIs). You can still decide if you want Java or Xtend in the workflow.</p>
<h2 id="deprecations">Deprecations</h2>
<h3 id="old-generator">Old Generator</h3>
<p>With Xtext 2.9 we changed the way Xtext languages are generated to a new generator infrastructure/workflow (<code>org.eclipse.xtext.xtext.generator</code>). Until now we still kept the support for the old (Xpand based) workflows and generator (<code>org.eclipse.xtext.generator</code>). We also allowed to use old generator fragments in new workflows through <code>org.eclipse.xtext.generator.adapter.FragmentAdapter</code>. As we want to stop using old Xpand in Xtext we will drop this support in a future Xtext release. We strongly recommend you to migrate to the new workflow and to get rid of the usages of <code>FragmentAdapter</code>.</p>
<h3 id="xtend1-based-ixtext2ecorepostprocessor">Xtend(1) based IXtext2EcorePostProcessor</h3>
<p>Xtext has basically two methods to work with metamodels. The first on is to infer the metamodel from the Grammar. The second one is to maintain it manually and import it in Xtext. In the past we had actually a third option too: To hook into the inference with a <code>IXtext2EcorePostProcessor</code> written in old Xtend(1). We plan to drop this feature in the future and recommend you to switch to a manually maintained metamodel.</p>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Karsten Thoms (itemis)</li>
<li>Sebastian Zarnekow (independent)</li>
<li>Tamas Miklossy (itemis)</li>
<li>D. Gabriel (Bachmann) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Jan Köhnlein (TypeFox)</li>
<li>Arne Deutsch (itemis)</li>
<li>Mathias Rieder <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Elena Rogleva <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Mark Christiaens (Sigasi)</li>
<li>Simeon Andreev (Advantest) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Stéphane Galland (Université de Technologie de Belfort)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. Almost 60 issues and 320 pull requests have made it into this release. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.20+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.20+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.20&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.20&amp;query_format=advanced&amp;status_whiteboard=v2.20&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2019/09/03/version-2-19-0">
<h1>Xtext 2.19.0 Release Notes<small>&nbsp;&nbsp;Sep 3, 2019</small></h1>
<br/>
<p>Xtext 2.19.0 is mainly a maintenance release.</p>
<h2 id="lsp-integration">LSP Integration</h2>
<p>Xtext 2.19 now uses LSP4J version 0.8.0 / Language Server Protocol version 3.14.0. This allows you to consume Xtext Language Servers through WebSocket.</p>
<h2 id="classgraph">Classgraph</h2>
<p>We use Classgraph to scan the classpath. This allows us to provide Standlone Content Assist proposals (LSP/WEB) not only when the application runs with Java 8 but with Java 11, too.</p>
<h2 id="upgrades">Upgrades</h2>
<p>Xtext now uses Guava 27.1.0. The new version will be picked up automatically if you make use of the Xtext BOM or consume Xtext from its P2 repository.<br />
The MWE(2) version was updated to 2.11.</p>
<h2 id="gradle">Gradle</h2>
<p>We made building Xtext projects and Xtext itself Gradle 6.0 ready and thus future-proof.</p>
<h2 id="maven-tycho">Maven Tycho</h2>
<p>For our integration of Eclipse Tycho based builds with Eclipse Orbit we now make use of the new Orbit Simrel Alias <a href="https://download.eclipse.org/tools/orbit/downloads/2019-09">https://download.eclipse.org/tools/orbit/downloads/2019-09</a> instead of our own solution <a href="https://download.eclipse.org/modeling/tmf/xtext/updates/orbit/2019-09">https://download.eclipse.org/modeling/tmf/xtext/updates/orbit/2019-09</a>.</p>
<h2 id="infrastructure">Infrastructure</h2>
<p>Xtend now is built on the new Kubernetes based CBI infrastructure <a href="https://wiki.eclipse.org/CBI/Jenkins_Migration_FAQ">JIRO</a>.</p>
<h2 id="more-upgrades">More Upgrades</h2>
<p>Xtext always follows the latest releases of the software it relies on. The following software upgrades have been considered for this release:</p>
<ul>
<li>Latest supported Eclipse Platform 4.13 (a.k.a. 2019-09)</li>
<li>Eclipse MWE 2.11</li>
<li>Guava 27.1</li>
<li>LSP4J 0.8</li>
<li>jquery 3.4.1</li>
<li>node 10.16.0</li>
<li>Maven Plugins:
<ul>
<li>maven-compiler-plugin 3.8.1</li>
<li>maven-source-plugin 3.1.0</li>
</ul>
</li>
<li>Gradle 5.5</li>
<li>Gradle Plugins:
<ul>
<li>com.github.johnrengelman.shadow 5.1.0</li>
<li>io.spring.dependency-management 1.0.8.RELEASE</li>
<li>de.esoco.gwt 1.0.9</li>
<li>org.ajoberstar.grgit 3.1.1</li>
</ul>
</li>
</ul>
<h2 id="deprecations">Deprecations</h2>
<h3 id="generator-fragments">Generator Fragments</h3>
<p>The generator fragments</p>
<ul>
<li><code>org.eclipse.xtext.generator.adapter.FragmentAdapter</code></li>
<li><code>org.eclipse.xtext.generator.parser.antlr.XtextAntlrGeneratorComparisonFragment</code></li>
</ul>
<p>have been marked deprecated. They are in the already deprecated bundle <code>org.eclipse.xtext.generator</code>. There is currently no replacement for this fragment in the new <code>org.eclipse.xtext.xtext.generator</code> bundle.</p>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Karsten Thoms (itemis)</li>
<li>Nico Prediger (itemis)</li>
<li>Sebastian Zarnekow (itemis)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Lorenzo Addazi (Mälardalen University Sweden)</li>
<li>Marcus Mews (NumberFour)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. 85 issues and 330 pull requests have made it into this release. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.19+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.19+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.19&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.19&amp;query_format=advanced&amp;status_whiteboard=v2.19&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2019/06/04/version-2-18-0">
<h1>Xtext 2.18.0 Release Notes<small>&nbsp;&nbsp;Jun 4, 2019</small></h1>
<br/>
<p>Xtext 2.18.0 is mainly a maintenance release.</p>
<h2 id="eclipse-integration">Eclipse Integration</h2>
<h3 id="search-references-result-page-new-context-actions">Search References Result Page: New Context Actions</h3>
<p>The results of the <em>Search References</em> action can now be copied to the clipboard. Further an action has been added to remove search results from the view. Both actions are available from the context menu and by common keyboard shortcuts.</p>
<p><img src="/Xtext/images/releasenotes/2_18_SearchReferencesResultActions.png" alt="Search References Result Page: New Context Actions" height="50%" width="50%" /></p>
<h3 id="new-quickfix-on-empty-keywords">New Quickfix on Empty Keywords</h3>
<p>Grammar rules with empty keyword statements (<code>''</code>) are raising errors already. Two new quickfixes have been added that can be used to resolve these errors:</p>
<ul>
<li>Remove the empty keyword</li>
<li>Set the keyword value from the declaring rule name</li>
</ul>
<p>(<a href="https://github.com/eclipse/xtext-eclipse/issues/994">xtext-eclipse#994</a>)</p>
<h3 id="fixed-potential-deadlock-on-startup">Fixed Potential Deadlock on Startup</h3>
<p>A deadlock may occur on startup of Eclipse. The builder infrastructure has been improved to avoid locking on loading its stored state. (<a href="https://github.com/eclipse/xtext/issues/1460">#1460</a>)</p>
<h3 id="fixed-exceptions-for-closed-projects">Fixed: Exceptions for Closed Projects</h3>
<p>When projects are removed from the workspace the <code>ProjectOpenedOrClosedListener</code> may caused exceptions that were logged to the error log. This situation has been fixed with <a href="https://github.com/eclipse/xtext-eclipse/issues/1066">xtext-eclipse#1066</a>.</p>
<h3 id="refactoring-support-improved-progress-reporting">Refactoring Support: Improved Progress Reporting</h3>
<p>The <code>ResourceRelocationProcessor</code> did not forward the progress monitor to the change serializer, which prevented proper feedback and cancellation support during the application of a rename refactoring. The progress monitor is now forwarded. (<a href="https://github.com/eclipse/xtext-eclipse/issues/1053">xtext-eclipse#1053</a>)</p>
<h3 id="refactoring-support-improved-memory-utilization">Refactoring Support: Improved Memory Utilization</h3>
<p>During rename or move refactorings a temporary resource set is created and populated. This resource set was kept in memory, leading to unnecessary memory consumption. Now the memory held by this temporary resource set is released properly. (<a href="https://github.com/eclipse/xtext-eclipse/issues/1048">xtext-eclipse#1048</a>)</p>
<h2 id="lsp-integration">LSP Integration</h2>
<h3 id="ilanguageserveraccess-provide-access-to-xtext-index"><code>ILanguageServerAccess</code>: Provide Access to Xtext Index</h3>
<p>A new method <code>doReadIndex</code> has been added to <code>ILanguageServerAccess</code> to allow access to the <code>IResourceDescritions</code> instance (a.k.a. the Xtext Index). This is useful for certain use cases for LS extension developers. (<a href="https://github.com/eclipse/xtext-core/issues/1067">xtext#1067</a>)</p>
<h3 id="report-partial-results-of-cancelled-multi-project-builds">Report Partial Results of Cancelled Multi-Project Builds</h3>
<p>When a multi-project build is canceled (another <code>runWrite</code> coming in from the <code>RequestManager</code>), it could be that some projects have already been built. Even though their <code>ProjectManager</code>s have been updated (e.g. their index state), their deltas were never returned, because the <code>BuildManager</code> aggregated all results in a local variable. Build listeners were never be informed about these changes.</p>
<p>The <code>BuildManager</code> has been improved to report also partial results to listeners. (<a href="https://github.com/eclipse/xtext-core/issues/1124">xtext-core#1124</a>)</p>
<h3 id="improved-handling-of-builds-cancellations-by-didchangewatchedfiles-notifications">Improved Handling of Builds Cancellations by <code>didChangeWatchedFiles</code> Notifications</h3>
<p>When editing files in an auto-saving editor, <code>didChange</code> notifications are usually followed by <code>didChangeWatchedFiles</code> notifications. The latter cancel the build, but only look at their own changes to decide whether a new build should be issued. The changes from the prior <code>didChange</code> queued on the <code>BuildManager</code> were ignored.</p>
<p>This issue has been improved by reprocessing URIs from cancelled builds in. (<a href="https://github.com/eclipse/xtext-core/issues/1121">xtext-core#1121</a>)</p>
<h3 id="fixed-unexpected-occurrance-highlighting">Fixed Unexpected Occurrance Highlighting</h3>
<p>In certain situations occurrances were not highlighted properly. The highlighting service has been improved for that. See <a href="https://github.com/eclipse/xtext-core/issues/1090">xtext-core#1090</a> for details.</p>
<h2 id="xtext-grammar--code-generator">Xtext Grammar &amp; Code Generator</h2>
<h3 id="fixed-illegal-whitespace-removal-in-merged-manifests">Fixed: Illegal Whitespace Removal in Merged Manifests</h3>
<p>When re-generating language implementations whitespace was illegally removed for required bundles with changed versions. (<a href="https://github.com/eclipse/xtext-extras/issues/406">xtext-extras#406</a>)</p>
<h2 id="security">Security</h2>
<p>With <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=544852">Bug#544852</a> a theoretical security issue was reported (CVE-2019-10249). While building Xtext artifacts may be downloaded through HTTP instead of HTTPS. To avoid this, all build related resources have been revised and assured that all artifacts participating in the software build are only downloaded with HTTPS.</p>
<ul>
<li>p2 mirrors are disabled for builds using Eclipse Tycho. (<a href="https://github.com/eclipse/xtext/issues/1427">#1427</a>)</li>
<li>p2 repository URLs changed from HTTP to HTTPS. (<a href="https://github.com/eclipse/xtext-xtend/issues/759">xtext-xtend#759</a>)</li>
<li>Maven repository URLs changed from HTTP to HTTPS. (<a href="https://github.com/eclipse/xtext-maven/issues/74">xtext-maven</a>)</li>
</ul>
<h2 id="upgrades">Upgrades</h2>
<ul>
<li>LSP4J has been upgraded to its latest release 0.7.2.</li>
<li>The Java Bytecode Manipultation library ASM has been upgraded to version 7.1.0. (<a href="https://github.com/eclipse/xtext/issues/1440">#1440</a>)</li>
<li>Gradle based projects have been upgraded to use the Gradle Wrapper version 5.4.1.</li>
<li>Eclipse Tycho has been upgraded to release 1.4.0. (<a href="https://github.com/eclipse/xtext/issues/1422">#1422</a>)</li>
<li>In Gradle builds usages of Spring’s <code>dependency-management-plugin</code> have been upgraded to version 1.0.7.RELEASE. (<a href="https://github.com/eclipse/xtext/issues/1420">#1420</a>)</li>
</ul>
<h2 id="new-features-in-xtend">New Features in Xtend</h2>
<p>Xtend has learned try-with-resources and the ternary operator. See the <a href="https://www.eclipse.org/xtend/releasenotes.html#/releasenotes/2019/06/04/version-2-18-0">Xtend Releasenotes</a> for details.</p>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Karsten Thoms (itemis)</li>
<li>Sebastian Zarnekow (itemis)</li>
<li>Jan Koehnlein (TypeFox)</li>
<li>Holger Schill (itemis)</li>
<li>Arne Deutsch (itemis)</li>
<li>Christian Schneider (TypeFox)</li>
<li>Titouan Vervack (Sigasi)</li>
<li>Max Leuthäuser (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Akos Kitta (TypeFox)</li>
<li>Lorenzo Addazi</li>
<li>Lorenzo Bettini (Università degli Studi di Firenze)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Dennis Huebner (TypeFox)</li>
<li>RhiobeT <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Sergio Otero Lopez <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Eva Poell (itemis)</li>
<li>Lieven Lemiengre (Sigasi)</li>
<li>Mark Christiaens (Sigasi)</li>
<li>Michael Budnick (all4net) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Stéphane Galland (Université de Technologie de Belfort)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. Almost 100 issues and 300 pull requests have made it into this release. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.18+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.18+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.18&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.18&amp;query_format=advanced&amp;status_whiteboard=v2.18&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2019/04/03/version-2-17-1">
<h1>Xtext 2.17.1 Release Notes<small>&nbsp;&nbsp;Apr 3, 2019</small></h1>
<br/>
<p>This is a hotfix release. Here is the list of fixed issues:</p>
<ul>
<li>There was a <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=545343">bug</a> in the Xtext Builder that leads to non Xtext projects being built by Xtext.</li>
<li>The <a href="https://github.com/eclipse/xtext-core/issues/1059">LSP4J</a> version in Xtext 2.17.0 did not match the one in Eclipse 2019-03. Upgraded to LSP4J 0.7.0.</li>
<li>The <a href="https://github.com/eclipse/xtext-xtend/issues/750">Xtend Batch Compiler</a> preferred classes found on the classpath over local classes.</li>
</ul>
</section>
<hr/>
<section id="/releasenotes/2019/03/05/version-2-17-0">
<h1>Xtext 2.17.0 Release Notes<small>&nbsp;&nbsp;Mar 5, 2019</small></h1>
<br/>
<p>This release focuses on the compatibility with Java 11 &amp; Eclipse 2019-03, stability, performance and technical debt reduction.</p>
<h2 id="bom">BOM</h2>
<p>Xtext 2.17 introduces a new artifact, a <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies">Maven BOM (<em>bill of materials</em>)</a>. Basically it is an artifact with packaging type <code>pom</code>, which defines dependencies by a <code>&lt;dependencyManagement&gt;</code> section. A BOM is consumed by client projects also by <code>&lt;dependencyManagement&gt;</code> and using the BOM artifact with scope <code>import</code> there.</p>
<p>The BOM declares all dependencies that are used by Xtext and has the coordinates</p>
<ul>
<li><code>groupId</code> : <code>org.eclipse.xtext</code></li>
<li><code>artifactId</code> : <code>xtext-dev-bom</code></li>
</ul>
<p>The <code>xtext-dev-bom</code> is used in Maven configurations as follows:</p>
<pre><code> &lt;dependencyManagement&gt;
&lt;dependencies&gt;
&lt;dependency&gt;
&lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
&lt;artifactId&gt;xtext-dev-bom&lt;/artifactId&gt;
&lt;version&gt;${xtext.version}&lt;/version&gt;
&lt;type&gt;pom&lt;/type&gt;
&lt;scope&gt;import&lt;/scope&gt;
&lt;/dependency&gt;
&lt;/dependencies&gt;
&lt;/dependencyManagement&gt;
</code></pre>
<p>Any artifact declared by the BOM (e.g. Eclipse Core, EMF, MWE, Guava, LSP4J, JDT, ANTLR) can then be used without declaration of a version.</p>
<p>With Gradle 5 support of <a href="https://docs.gradle.org/5.0/userguide/managing_transitive_dependencies.html#sec:bom_import">BOM managed dependency versions</a> was introduced. The Xtext BOM can be consumed by Gradle projects with the <code>platform</code> dependency:</p>
<pre><code> dependencies {
compile platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}")
}
</code></pre>
<h2 id="java-11">Java 11</h2>
<p>Xtext and Xtend now fully support Java 11! With Xtext 2.16 it was already possible to run Xtext on a Java 11 VM, but it was not possible to use Java 11 also as the target Java version. Since this required Java 11 enabled versions of Eclipse JDT, Tycho and Gradle and not all were available and especially not tested with Xtext, we had to defer the full support to 2.17.</p>
<p>Now with that latest and greatest versions of JDT, Tycho and Gradle integrated, there are no restrictions to use Java 11 in any of the configurations.</p>
<h2 id="customizable-exception-handling-of-validation-code">Customizable Exception Handling of Validation Code</h2>
<p>By default Xtext swallows <code>NullPointerException</code> occuring during the execution of validators. While this behavior is desirable in most cases and users are not bothered with faulty validation or the likely case of NPEs caused by accessing unresolvable proxies, it may be desirable to report or rethrow these exceptions. To minimize the effort of customizing, the handling of exceptions is delegated to the new API method <code>AbstractDeclarativeValidator#handleExceptionDuringValidation(Throwable)</code>. Clients may overroide this method to change the exception handling behavior in their validator classes. (<a href="https://github.com/eclipse/xtext-core/issues/983">to issue</a>)</p>
<h2 id="guava-210-version-pinning">Guava 21.0 Version Pinning</h2>
<p>Xtext allowed a version range from 14.0 to 21.0 for the Guava library in the past. Effectively this range became invalid since API introduced with Guava 20.0 was used in Xbase. The open version range lead also to other surprises in the past.</p>
<p>With Xtext 2.17 it was decided to pin the required version of the Guava library to 21.0 only. This affects all bundle manifests for plugin builds as well as Gradle &amp; Maven builds through the introduced BOM (see above). Also the <em>New Project Wizard</em> will respect this restriction for newly created projects. (<a href="https://github.com/eclipse/xtext/issues/1391">to issue</a>)</p>
<h2 id="xtext-grammar-language">Xtext Grammar Language</h2>
<h3 id="new-validation-first-rule-must-not-be-a-fragment">New Validation: First Rule Must Not Be a Fragment</h3>
<p>An Xtext grammar’s first rule must not start with a fragment rule. This is now checked by an additional validation rule. (<a href="https://github.com/eclipse/xtext-core/pull/1041">to issue</a>)</p>
<p><img src="/Xtext/images/releasenotes/2_17_Xtext_First-rule-not-a-fragment.gif" alt="Validation: first rule not a fragment" height="50%" width="50%" /></p>
<h2 id="testing">Testing</h2>
<h3 id="hyperlinking">Hyperlinking</h3>
<p>A new base class <code>AbstractHyperlinkingTest</code> has been added to provide a convenient way to test hyperlinking navigation.</p>
<p>All standard example projects have been updated to provide a test class (<code>&lt;LangugageName&gt;HyperlinkingTest.java</code>) for demonstration. (<a href="https://github.com/eclipse/xtext-eclipse/issues/949">to issue</a>)</p>
<h3 id="junit-5-support">JUnit 5 Support</h3>
<p>The package <code>org.eclipse.xtext.testing.extensions</code> introduced with release 2.14 is now public API, thus users of Xtext JUnit 5 support will no longer receive restricted API usage warnings.</p>
<p>The <em>New Project Wizard</em> selects JUnit 5 as default.</p>
<p><img src="/Xtext/images/releasenotes/2_17_Xtext_JUnit5-default.png" alt="JUnit 5 support as default" height="50%" width="50%" /></p>
<h2 id="xtext-maven-plugin">xtext-maven-plugin</h2>
<h3 id="output-configuration-name">Output Configuration Name</h3>
<p>It is now possible to configure set the <code>name</code> attribute for non-default output configurations. (<a href="https://github.com/eclipse/xtext-maven/issues/62">to issue</a>)</p>
<h3 id="upgrade-to-maven-3-api">Upgrade to Maven 3 API</h3>
<p>The <code>xtext-maven-plugin</code> has been refactored to use the latest Maven 3 API. The most significant internal change is that all doclet based configurations have been changed to use Maven 3 annotation API.</p>
<h2 id="xtext-web">xtext-web</h2>
<p>The Xtext web support has been updated to the latest versions of the used libraries and editors. Particularly we upgraded to:</p>
<ul>
<li>requirejs 2.3.6</li>
<li>jquery 3.3.1-1</li>
<li>ace 1.3.3</li>
<li>codemirror 5.41.0</li>
<li>Orion 17</li>
</ul>
<h2 id="upgrades">Upgrades</h2>
<p>Xtext builts on top of numerous technologies which frequently provide releases. An important task is therefore to keep up-to-date with the latest from the used technology stack. All upgrades affect Xtext in multiple ways:</p>
<ul>
<li>All internal usages for building Xtext use the upgraded versions</li>
<li>The <em>New Project Wizard</em> produces projects that make use of upgrades</li>
<li>Our provided Oomph setup has been updated to reflect the latest changes</li>
</ul>
<h3 id="eclipse-2019-03">Eclipse 2019-03</h3>
<p>As member of the Eclipse Simultaneous Release Xtext is also built against the latest target platform 2019-03.</p>
<h3 id="gradle-521">Gradle 5.2.1</h3>
<p>We upgraded to Gradle 5.2.1. This version is used especially to support the introduced Maven BOM (see above) “natively” in Gradle configurations.</p>
<h3 id="tycho-130">Tycho 1.3.0</h3>
<p>Tycho 1.3.0 is required especially for full Java 11 support.</p>
<h3 id="mwe-210">MWE 2.10</h3>
<p>Xtext is now the latest release 2.10 of the Modeling Workflow Engine (MWE). The MWE project has been updated to use a recent Xtext version itself and supports now separate source folders for main sources and tests.</p>
<h3 id="eclipse-orbit">Eclipse Orbit</h3>
<p>Xtext uses the Orbit repository <a href="https://download.eclipse.org/releases/2019-03/">https://download.eclipse.org/releases/2019-03/</a> for third party libraries. The location redirects to the latest repository recommended for the simultanous release.</p>
<h2 id="credits">Credits</h2>
<p>The Xtext project is thankful for the dedication of each committer and contributor. This release has been made possible by the following persons (in order of the number of contributed commits to this release to <a href="https://github.com/eclipse/xtext#repositories">all repositories</a> except <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>):</p>
<ul>
<li>Christian Dietrich (itemis)</li>
<li>Karsten Thoms (itemis)</li>
<li>Sebastian Zarnekow (itemis)</li>
<li>Tamas Miklossy (itemis)</li>
<li>Holger Schill (itemis)</li>
<li>Arne Deutsch (itemis)</li>
<li>Prajwal Gowda (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Anders Dahlberg (Ericsson) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Eva Poell (itemis) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Lorenzo Addazi <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Jan Rosczak <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Jelle Schuhmacher (Altran) <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Titouan Vervack (Sigasi)</li>
<li>Jonathan Menzies <img src="https://img.shields.io/badge/-first%20time%20contributor-green.svg" alt="" /></li>
<li>Christian Schneider (TypeFox)</li>
</ul>
<h2 id="fixed-issues">Fixed Issues</h2>
<p>As in every release cycle we were eagerly hunting down bugs, and reviewed and integrated plenty of contributions. Almost 80 issues and 240 pull requests have made it into this release. For further details please refer to the following lists:</p>
<ul>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.17+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;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
</li>
<li>
<p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.17+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;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
</li>
<li>
<p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.17&amp;list_id=16618269&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.17&amp;query_format=advanced&amp;status_whiteboard=v2.17&amp;status_whiteboard_type=allwordssubstr">Fixed Eclipse Bugzilla tickets</a></p>
</li>
</ul>
</section>
</div>
</div>
</div>
<footer class="site-footer">
<div id="extra">
<div class="inner">
<div class="container">
<div class="row">
<div class="span6">
<h3 class="footer-links-header">Quick Links</h3>
<ul class="footer-links clearfix">
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
<li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
<li><a href="http://www.eclipse.org/legal/">Legal</a></li>
</ul>
<ul class="footer-links clearfix">
<li><a href="http://www.eclipse.org">Eclipse Home</a></li>
<li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
<li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
<li><a href="https://www.eclipse.org/forums/index.php/f/27/">Xtext Forum</a></li>
</ul>
</div>
<div class="span6">
<!-- Social Media Links -->
<h3 class="footer-links-header"">Social Media</h3>
<ul class="footer-links clearfix">
<li>
<a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
<!-- Le javascript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="/Xtext/js/jquery-1.11.3.min.js"></script>
<script src="/Xtext/js/bootstrap.min.js"></script>
<script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
<script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
<script src="/Xtext/js/prettify.js" type="text/javascript"></script>
<script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
<script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
<script src="/Xtext/js/custom.js" type="text/javascript"></script>
<!--script src="https://apis.google.com/js/platform.js" async defer></script-->
<!--script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push([ '_setAccount', 'UA-2429174-3' ]);
_gaq.push([ '_trackPageview' ]);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl'
: 'http://www')
+ '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script-->
<script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
<script>
$(function() {
$('#coverflow').coverflow({
active : 1,
visibleAside: 2,
overlap : 0.5,
scale : 0.9,
angle : 20,
trigger : {
"itemfocus" : true,
"swipe" : true,
"mousewheel" : false
}
});
$('#coverflow :hidden').toggle();
$(window).resize(function() {
$('#coverflow').coverflow();
});
});
</script>
</footer>
</body>
</html>