diff --git a/README.md b/README.md index cb67837..a92cabf 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Eclipse Xtext Website -This repository contains the websites [xtext.org](https://eclipse.dev/Xtext) and [xtend-lang.org](https://eclipse.dev/Xtext/xtend). For general information about Xtext, see the [main repository](https://github.com/eclipse/xtext). +This repository contains the websites [https://eclipse.dev/Xtext/](https://eclipse.dev/Xtext) and [https://eclipse.dev/Xtext/xtend](https://eclipse.dev/Xtext/xtend). For general information about Xtext, see the [main repository](https://github.com/eclipse/xtext). The [published](https://github.com/eclipse/xtext-website/tree/published) branch corresponds to what is published on the actual websites. Fixes that should be made visible immediately must be committed there. The [main](https://github.com/eclipse/xtext-website/tree/main) branch is used to write documentation and release notes for the next major or minor release of Xtext. diff --git a/xtend-website/_posts/releasenotes/2025-02-26-version-2-38-0.md b/xtend-website/_posts/releasenotes/2025-02-26-version-2-38-0.md new file mode 100644 index 0000000..ee353c0 --- /dev/null +++ b/xtend-website/_posts/releasenotes/2025-02-26-version-2-38-0.md @@ -0,0 +1,29 @@ +--- +layout: post +title: Xtend 2.38.0 Release Notes +date: 2025-02-26 +categories: releasenotes +published: true +--- + +## Call to Action: Secure the future maintenance of Xtext & Xtend + +As you might have recognized, the number of people contributing to Xtext & Xtend 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 & especially Xtend is at risk, at least in the current form and as part of the Eclipse Simrel. If you care, please join the discussion in [https://github.com/eclipse-xtext/xtext/issues/1721](https://github.com/eclipse-xtext/xtext/issues/1721). + +## Relevant changes + +Xtend now requires Java 17 as the minimal Java version and 2024-03 as the minimal target platform. + +## Credits + +See Xtext release notes. + +## Fixed Issues + +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: + +* [Fixed GitHub issues](https://github.com/search?utf8=%E2%9C%93&q=is%3Aissue+milestone%3ARelease_2.38+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&type=Issues&ref=searchresults) + +* [Closed Pull Requests](https://github.com/search?utf8=%E2%9C%93&q=is%3Apr+milestone%3ARelease_2.38+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&type=Issues&ref=searchresults) + +* [Fixed Eclipse Bugzilla tickets](https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Modeling&classification=Tools&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&f0=OP&f1=OP&f3=CP&f4=CP&known_name=Xtext%202.30&list_id=16618269&product=TMF&product=Xtend&query_based_on=Xtext%202.30&query_format=advanced&status_whiteboard=v2.38&status_whiteboard_type=allwordssubstr) diff --git a/xtend-website/documentation/204_activeannotations.md b/xtend-website/documentation/204_activeannotations.md index e6733ff..fd702ef 100644 --- a/xtend-website/documentation/204_activeannotations.md +++ b/xtend-website/documentation/204_activeannotations.md @@ -240,13 +240,13 @@ Therefore, careful testing and debugging of the processor is essential. It is be org.eclipse.xtend org.eclipse.xtend.core - 2.37.0 + 2.38.0 test org.eclipse.xtext org.eclipse.xtext.xbase.testing - 2.37.0 + 2.38.0 test ``` diff --git a/xtend-website/download.md b/xtend-website/download.md index fae3b9c..508ef0b 100644 --- a/xtend-website/download.md +++ b/xtend-website/download.md @@ -52,7 +52,7 @@ If you already have a project, you need to add the Xtend library: org.eclipse.xtend org.eclipse.xtend.lib - 2.37.0 + 2.38.0 ``` @@ -62,7 +62,7 @@ and the Xtend compiler plugin: org.eclipse.xtend xtend-maven-plugin - 2.37.0 + 2.38.0 @@ -90,7 +90,7 @@ plugins { repositories.mavenCentral() dependencies { - compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.37.0' + compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.38.0' } ``` diff --git a/xtext-website/_posts/releasenotes/2025-02-26-version-2-38-0.md b/xtext-website/_posts/releasenotes/2025-02-26-version-2-38-0.md new file mode 100644 index 0000000..a09e8c6 --- /dev/null +++ b/xtext-website/_posts/releasenotes/2025-02-26-version-2-38-0.md @@ -0,0 +1,66 @@ +--- +layout: post +title: Xtext 2.38.0 Release Notes +date: 2025-02-26 +categories: releasenotes +published: true +--- + +## Call to Action: Secure the future maintenance of Xtext + +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 [https://github.com/eclipse-xtext/xtext/issues/1721](https://github.com/eclipse-xtext/xtext/issues/1721). + +## Relevant changes + +* A new class, `TemporaryFolder,` has been added to the bundle `org.eclipse.xtext.testing`, meant to replace the class `TemporaryFolder`, now deprecated, in `org.eclipse.xtext.xbase.testing`. Clients should update to the new class: the deprecated one will be removed in the future. +* Our project wizard for Maven/Tycho projects now generates this dependency for the `exec-maven-plugin` configuration for running the MWE2 workflow: + + ```xml + + org.eclipse.xtext + org.eclipse.xtext.xtext.generator.dependencies + ${xtextVersion} + + ``` + + to avoid possible problems with EMF/Platform dependencies (e.g., `NoSuchMethodError`) due to misaligned transitive dependencies. + This replaces the previously generated dependency `xtext-antlr-generator`, which is included in the new dependency. + For existing projects, we suggest to perform such a change manually. + The `org.eclipse.xtext.xtext.generator.dependencies` bundle was introduced in the previous release. +* A new method was introduced, `IResourcesSetupUtil.waitForJdtIndex`, that blocks until the JDT index finishes its indexing. This is now automatically called from `waitForBuild`, `cleanBuild` and `fullBuild`. This new mechanism removed flaky UI tests from our builds. + +## Breaking changes + +Xtext now requires Java 17 as the minimal Java version and 2024-03 as the minimal target platform. + +## Upgrades + +## Deprecations + +- The method `IResourcesSetupUtil.isAutobuild(boolean)` has been deprecated and will be removed in a future release; its parameter was never used. The new method `IResourcesSetupUtil.isAutobuild()` should be used instead. +- The class `TargetPlatformUtil` and its method `setTargetPlatform` have been deprecated: with recent versions of Tycho and PDE, they are not needed anymore. + +## Removals + +## Credits + +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). + +- Lorenzo Bettini +- Christian Dietrich +- Sebastian Zarnekow +- Mehmet Emin Karaman +- Rubén Porras Campo +- Martin Jobst +- Tommaso Fonda +- Ed Merks + +## Fixed Issues + +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: + +* [Fixed GitHub issues](https://github.com/search?utf8=%E2%9C%93&q=is%3Aissue+milestone%3ARelease_2.38+is%3Aclosed+repo%3Aeclipse-xtext%2Fxtext&type=issues&ref=searchresults) + +* [Closed Pull Requests](https://github.com/search?utf8=%E2%9C%93&q=is%3Apr+milestone%3ARelease_2.38+is%3Aclosed+repo%3Aeclipse-xtext%2Fxtext&type=pullrequests&ref=searchresults) + +* [Fixed Eclipse Bugzilla tickets](https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&classification=Modeling&classification=Tools&columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&f0=OP&f1=OP&f3=CP&f4=CP&known_name=Xtext%202.38&list_id=16618269&product=TMF&product=Xtend&query_based_on=Xtext%202.38&query_format=advanced&status_whiteboard=v2.38&status_whiteboard_type=allwordssubstr) diff --git a/xtext-website/community.html b/xtext-website/community.html index 54e6129..d04e6aa 100644 --- a/xtext-website/community.html +++ b/xtext-website/community.html @@ -9,16 +9,16 @@

Resources

 
- +
image
-

Forum

+

GitHub Discussions

-

The Xtext™ forum is the first source for getting answers in case you got stuck. +

Xtext™ GitHub Discussions is the first source for getting answers in case you got stuck. The community is very friendly.

@@ -37,7 +37,7 @@

Forum

Found a Bug?

-

Bug reports and enhancement request are tracked at GitHub.org. Please +

Bug reports and enhancement request are tracked at GitHub.com. Please explain the problem and provide a reduced but reproducible example.

@@ -53,7 +53,7 @@

Found a Bug?

image
-

Github

+

GitHub

The Xtext™ source code is available on GitHub. You'll find more information on how to contribute to the project in the README.md contained there.

@@ -80,6 +80,24 @@

Twitter

 
+
+
 
+
+ +
+
+ image +
+
+

Forum (archived)

+
+
+

The Xtext™ forum, now read-only, is still a useful resource, as it contains several years' worth of discussion about Xtext.

+
+
+
+
 
+


diff --git a/xtext-website/documentation/301_grammarlanguage.md b/xtext-website/documentation/301_grammarlanguage.md index 117b1f4..f304451 100644 --- a/xtext-website/documentation/301_grammarlanguage.md +++ b/xtext-website/documentation/301_grammarlanguage.md @@ -29,7 +29,7 @@ The second aspect that can be deduced from the first line of the grammar is its ### EPackage Declarations {#package-declarations} -Xtext parsers create in-memory object graphs while consuming text. Such object-graphs are instances of [EMF](https://www.eclipse.org/modeling/emf/) Ecore models. An Ecore model basically consists of an EPackage containing EClasses, EDataTypes and EEnums (see the [section on EMF](308_emf_integration.html#model-metamodel) for more details) and describes the structure of the instantiated objects. Xtext can infer Ecore models from a grammar (see [Ecore model inference](301_grammarlanguage.html#metamodel-inference)) but it is also possible to import existing Ecore models. You can even mix both approaches and use multiple existing Ecore models and infer some others from a single grammar. This allows for easy reuse of existing abstractions while still having the advantage of short turnarounds with derived Ecore models. +Xtext parsers create in-memory object graphs while consuming text. Such object-graphs are instances of [EMF](https://projects.eclipse.org/projects/modeling.emf.emf) Ecore models. An Ecore model basically consists of an EPackage containing EClasses, EDataTypes and EEnums (see the [section on EMF](308_emf_integration.html#model-metamodel) for more details) and describes the structure of the instantiated objects. Xtext can infer Ecore models from a grammar (see [Ecore model inference](301_grammarlanguage.html#metamodel-inference)) but it is also possible to import existing Ecore models. You can even mix both approaches and use multiple existing Ecore models and infer some others from a single grammar. This allows for easy reuse of existing abstractions while still having the advantage of short turnarounds with derived Ecore models. #### EPackage Generation @@ -766,4 +766,4 @@ terminal ANY_OTHER: --- -**[Next Chapter: Configuration](302_configuration.html)** \ No newline at end of file +**[Next Chapter: Configuration](302_configuration.html)** diff --git a/xtext-website/documentation/303_runtime_concepts.md b/xtext-website/documentation/303_runtime_concepts.md index f078e94..a4e1fb5 100644 --- a/xtext-website/documentation/303_runtime_concepts.md +++ b/xtext-website/documentation/303_runtime_concepts.md @@ -531,7 +531,7 @@ Serialization is invoked when calling [XtextResource.save(..)]({{site.src.xtext} ### The Contract {#serialization-contract} -The contract of serialization says that a model which is saved (serialized) to its textual representation and then loaded (parsed) again yields a new model that is equal to the original model. Please be aware that this does *not* imply that loading a textual representation and serializing it back produces identical textual representations. However, the serialization algorithm tries to restore as much information as possible. That is, if the parsed model was not modified in-memory, the serialized output will usually be equal to the previous input. Unfortunately, this cannot be ensured for each and every case. A use case where is is hardly possible, is shown in the following example: +The contract of serialization says that a model which is saved (serialized) to its textual representation and then loaded (parsed) again yields a new model that is equal to the original model. Please be aware that this does *not* imply that loading a textual representation and serializing it back produces identical textual representations. However, the serialization algorithm tries to restore as much information as possible. That is, if the parsed model was not modified in-memory, the serialized output will usually be equal to the previous input. Unfortunately, this cannot be ensured for each and every case. A use case where it is hardly possible, is shown in the following example: ```xtext MyRule: @@ -601,13 +601,13 @@ Example: ```xtext PluralRule: - 'contents:' count=INT Plural; + 'contents:' count=INT PLURAL; -terminal Plural: +terminal PLURAL: 'item' | 'items'; ``` -Valid models for this example are `contents 1 item` or `contents 5 items`. However, it is not stored in the semantic model whether the keyword *item* or *items* has been parsed. This is due to the fact that the rule call *Plural* is unassigned. However, the [parse tree constructor](#parse-tree-constructor) needs to decide which value to write during serialization. This decision can be be made by customizing the [IValueSerializer.serializeUnassignedValue(EObject, RuleCall, INode)]({{site.src.xtext}}/org.eclipse.xtext/src/org/eclipse/xtext/parsetree/reconstr/ITokenSerializer.java). +Valid models for this example are `contents 1 item` or `contents 5 items`. However, it is not stored in the semantic model whether the keyword *item* or *items* has been parsed. This is due to the fact that the rule call *PLURAL* is unassigned. However, the [parse tree constructor](#parse-tree-constructor) needs to decide which value to write during serialization. This decision can be be made by customizing the [IValueSerializer.serializeUnassignedValue(EObject, RuleCall, INode)]({{site.src.xtext}}/org.eclipse.xtext/src/org/eclipse/xtext/parsetree/reconstr/ITokenSerializer.java). ### Cross-Reference Serializer {#cross-reference-serializer} @@ -632,6 +632,91 @@ public interface ITokenStream { } ``` +## Tree Manipulation {#tree-manipulation} +An implementation of [IDerivedStateComputer](https://github.com/eclipse/xtext/blob/main/org.eclipse.xtext/src/org/eclipse/xtext/resource/IDerivedStateComputer.java) can be used to modify the objects in the abstract syntax tree after parsing. Commonly, implementations of this interface are used to modify the objects' features programmatically. + +As an example, let's take a simple Entity DSL defined by the following grammar: + +```xtext +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + entities+=Entity*; + +Entity: + 'Entity' name=QUOTED_NAME shortName=ID?; + +terminal QUOTED_NAME: + '\'' ID (ID | ' ')* '\''; +``` + +This grammar allows declaring that an Entity has got a name and a short name. The former is mandatory, and composed by one or more tokens matched by the ID terminal rule, each followed by an arbitrary number of whitespaces. The resulting name must then be wrapped in single quotation marks. The latter is optional, and consists of a simple ID token. Suppose we want all Entities in our AST to have a short name: we can use a custom IDerivedStateComputer to achieve this. + +Let's see a sample implementation of this interface that takes care of setting the `shortName` feature of Entities which lack a short name. We want to set it to the name of the Entity, deprived of the quotation marks, without any whitespace, and suffixed with "_computed". For this purpose, we write the following implementation and place it, for instance, inside the `org.xtext.example.mydsl.services` package of our DSL project: + +```java +package org.xtext.example.mydsl.services; + +import org.eclipse.xtext.resource.DerivedStateAwareResource; +import org.eclipse.xtext.resource.IDerivedStateComputer; +import org.xtext.example.mydsl.myDsl.Entity; + +public class MyDslDerivedStateComputer implements IDerivedStateComputer { + private static final String SUFFIX = "_computed"; + + @Override + public void installDerivedState(DerivedStateAwareResource resource, boolean preLinkingPhase) { + resource.getAllContents().forEachRemaining(eObject -> { + if (eObject instanceof final Entity entity) { + if (entity.getShortName() == null) { + final String name = entity.getName(); + final String shortName = name + .substring(1, name.length() - 1) + .replaceAll("\\s", "") + .trim() + .concat(SUFFIX); + entity.setShortName(shortName); + } + } + }); + } + + @Override + public void discardDerivedState(DerivedStateAwareResource resource) { + resource.getAllContents().forEachRemaining(eObject -> { + if (eObject instanceof final Entity entity) { + if (entity.getShortName().endsWith(SUFFIX)) { + entity.setShortName(null); + } + } + }); + } +} +``` + +The `installDerivedState()` method is responsible for applying the desired changes. For serialization purposes, we also need to implement `discardDerivedState()` to tell the framework how to revert the changes applied programmatically. Note that this implementation sets to `null` the `shortName` feature of any Entity whose short name ends with the suffix, regardless of the origin of such name (input by the user or set by `installDerivedState()`). + +In order for Xtext to actually use our custom IDerivedStateComputer, as a last step we need to bind it in our runtime module: + +```java +public class MyDslRuntimeModule extends AbstractMyDslRuntimeModule { + public Class bindIDerivedStateComputer() { + return MyDslDerivedStateComputer.class; + } + + @Override + public Class bindXtextResource() { + return DerivedStateAwareResource.class; + } + + public Class bindIResourceDescriptionManager() { + return DerivedStateAwareResourceDescriptionManager.class; + } +} +``` + ## Formatting {#formatting} Formatting (aka. pretty printing) is the process of rearranging the text in a document to improve the readability without changing the semantic value of the document. Therefore a formatter is responsible for arranging line-wraps, indentation, whitespace, etc. in a text to emphasize its structure, but it is not supposed to alter a document in a way that impacts the semantic model. diff --git a/xtext-website/documentation/308_emf_integration.md b/xtext-website/documentation/308_emf_integration.md index f9ce751..7d00f44 100644 --- a/xtext-website/documentation/308_emf_integration.md +++ b/xtext-website/documentation/308_emf_integration.md @@ -6,7 +6,7 @@ part: Reference Documentation # {{page.title}} {#emf-integration} -Xtext relies heavily on EMF internally, but it can also be used as the serialization back-end of other EMF-based tools. In this section we introduce the basic concepts of the [Eclipse Modeling Framework (EMF)](https://www.eclipse.org/modeling/emf/) in the context of Xtext. If you want to learn more about EMF, we recommend reading the [EMF book](https://www.eclipse.org/modeling/emf/). +Xtext relies heavily on EMF internally, but it can also be used as the serialization back-end of other EMF-based tools. In this section we introduce the basic concepts of the [Eclipse Modeling Framework (EMF)](https://projects.eclipse.org/projects/modeling.emf.emf) in the context of Xtext. If you want to learn more about EMF, we recommend reading the [EMF book](https://wiki.eclipse.org/Eclipse_Modeling_Framework#Documentation_.26_Assistance). ## Model, Ecore Model, and Ecore {#model-metamodel} diff --git a/xtext-website/documentation/310_eclipse_support.md b/xtext-website/documentation/310_eclipse_support.md index 3d20497..ef69860 100644 --- a/xtext-website/documentation/310_eclipse_support.md +++ b/xtext-website/documentation/310_eclipse_support.md @@ -388,12 +388,13 @@ Note that the method `_text(modelElement)` can return a [String]({{site.javadoc. private StylerFactory stylerFactory; public Object _text(Entity entity) { - if(entity.isAbstract()) { + if (entity.isAbstract()) { return new StyledString(entity.getName(), stylerFactory - .createXtextStyleAdapterStyler(getTypeTextStyle()))); - else + .createXtextStyleAdapterStyler(getTypeTextStyle())); + } else { return entity.getName(); + } } protected TextStyle getTypeTextStyle() { diff --git a/xtext-website/documentation/350_continuous_integration.md b/xtext-website/documentation/350_continuous_integration.md index c253812..b9c91b9 100644 --- a/xtext-website/documentation/350_continuous_integration.md +++ b/xtext-website/documentation/350_continuous_integration.md @@ -307,8 +307,9 @@ To further speed up the p2 dependency resolution step, use the concrete build re | Xtext | EMF | MWE2/MWE | Xpand | Eclipse | All included in | | ------------- | ------------- | ----------- | ----------- | ----------- | ----------- | -| [2.37.0]({{page.upsite.xtext}}releases/2.37.0/) | [2.39.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.39.0) (2.29.0) | [2.20.0]({{page.upsite.mwe}}releases/2.20.0/) (2.9.1) | no longer supported | [4.34.0]({{page.upsite.eclipse}}releases/2024-12) (4.24) | [2024-12]({{page.upsite.eclipse}}releases/2024-12)| -| [2.36.0]({{page.upsite.xtext}}releases/2.36.0/) | [2.38.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.38.0) (2.29.0) | [2.19.0]({{page.upsite.mwe}}releases/2.19.0/) (2.9.1) | no longer supported | [4.33.0]({{page.upsite.eclipse}}releases/2024-09) (4.23) | [2024-09]({{page.upsite.eclipse}}releases/2024-09)| +| [2.38.0]({{page.upsite.xtext}}releases/2.38.0/) | [2.41.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.41.0) (2.36.0) | [2.21.0]({{page.upsite.mwe}}releases/2.21.0/) (2.9.1) | no longer supported | [4.35.0]({{page.upsite.eclipse}}releases/2025-03) (4.30) | [2025-03]({{page.upsite.eclipse}}releases/2025-03)| +| [2.37.0]({{page.upsite.xtext}}releases/2.37.0/) | [2.40.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.40.0) (2.29.0) | [2.20.0]({{page.upsite.mwe}}releases/2.20.0/) (2.9.1) | no longer supported | [4.34.0]({{page.upsite.eclipse}}releases/2024-12) (4.24) | [2024-12]({{page.upsite.eclipse}}releases/2024-12)| +| [2.36.0]({{page.upsite.xtext}}releases/2.36.0/) | [2.39.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.39.0) (2.29.0) | [2.19.0]({{page.upsite.mwe}}releases/2.19.0/) (2.9.1) | no longer supported | [4.33.0]({{page.upsite.eclipse}}releases/2024-09) (4.23) | [2024-09]({{page.upsite.eclipse}}releases/2024-09)| | [2.35.0]({{page.upsite.xtext}}releases/2.35.0/) | [2.38.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.38.0) (2.29.0) | [2.18.0]({{page.upsite.mwe}}releases/2.18.0/) (2.9.1) | no longer supported | [4.32.0]({{page.upsite.eclipse}}releases/2024-06) (4.23) | [2024-06]({{page.upsite.eclipse}}releases/2024-06)| | [2.34.0]({{page.upsite.xtext}}releases/2.34.0/) | [2.37.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.37.0) (2.29.0) | [2.17.0]({{page.upsite.mwe}}releases/2.17.0/) (2.9.1) | no longer supported | [4.31.0]({{page.upsite.eclipse}}releases/2024-03) (4.23) | [2024-03]({{page.upsite.eclipse}}releases/2024-03)| | [2.33.0]({{page.upsite.xtext}}releases/2.33.0/) | [2.36.0]({{page.upsite.eclipse}}modeling/emf/emf/builds/release/2.36.0) (2.29.0) | [2.16.0]({{page.upsite.mwe}}releases/2.16.0/) (2.9.1) | no longer supported | [4.30.0]({{page.upsite.eclipse}}releases/2023-12) (4.23) | [2023-12]({{page.upsite.eclipse}}releases/2023-12)| @@ -340,7 +341,7 @@ To further speed up the p2 dependency resolution step, use the concrete build re | [2.8.3]({{page.upsite.xtext}}releases/2.8.3/), [2.8.2]({{page.upsite.xtext}}releases/2.8.2/), [2.8.1]({{page.upsite.xtext}}releases/2.8.1/) | [2.11.0]({{page.upsite.emf}}2.11/core/R201506010402/) (2.10.2) | [2.8.0]({{page.upsite.mwe}}releases/2.8.0/) (2.7.1) | [2.1.0]({{page.upsite.xpand}}releases/R201505260349) (1.4) | [4.5.0]({{page.upsite.eclipse}}eclipse/updates/4.5/R-4.5-201506032000/) (3.6) | [Mars R]({{page.upsite.eclipse}}releases/mars/201506241002/)| | [2.7.3]({{page.upsite.xtext}}releases/maintenance/R201411190455/) | [2.10.2]({{page.upsite.emf}}2.10.x/core/S201501230452/) (2.10) | [2.7.0]({{page.upsite.mwe}}releases/R201409021051/mwe2lang/) [1.3.4]({{page.upsite.mwe}}releases/R201409021027/mwe) (2.7.0/1.2) | [2.0.0]({{page.upsite.xpand}}releases/R201406030414) (1.4) | [4.4.2]({{page.upsite.eclipse}}eclipse/updates/4.4/R-4.4.2-201502041700) (3.6) |[Luna SR2]({{page.upsite.eclipse}}releases/luna/201502271000/)| -The following is an example target platform definition for Xtext 2.37.0 and Eclipse 4.34 alias 2024-12. +The following is an example target platform definition for Xtext 2.38.0 and Eclipse 4.35 alias 2025-03. ```xml @@ -349,7 +350,7 @@ The following is an example target platform definition for Xtext 2.37.0 and Ecli - + @@ -358,7 +359,7 @@ The following is an example target platform definition for Xtext 2.37.0 and Ecli - + diff --git a/xtext-website/index.html b/xtext-website/index.html index 4842941..01acfe2 100644 --- a/xtext-website/index.html +++ b/xtext-website/index.html @@ -177,7 +177,7 @@

e.g. GEF, Sirius or Graphiti. Xtext™ offers this flexibility - by supporting EMF as common data + by supporting EMF as common data layer. An Xtext™ language can be used as storage format for another primary editor, and you can even embed text editors inside a graphical editor.