From 812c9b2593cb44ffda14dde5bc185e0b85b853c9 Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Wed, 22 Nov 2023 06:06:03 +0100 Subject: [PATCH 1/3] repare 2.34 ref projects Signed-off-by: Christian Dietrich --- .../.classpath | 12 + .../.gitignore | 1 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 16 + .../build.properties | 4 + .../pom.xml | 146 +++ .../domainmodel/ide/DomainmodelIdeModule.java | 16 + .../domainmodel/ide/DomainmodelIdeSetup.java | 27 + .../.project | 9 + .../org.eclipse.core.resources.prefs | 2 + .../buildDomainmodel.launch | 18 + .../feature/.project | 23 + .../org.eclipse.core.resources.prefs | 2 + .../feature/build.properties | 1 + .../feature/feature.xml | 29 + .../feature/pom.xml | 14 + .../pom.xml | 364 ++++++++ .../repository/.project | 17 + .../org.eclipse.core.resources.prefs | 2 + .../repository/category.xml | 10 + .../repository/pom.xml | 33 + .../tp/.project | 17 + .../org.eclipse.core.resources.prefs | 2 + .../tp/domainmodel.target | 29 + .../tp/pom.xml | 41 + .../.classpath | 13 + .../.gitignore | 1 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.core.runtime.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 76 ++ .../.settings/org.eclipse.jdt.launching.prefs | 3 + .../META-INF/MANIFEST.MF | 22 + .../build.properties | 5 + ...pse.xtext.example.domainmodel.tests.launch | 21 + .../pom.xml | 29 + .../domainmodel/tests/CompilerTest.xtend | 292 ++++++ .../tests/DomainmodelParsingTest.xtend | 114 +++ .../domainmodel/tests/FormatterTest.xtend | 93 ++ .../tests/OrganizeImportsTest.xtend | 850 ++++++++++++++++++ .../domainmodel/tests/ValidationTests.xtend | 262 ++++++ .../tests/XbaseIntegrationTest.java | 64 ++ .../.classpath | 13 + .../.gitignore | 1 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 76 ++ .../META-INF/MANIFEST.MF | 27 + .../build.properties | 6 + ....xtext.example.domainmodel.ui.tests.launch | 41 + .../pom.xml | 30 + .../domainmodel/ui/tests/AutoEditTest.xtend | 104 +++ .../domainmodel/ui/tests/CodeMiningTest.xtend | 87 ++ .../ui/tests/ContentAssistTest.xtend | 98 ++ .../domainmodel/ui/tests/FoldingTest.xtend | 132 +++ .../ui/tests/HighlightingTest.xtend | 235 +++++ .../domainmodel/ui/tests/HoverTest.xtend | 113 +++ .../ui/tests/HyperlinkingTest.xtend | 117 +++ .../ui/tests/LabelProviderTest.java | 87 ++ .../domainmodel/ui/tests/OutlineTest.xtend | 70 ++ .../domainmodel/ui/tests/QuickfixTest.xtend | 143 +++ .../.classpath | 12 + .../.gitignore | 2 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.core.runtime.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 394 ++++++++ .../.settings/org.eclipse.jdt.launching.prefs | 3 + .../.settings/org.eclipse.jdt.ui.prefs | 118 +++ .../.settings/org.eclipse.pde.prefs | 32 + .../META-INF/MANIFEST.MF | 37 + .../about.html | 36 + .../build.properties | 8 + .../icons/DataType.gif | Bin 0 -> 349 bytes .../icons/Entity.gif | Bin 0 -> 367 bytes .../icons/Operation.gif | Bin 0 -> 573 bytes .../icons/PackageDeclaration.gif | Bin 0 -> 110 bytes .../icons/Property.gif | Bin 0 -> 329 bytes .../icons/editor.gif | Bin 0 -> 556 bytes .../icons/upcase.png | Bin 0 -> 174 bytes .../plugin.xml | 669 ++++++++++++++ .../pom.xml | 13 + .../domainmodel/ui/DomainmodelUiModule.java | 51 ++ .../FantasticEditStrategyProvider.java | 80 ++ .../DomainmodelCodeMiningProvider.java | 96 ++ .../DomainmodelProposalProvider.java | 17 + .../AssociationHierarchyBuilder.java | 92 ++ ...ociationHierarchyNodeLocationProvider.java | 34 + .../AssociationHierarchyViewPart.java | 31 + .../OpenAssociationHierarchyHandler.java | 48 + .../DomainmodelDescriptionLabelProvider.java | 24 + .../ui/labeling/DomainmodelLabelProvider.java | 156 ++++ ...modelLinkingDiagnosticMessageProvider.java | 56 ++ .../DomainmodelHyperlinkHelper.java | 87 ++ .../DomainmodelOutlineTreeProvider.java | 42 + .../outline/FilterOperationsContribution.java | 48 + .../quickfix/DomainmodelQuickfixProvider.java | 46 + .../ui/search/DomainmodelSearchFilter.java | 22 + .../templates/templates.xml | 26 + .../.classpath | 13 + .../.gitignore | 2 + .../.project | 34 + .../org.eclipse.core.resources.prefs | 2 + .../.settings/org.eclipse.core.runtime.prefs | 2 + .../.settings/org.eclipse.jdt.core.prefs | 399 ++++++++ .../.settings/org.eclipse.jdt.launching.prefs | 3 + .../.settings/org.eclipse.jdt.ui.prefs | 118 +++ .../.settings/org.eclipse.pde.prefs | 25 + .../GenerateDomainmodel.mwe2.launch | 14 + .../META-INF/MANIFEST.MF | 33 + .../about.html | 36 + .../build.properties | 19 + .../plugin.xml | 10 + .../pom.xml | 134 +++ .../example/domainmodel/Domainmodel.xtext | 38 + .../domainmodel/DomainmodelRuntimeModule.java | 21 + .../DomainmodelStandaloneSetup.java | 20 + .../domainmodel/GenerateDomainmodel.mwe2 | 73 ++ .../formatting2/DomainmodelFormatter.java | 96 ++ .../jvmmodel/DomainmodelJvmModelHelper.java | 47 + .../DomainmodelJvmModelInferrer.xtend | 104 +++ .../scoping/DomainmodelScopeProvider.java | 20 + .../DomainmodelSemanticSequencer.java | 13 + .../DomainmodelSyntacticSequencer.java | 23 + .../validation/DomainmodelValidator.java | 101 +++ .../domainmodel/validation/IssueCodes.java | 28 + .../build.gradle | 40 + .../gradle/source-layout.gradle | 30 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../org.xtext.example.mydsl.parent/gradlew | 249 +++++ .../gradlew.bat | 92 ++ .../org.xtext.example.mydsl.ide/build.gradle | 5 + ...Dsl (mydsl) Language Infrastructure.launch | 14 + .../org.xtext.example.mydsl/build.gradle | 40 + .../xtext/example/mydsl/GenerateMyDsl.mwe2 | 50 ++ .../java/org/xtext/example/mydsl/MyDsl.xtext | 9 + .../settings.gradle | 2 + .../build.gradle | 40 + .../gradle/source-layout.gradle | 30 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../org.xtext.example.mydsl.parent/gradlew | 249 +++++ .../gradlew.bat | 92 ++ .../org.xtext.example.mydsl.ide/build.gradle | 5 + ...Dsl (mydsl) Language Infrastructure.launch | 14 + .../org.xtext.example.mydsl/build.gradle | 40 + .../xtext/example/mydsl/GenerateMyDsl.mwe2 | 50 ++ .../java/org/xtext/example/mydsl/MyDsl.xtext | 9 + .../settings.gradle | 2 + .../org.xtext.example.mydsl.ide/pom.xml | 68 ++ .../org.xtext.example.mydsl.parent/pom.xml | 186 ++++ ...Dsl (mydsl) Language Infrastructure.launch | 18 + .../jar-with-ecore-model.xml | 19 + .../org.xtext.example.mydsl/pom.xml | 230 +++++ .../xtext/example/mydsl/GenerateMyDsl.mwe2 | 50 ++ .../java/org/xtext/example/mydsl/MyDsl.xtext | 9 + .../org.xtext.example.mydsl.ide/pom.xml | 68 ++ .../org.xtext.example.mydsl.parent/pom.xml | 186 ++++ ...Dsl (mydsl) Language Infrastructure.launch | 18 + .../jar-with-ecore-model.xml | 19 + .../2.34.0/org.xtext.example.mydsl/pom.xml | 230 +++++ .../xtext/example/mydsl/GenerateMyDsl.mwe2 | 50 ++ .../java/org/xtext/example/mydsl/MyDsl.xtext | 9 + .../build.properties | 1 + .../feature.xml | 23 + .../org.xtext.example.mydsl.feature/pom.xml | 16 + .../META-INF/MANIFEST.MF | 12 + .../build.properties | 6 + .../org.xtext.example.mydsl.ide/pom.xml | 22 + .../org.xtext.example.mydsl.parent/pom.xml | 354 ++++++++ .../category.xml | 11 + .../pom.xml | 52 ++ .../org.xtext.example.mydsl.target.target | 46 + .../org.xtext.example.mydsl.target/pom.xml | 16 + .../META-INF/MANIFEST.MF | 14 + .../build.properties | 6 + .../org.xtext.example.mydsl.tests/pom.xml | 22 + .../META-INF/MANIFEST.MF | 16 + .../build.properties | 6 + .../org.xtext.example.mydsl.ui.tests/pom.xml | 29 + .../META-INF/MANIFEST.MF | 17 + .../build.properties | 7 + .../org.xtext.example.mydsl.ui/pom.xml | 22 + ...Dsl (mydsl) Language Infrastructure.launch | 18 + .../.launch/Launch Runtime Eclipse.launch | 34 + .../META-INF/MANIFEST.MF | 12 + .../org.xtext.example.mydsl/build.properties | 18 + .../org.xtext.example.mydsl/pom.xml | 130 +++ .../xtext/example/mydsl/GenerateMyDsl.mwe2 | 53 ++ .../src/org/xtext/example/mydsl/MyDsl.xtext | 9 + .../build.properties | 1 + .../feature.xml | 23 + .../org.xtext.example.mydsl.feature/pom.xml | 16 + .../META-INF/MANIFEST.MF | 12 + .../build.properties | 6 + .../org.xtext.example.mydsl.ide/pom.xml | 22 + .../org.xtext.example.mydsl.parent/pom.xml | 354 ++++++++ .../category.xml | 11 + .../pom.xml | 52 ++ .../org.xtext.example.mydsl.target.target | 46 + .../org.xtext.example.mydsl.target/pom.xml | 16 + .../META-INF/MANIFEST.MF | 14 + .../build.properties | 6 + .../org.xtext.example.mydsl.tests/pom.xml | 22 + .../META-INF/MANIFEST.MF | 16 + .../build.properties | 6 + .../org.xtext.example.mydsl.ui.tests/pom.xml | 29 + .../META-INF/MANIFEST.MF | 17 + .../build.properties | 7 + .../2.34.0/org.xtext.example.mydsl.ui/pom.xml | 22 + ...Dsl (mydsl) Language Infrastructure.launch | 18 + .../.launch/Launch Runtime Eclipse.launch | 34 + .../META-INF/MANIFEST.MF | 12 + .../org.xtext.example.mydsl/build.properties | 18 + .../2.34.0/org.xtext.example.mydsl/pom.xml | 130 +++ .../xtext/example/mydsl/GenerateMyDsl.mwe2 | 53 ++ .../src/org/xtext/example/mydsl/MyDsl.xtext | 9 + launch/refproject-greetings-gradle-j11.launch | 2 +- launch/refproject-greetings-gradle.launch | 2 +- launch/refproject-greetings-maven-j11.launch | 2 +- launch/refproject-greetings-maven.launch | 2 +- launch/refproject-greetings-tycho-j11.launch | 2 +- launch/refproject-greetings-tycho.launch | 2 +- 226 files changed, 12109 insertions(+), 6 deletions(-) create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.classpath create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.gitignore create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.jdt.core.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/META-INF/MANIFEST.MF create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/build.properties create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeModule.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeSetup.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/buildDomainmodel.launch create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/build.properties create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/feature.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/category.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/domainmodel.target create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.classpath create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.gitignore create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.runtime.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.core.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.launching.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/META-INF/MANIFEST.MF create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/build.properties create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/org.eclipse.xtext.example.domainmodel.tests.launch create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/CompilerTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/DomainmodelParsingTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/FormatterTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/OrganizeImportsTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/ValidationTests.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/XbaseIntegrationTest.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.classpath create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.gitignore create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.jdt.core.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/META-INF/MANIFEST.MF create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/build.properties create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/org.eclipse.xtext.example.domainmodel.ui.tests.launch create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/AutoEditTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/CodeMiningTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/ContentAssistTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/FoldingTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HighlightingTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HoverTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HyperlinkingTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/LabelProviderTest.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/OutlineTest.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/QuickfixTest.xtend create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.classpath create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.gitignore create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.runtime.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.launching.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.ui.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.pde.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/META-INF/MANIFEST.MF create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/about.html create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/build.properties create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/DataType.gif create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Entity.gif create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Operation.gif create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/PackageDeclaration.gif create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Property.gif create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/editor.gif create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/upcase.png create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/plugin.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/DomainmodelUiModule.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/autoedit/FantasticEditStrategyProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/codemining/DomainmodelCodeMiningProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/contentassist/DomainmodelProposalProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyBuilder.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyNodeLocationProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyViewPart.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/OpenAssociationHierarchyHandler.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelDescriptionLabelProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelLabelProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/linking/DomainmodelLinkingDiagnosticMessageProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/navigation/DomainmodelHyperlinkHelper.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/DomainmodelOutlineTreeProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/FilterOperationsContribution.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/quickfix/DomainmodelQuickfixProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/search/DomainmodelSearchFilter.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/templates/templates.xml create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.classpath create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.gitignore create mode 100755 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.project create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.resources.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.runtime.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.core.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.launching.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.ui.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.pde.prefs create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/GenerateDomainmodel.mwe2.launch create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/META-INF/MANIFEST.MF create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/about.html create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/build.properties create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/plugin.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/pom.xml create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/Domainmodel.xtext create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelRuntimeModule.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelStandaloneSetup.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/GenerateDomainmodel.mwe2 create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/formatting2/DomainmodelFormatter.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelHelper.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelInferrer.xtend create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/scoping/DomainmodelScopeProvider.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSemanticSequencer.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSyntacticSequencer.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/DomainmodelValidator.java create mode 100644 domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/IssueCodes.java create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/build.gradle create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/source-layout.gradle create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.jar create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties create mode 100755 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew.bat create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext create mode 100644 greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/settings.gradle create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/build.gradle create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/source-layout.gradle create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.jar create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties create mode 100755 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew.bat create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext create mode 100644 greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/settings.gradle create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl/jar-with-ecore-model.xml create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl/pom.xml create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 create mode 100644 greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl.ide/pom.xml create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl.parent/pom.xml create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl/jar-with-ecore-model.xml create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl/pom.xml create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 create mode 100644 greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/build.properties create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/feature.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/build.properties create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/category.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/build.properties create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/build.properties create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/build.properties create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/build.properties create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/pom.xml create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 create mode 100644 greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/build.properties create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/feature.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/build.properties create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.parent/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/category.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.target/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/build.properties create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/build.properties create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/build.properties create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/META-INF/MANIFEST.MF create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/build.properties create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/pom.xml create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 create mode 100644 greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.classpath b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.classpath new file mode 100644 index 00000000..3412d981 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.gitignore b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.gitignore new file mode 100644 index 00000000..ba077a40 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.gitignore @@ -0,0 +1 @@ +bin diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.project new file mode 100644 index 00000000..dbf82fa2 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.project @@ -0,0 +1,34 @@ + + + org.eclipse.xtext.example.domainmodel.ide + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.jdt.core.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..f4d933e4 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=11 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/META-INF/MANIFEST.MF b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/META-INF/MANIFEST.MF new file mode 100644 index 00000000..b23477ca --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Xtext Domainmodel Example - Generic IDE +Bundle-Vendor: Eclipse Xtext +Bundle-Version: 2.34.0.qualifier +Bundle-SymbolicName: org.eclipse.xtext.example.domainmodel.ide; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", + org.eclipse.xtext.example.domainmodel, + org.eclipse.xtext.ide, + org.eclipse.xtext.xbase.ide +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: org.eclipse.xtext.example.domainmodel.ide;x-internal:=true, + org.eclipse.xtext.example.domainmodel.ide.contentassist.antlr, + org.eclipse.xtext.example.domainmodel.ide.contentassist.antlr.internal +Automatic-Module-Name: org.eclipse.xtext.example.domainmodel.ide diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/build.properties b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/build.properties new file mode 100644 index 00000000..43ac9785 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/build.properties @@ -0,0 +1,4 @@ +source.. = src/,\ + src-gen/ +bin.includes = .,\ + META-INF/ diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/pom.xml new file mode 100644 index 00000000..2ff93215 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/pom.xml @@ -0,0 +1,146 @@ + + 4.0.0 + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + ../org.eclipse.xtext.example.domainmodel.releng + + org.eclipse.xtext.example.domainmodel.ide + eclipse-plugin + + + + ch.qos.reload4j + reload4j + + + org.eclipse.lsp4j + org.eclipse.lsp4j + + + org.ow2.asm + asm + + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.eclipse.tycho + target-platform-configuration + + consider + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.3.0 + + + copy-dependencies + package + + copy-dependencies + + + ${project.build.directory}/libs + false + false + true + true + + com.ibm.icu, + org.apache.ant, + org.apache.commons.lang, + org.apache.commons.logging, + org.eclipse.core.commands, + org.eclipse.core.contenttype, + org.eclipse.core.expressions, + org.eclipse.core.filesystem, + org.eclipse.core.jobs, + org.eclipse.core.resources, + org.eclipse.core.runtime, + org.eclipse.core.variables, + org.eclipse.debug.core, + org.eclipse.emf.codegen.ecore, + org.eclipse.emf.codegen, + org.eclipse.emf.mwe.core, + org.eclipse.emf.mwe.utils, + org.eclipse.emf.mwe2.lib, + org.eclipse.emf.mwe2.runtime, + org.eclipse.equinox.app, + org.eclipse.equinox.preferences, + org.eclipse.equinox.registry, + org.eclipse.jdt.core, + org.eclipse.jdt.debug, + org.eclipse.jdt.launching, + org.eclipse.text + + + + + + + com.googlecode.addjars-maven-plugin + addjars-maven-plugin + 1.0.5 + + + package + + add-jars + + + + + ${project.build.directory}/libs + + + + + + + + org.codehaus.mojo + appassembler-maven-plugin + 2.1.0 + + + package + + assemble + + + ${project.build.directory}/languageserver + flat + true + + + + mydsl-ls + org.eclipse.xtext.ide.server.ServerLauncher + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeModule.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeModule.java new file mode 100644 index 00000000..50c3d7e6 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeModule.java @@ -0,0 +1,16 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ide; + + +/** + * Use this class to register ide components. + */ +public class DomainmodelIdeModule extends AbstractDomainmodelIdeModule { +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeSetup.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeSetup.java new file mode 100644 index 00000000..b16b168f --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ide/src/org/eclipse/xtext/example/domainmodel/ide/DomainmodelIdeSetup.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ide; + +import com.google.inject.Guice; +import com.google.inject.Injector; +import org.eclipse.xtext.example.domainmodel.DomainmodelRuntimeModule; +import org.eclipse.xtext.example.domainmodel.DomainmodelStandaloneSetup; +import org.eclipse.xtext.util.Modules2; + +/** + * Initialization support for running Xtext languages as language servers. + */ +public class DomainmodelIdeSetup extends DomainmodelStandaloneSetup { + + @Override + public Injector createInjector() { + return Guice.createInjector(Modules2.mixin(new DomainmodelRuntimeModule(), new DomainmodelIdeModule())); + } + +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.project new file mode 100644 index 00000000..a2c6a46c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.project @@ -0,0 +1,9 @@ + + + org.eclipse.xtext.example.domainmodel.releng + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/buildDomainmodel.launch b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/buildDomainmodel.launch new file mode 100644 index 00000000..7796f799 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/buildDomainmodel.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.project new file mode 100644 index 00000000..41dc27ae --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.project @@ -0,0 +1,23 @@ + + + org.eclipse.xtext.example.domainmodel.feature + + + + + + org.eclipse.pde.FeatureBuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.pde.FeatureNature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/build.properties b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/build.properties new file mode 100644 index 00000000..64f93a9f --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/feature.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/feature.xml new file mode 100644 index 00000000..6361fa8c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/feature.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/pom.xml new file mode 100644 index 00000000..4fa6cf23 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/feature/pom.xml @@ -0,0 +1,14 @@ + + 4.0.0 + + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + .. + + + org.eclipse.xtext.example.domainmodel.feature + eclipse-feature + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/pom.xml new file mode 100644 index 00000000..bc8ae79c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/pom.xml @@ -0,0 +1,364 @@ + + 4.0.0 + org.eclipse.xtext.example.domainmodel + 2.34.0-SNAPSHOT + org.eclipse.xtext.example.domainmodel.parent + pom + + + + org.eclipse.xtext + xtext-dev-bom + ${xtextVersion} + pom + import + + + + + UTF-8 + + 11 + 11 + + 3.0.5 + ${project.groupId} + ${project.groupId}.tp + ${project.version} + domainmodel + + + + + -Xmx512m + ${project.version} + + + tp + ../org.eclipse.xtext.example.domainmodel + ../org.eclipse.xtext.example.domainmodel.ide + ../org.eclipse.xtext.example.domainmodel.ui + ../org.eclipse.xtext.example.domainmodel.tests + ../org.eclipse.xtext.example.domainmodel.ui.tests + feature + repository + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + org.eclipse.xtext.example.domainmodel + ${targetplatform.artifactId} + ${targetplatform.version} + ${targetplatform.classifier} + + + + + macosx + cocoa + x86_64 + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + + + + eclipse-feature + org.eclipse.rcp + 0.0.0 + + + eclipse-feature + org.eclipse.jdt + 0.0.0 + + + eclipse-plugin + org.eclipse.xtext.ui.codemining + 0.0.0 + + + eclipse-plugin + org.eclipse.xtext.logging + 1.2.24 + + + + + + + org.eclipse.tycho + tycho-source-plugin + ${tycho-version} + + + plugin-source + + plugin-source + + + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtextVersion} + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + ${basedir}/xtend-gen + ${basedir}/xtend-gen + + + + org.apache.maven.plugins + maven-clean-plugin + 3.2.0 + + + + ${basedir}/xtend-gen + + **/* + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.3.0 + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.apache.maven.plugins + + + maven-resources-plugin + + + [2.4.3,) + + + resources + testResources + + + + + + + + + + org.codehaus.mojo + + + build-helper-maven-plugin + + + [1.9.1,) + + + add-resource + add-source + add-test-resource + add-test-source + + + + + + + + + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + -err:-forbidden + false + + + + org.eclipse.tycho + tycho-surefire-plugin + ${tycho-version} + + + ${tycho.testArgLine} ${platformSystemProperties} ${systemProperties} ${moduleProperties} + + + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + false + true + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + false + true + + + + + + macos + + + mac + + + + + -XstartOnFirstThread + + + + jdk9-or-newer + + [9,) + + + --add-modules=ALL-SYSTEM + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.project new file mode 100644 index 00000000..5434c2a3 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.project @@ -0,0 +1,17 @@ + + + org.eclipse.xtext.example.domainmodel.repository + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/category.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/category.xml new file mode 100644 index 00000000..8d0ffe7c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/category.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/pom.xml new file mode 100644 index 00000000..152568bb --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/repository/pom.xml @@ -0,0 +1,33 @@ + + 4.0.0 + + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + .. + + + org.eclipse.xtext.example.domainmodel.repository + eclipse-repository + + + + + + org.eclipse.tycho + tycho-p2-repository-plugin + ${tycho-version} + + + package + + assemble-repository + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.project new file mode 100644 index 00000000..8c376f2e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.project @@ -0,0 +1,17 @@ + + + org.eclipse.xtext.example.domainmodel.tp + + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/domainmodel.target b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/domainmodel.target new file mode 100644 index 00000000..8171c749 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/domainmodel.target @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/pom.xml new file mode 100644 index 00000000..2bb44d8a --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng/tp/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + + + pom + org.eclipse.xtext.example.domainmodel.tp + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-artifacts + package + + attach-artifact + + + + + domainmodel.target + target + domainmodel + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.classpath b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.classpath new file mode 100644 index 00000000..5ff541c3 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.gitignore b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.gitignore new file mode 100644 index 00000000..ba077a40 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.gitignore @@ -0,0 +1 @@ +bin diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.project new file mode 100644 index 00000000..411cd717 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.project @@ -0,0 +1,34 @@ + + + org.eclipse.xtext.example.domainmodel.tests + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.runtime.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 00000000..5a0ad22d --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +line.separator=\n diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.core.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..7e481eda --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,76 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=11 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.launching.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.launching.prefs new file mode 100644 index 00000000..eed47a76 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/.settings/org.eclipse.jdt.launching.prefs @@ -0,0 +1,3 @@ +#Wed May 17 20:17:17 CEST 2016 +eclipse.preferences.version=1 +org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/META-INF/MANIFEST.MF b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..6771365e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/META-INF/MANIFEST.MF @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Xtext Domainmodel Example - Runtime Tests +Bundle-Vendor: Eclipse Xtext +Bundle-Version: 2.34.0.qualifier +Bundle-SymbolicName: org.eclipse.xtext.example.domainmodel.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext.example.domainmodel, + org.eclipse.xtext.testing, + org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", + org.eclipse.xtext.xbase.testing, + org.objectweb.asm;bundle-version="[9.6.0,9.7.0)";resolution:=optional +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: org.eclipse.xtext.example.domainmodel.tests;x-internal=true +Import-Package: org.hamcrest.core, + org.junit;version="4.13.2", + org.junit.runner;version="4.13.2", + org.junit.runner.manipulation;version="4.13.2", + org.junit.runner.notification;version="4.13.2", + org.junit.runners;version="4.13.2", + org.junit.runners.model;version="4.13.2" +Automatic-Module-Name: org.eclipse.xtext.example.domainmodel.tests diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/build.properties b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/build.properties new file mode 100644 index 00000000..c9446bbb --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/build.properties @@ -0,0 +1,5 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/org.eclipse.xtext.example.domainmodel.tests.launch b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/org.eclipse.xtext.example.domainmodel.tests.launch new file mode 100644 index 00000000..5fe3fa4a --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/org.eclipse.xtext.example.domainmodel.tests.launch @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/pom.xml new file mode 100644 index 00000000..60133aae --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + ../org.eclipse.xtext.example.domainmodel.releng + + org.eclipse.xtext.example.domainmodel.tests + eclipse-test-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.eclipse.tycho + tycho-surefire-plugin + + false + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/CompilerTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/CompilerTest.xtend new file mode 100644 index 00000000..e3589df0 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/CompilerTest.xtend @@ -0,0 +1,292 @@ +/******************************************************************************* + * Copyright (c) 2012, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.tests + +import com.google.inject.Inject +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.xbase.lib.util.ReflectExtensions +import org.eclipse.xtext.xbase.testing.CompilationTestHelper +import org.eclipse.xtext.xbase.testing.TemporaryFolder +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith + +import static org.junit.Assert.* + +@RunWith(XtextRunner) +@InjectWith(DomainmodelInjectorProvider) +class CompilerTest { + + @Rule + @Inject public TemporaryFolder temporaryFolder + @Inject extension CompilationTestHelper + @Inject extension ReflectExtensions + + @Test def void testGeneratedJava() throws Exception { + ''' + entity Foo { + name : String + op doStuff(String x) : String { + return x + ' ' + this.name + } + } + '''.compile [ + val obj = it.compiledClass.getDeclaredConstructor().newInstance + obj.invoke('setName', 'Foo') + assertEquals("Hello Foo", obj.invoke('doStuff','Hello')) + ] + } + + @Test def void testGeneratedJavaFromSeveralInputs() throws Exception { + #[ + ''' + entity Foo { + bar : Bar + op doStuff(String x) : String { + return x + ' ' + bar.getName() + } + } + ''', + ''' + entity Bar { + name : String + } + ''' + ].compile [ + val barObj = it.getCompiledClass("Bar").getDeclaredConstructor().newInstance + barObj.invoke('setName', 'Bar') + val fooObj = it.getCompiledClass("Foo").getDeclaredConstructor().newInstance + fooObj.invoke('setBar', barObj) + assertEquals("Hello Bar", fooObj.invoke('doStuff','Hello')) + ] + } + + @Test def void compareGeneratedJava() throws Exception { + ''' + entity Foo { + name : String + } + '''.compile[assertEquals(''' + import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; + + @SuppressWarnings("all") + public class Foo { + public Foo() { + } + + public Foo(final Procedure1 initializer) { + initializer.apply(this); + } + + private String name; + + public String getName() { + return this.name; + } + + public void setName(final String name) { + this.name = name; + } + + @Override + public String toString() { + String result = new ToStringBuilder(this).addAllFields().toString(); + return result; + } + } + '''.toString, getSingleGeneratedCode) + ] + } + + @Test def void testGeneratedJavaWithOverloadedMethods() throws Exception { + ''' + entity Foo { + op doStuff(String x) : String { + return x + } + op doStuff(int i) : String { + return "int "+i + } + } + '''.compile [ + val obj = it.compiledClass.getDeclaredConstructor().newInstance + assertEquals("Hello", obj.invoke('doStuff','Hello')) + assertEquals("int 10", obj.invoke('doStuff',10)) + ] + } + + @Test def void testExplicitGetterReplacesGeneratedOne() throws Exception { + ''' + entity Foo { + name : String + /** explicit getter will replace the generated one */ + op getName() { + name.toFirstUpper + } + } + '''.compile[ + assertEquals(''' + import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + import org.eclipse.xtext.xbase.lib.StringExtensions; + import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; + + @SuppressWarnings("all") + public class Foo { + public Foo() { + } + + public Foo(final Procedure1 initializer) { + initializer.apply(this); + } + + private String name; + + public void setName(final String name) { + this.name = name; + } + + /** + * explicit getter will replace the generated one + */ + public String getName() { + return StringExtensions.toFirstUpper(this.name); + } + + @Override + public String toString() { + String result = new ToStringBuilder(this).addAllFields().toString(); + return result; + } + } + '''.toString, getSingleGeneratedCode + ) + // make sure it compiles in Java + val obj = it.compiledClass.getDeclaredConstructor().newInstance + obj.invoke('setName', "hello") + assertEquals("Hello", obj.invoke('getName')) + ] + } + + @Test def void testExplicitSetterReplacesGeneratedOne() throws Exception { + ''' + entity Foo { + name : String + /** explicit setter will replace the generated one, + even if it's not void */ + op setName(String name) : String { + this.name = name.toFirstUpper + } + } + '''.compile[ + assertEquals(''' + import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + import org.eclipse.xtext.xbase.lib.StringExtensions; + import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; + + @SuppressWarnings("all") + public class Foo { + public Foo() { + } + + public Foo(final Procedure1 initializer) { + initializer.apply(this); + } + + private String name; + + public String getName() { + return this.name; + } + + /** + * explicit setter will replace the generated one, + * even if it's not void + */ + public String setName(final String name) { + return this.name = StringExtensions.toFirstUpper(name); + } + + @Override + public String toString() { + String result = new ToStringBuilder(this).addAllFields().toString(); + return result; + } + } + '''.toString, getSingleGeneratedCode + ) + // make sure it compiles in Java + val obj = it.compiledClass.getDeclaredConstructor().newInstance + assertEquals("Hello", obj.invoke('setName', "hello")) + assertEquals("Hello", obj.invoke('getName')) + ] + } + + @Test def void testExplicitGetterSetterReplaceGeneratedOnes() throws Exception { + ''' + entity Foo { + name : String + /** explicit getter will replace the generated one */ + op getName() { + name.toUpperCase + } + /** explicit setter will replace the generated one, + even if it's not void */ + op setName(String name) : String { + this.name = name.toFirstUpper + } + } + '''.compile[ + assertEquals(''' + import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + import org.eclipse.xtext.xbase.lib.StringExtensions; + import org.eclipse.xtext.xbase.lib.util.ToStringBuilder; + + @SuppressWarnings("all") + public class Foo { + public Foo() { + } + + public Foo(final Procedure1 initializer) { + initializer.apply(this); + } + + private String name; + + /** + * explicit getter will replace the generated one + */ + public String getName() { + return this.name.toUpperCase(); + } + + /** + * explicit setter will replace the generated one, + * even if it's not void + */ + public String setName(final String name) { + return this.name = StringExtensions.toFirstUpper(name); + } + + @Override + public String toString() { + String result = new ToStringBuilder(this).addAllFields().toString(); + return result; + } + } + '''.toString, getSingleGeneratedCode + ) + // make sure it compiles in Java + val obj = it.compiledClass.getDeclaredConstructor().newInstance + assertEquals("Hello", obj.invoke('setName', "hello")) + assertEquals("HELLO", obj.invoke('getName')) + ] + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/DomainmodelParsingTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/DomainmodelParsingTest.xtend new file mode 100644 index 00000000..65fd8274 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/DomainmodelParsingTest.xtend @@ -0,0 +1,114 @@ +/******************************************************************************* + * Copyright (c) 2016, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.tests + +import com.google.inject.Inject +import org.eclipse.xtext.common.types.JvmOperation +import org.eclipse.xtext.common.types.TypesPackage +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainModel +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation +import org.eclipse.xtext.example.domainmodel.domainmodel.PackageDeclaration +import org.eclipse.xtext.example.domainmodel.domainmodel.Property +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.testing.util.ParseHelper +import org.eclipse.xtext.testing.validation.ValidationTestHelper +import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations +import org.eclipse.xtext.xbase.validation.IssueCodes +import org.junit.Assert +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(XtextRunner) +@InjectWith(DomainmodelInjectorProvider) +class DomainmodelParsingTest{ + + @Inject extension ParseHelper + @Inject extension ValidationTestHelper + @Inject extension IJvmModelAssociations + + @Test def void testParsing() throws Exception { + val model = ''' + package example { + entity MyEntity { + property : String + } + } + '''.parse + + val pack = model.elements.head as PackageDeclaration + Assert.assertEquals("example", pack.name) + + val entity = pack.elements.head as Entity + Assert.assertEquals("MyEntity", entity.name) + + val property = entity.features.head as Property + Assert.assertEquals("property", property.name) + Assert.assertEquals("java.lang.String", property.type.identifier) + } + + @Test def void testJvmTypeReferencesValidator() throws Exception { + ''' + import java.util.List + package example { + entity MyEntity { + p : List + } + } + '''.parse.assertError( + TypesPackage.Literals.JVM_TYPE_REFERENCE, + IssueCodes.INVALID_USE_OF_TYPE, + "The primitive 'int' cannot be a type argument" + ) + } + + @Test def void testParsingAndLinking() throws Exception { + ''' + package example { + entity MyEntity { + property : String + op foo(String s) : String { + this.property = s + return s.toUpperCase + } + } + } + '''.parse.assertNoErrors + } + + @Test def void testParsingAndLinkingWithImports() throws Exception { + ''' + import java.util.List + package example { + entity MyEntity { + p : List + } + } + '''.parse.assertNoErrors + } + + @Test def void testReturnTypeInference() throws Exception { + val model = ''' + package example { + entity MyEntity { + property : String + op foo(String s) { + return property.toUpperCase + s + } + } + } + '''.parse + val pack = model.elements.head as PackageDeclaration + val entity = pack.elements.head as Entity + val op = entity.features.last as Operation + val method = op.jvmElements.head as JvmOperation + Assert.assertEquals("String", method.returnType.simpleName) + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/FormatterTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/FormatterTest.xtend new file mode 100644 index 00000000..60f45892 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/FormatterTest.xtend @@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright (c) 2016, 2018 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.tests + +import com.google.inject.Inject +import org.eclipse.xtext.formatting2.FormatterPreferenceKeys +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.testing.formatter.FormatterTestHelper +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(XtextRunner) +@InjectWith(DomainmodelInjectorProvider) +class FormatterTest { + + @Inject extension FormatterTestHelper + + /** + * This example tests if the formatted document equals the unformatted document. + * This is the most convenient way to test a formatter. + */ + @Test def void example1() { + assertFormatted[ + toBeFormatted = ''' + entity Foo { + propertyName:String + + op name() { + val x = 1 + 2 + 4 + val foo = { + println() + println() + null + } + } + } + ''' + ] + } + + /** + * This example tests whether a messy document is being formatted properly. + * In contrast to the first example, this approach also allows to test formatting strategies that are input-aware. + * Example: "Change newLines between tokens to be one at minimum, two at maximum." + * Here, it depends on the formatters input document whether there will be one or two newLines on the output. + */ + @Test def void example2() { + assertFormatted[ + expectation = ''' + entity Foo { + op foo():String { + "xx" + } + } + ''' + toBeFormatted = ''' + entity Foo { op foo ( ) : String { "xx" } } + ''' + ] + } + + /** + * This example shows how to test property-dependent formatting behavior. + */ + @Test def void example3() { + assertFormatted[ + preferences[ + put(FormatterPreferenceKeys.indentation, " ") + ] + expectation = ''' + entity Foo { + op foo():String { + "xx" + } + } + ''' + toBeFormatted = ''' + entity Foo { + op foo():String { + "xx" + } + } + ''' + ] + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/OrganizeImportsTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/OrganizeImportsTest.xtend new file mode 100644 index 00000000..83136dad --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/OrganizeImportsTest.xtend @@ -0,0 +1,850 @@ +/******************************************************************************* + * Copyright (c) 2013, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.tests + +import com.google.inject.Inject +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainModel +import org.eclipse.xtext.resource.XtextResource +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.testing.util.ParseHelper +import org.eclipse.xtext.util.ReplaceRegion +import org.eclipse.xtext.xbase.imports.ImportOrganizer +import org.junit.Test +import org.junit.runner.RunWith + +import static org.junit.Assert.* + +/** + * @author Jan Koehnlein - copied and adapted from Xtend + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelInjectorProvider) +class OrganizeImportsTest { + + @Inject extension ParseHelper + @Inject ImportOrganizer importOrganizer + + def protected assertIsOrganizedTo(CharSequence model, CharSequence expected) throws Exception { + val domainModel = parse(model.toString) + val changes = importOrganizer.getOrganizedImportChanges(domainModel.eResource as XtextResource) + val builder = new StringBuilder(model) + val sortedChanges= changes.sortBy[offset] + var ReplaceRegion lastChange = null + for(it: sortedChanges) { + if(lastChange !== null && lastChange.endOffset > offset) + fail("Overlapping text edits: " + lastChange + ' and ' +it) + lastChange = it + } + for(it: sortedChanges.reverse) + builder.replace(offset, offset + length, text) + assertEquals(expected.toString, builder.toString) + } + + @Test def testSimple() throws Exception { + ''' + package foo { + entity Foo extends java.io.Serializable {} + } + '''.assertIsOrganizedTo(''' + import java.io.Serializable + + package foo { + entity Foo extends Serializable {} + } + ''') + } + + @Test def testDefaultPackage() throws Exception { + ''' + entity Foo extends java.io.Serializable {} + '''.assertIsOrganizedTo(''' + import java.io.Serializable + + entity Foo extends Serializable {} + ''') + } + + @Test def testDefaultPackageLeadingWhitespace() throws Exception { + ''' + «» + + entity Foo extends java.io.Serializable {} + '''.assertIsOrganizedTo(''' + import java.io.Serializable + + entity Foo extends Serializable {} + ''') + } + + @Test def testDefaultPackageWithJavaDoc() throws Exception { + ''' + /** + * some doc + */ + entity Foo extends java.io.Serializable {} + '''.assertIsOrganizedTo(''' + import java.io.Serializable + + /** + * some doc + */ + entity Foo extends Serializable {} + ''') + } + + @Test def testGetOrganizedImportSection_01() throws Exception { + ''' + import java.lang.String + import java.util.List + + entity Foo { + op test(List s) : void {} + } + '''.assertIsOrganizedTo(''' + import java.util.List + + entity Foo { + op test(List s) : void {} + } + ''') + } + + @Test def testGetOrganizedImportSection_02() throws Exception { + ''' + import java.lang.String + import java.util.List + import java.util.List + import java.util.List + import java.lang.Integer + + entity Foo { + op test(List s) : void {} + } + '''.assertIsOrganizedTo(''' + import java.util.List + + entity Foo { + op test(List s) : void {} + } + ''') + } + + @Test def testGetOrganizedImportSection_03() throws Exception { + ''' + import java.util.* + + entity Foo { + op test(List s) : void{ + val x = newArrayList('foo','bar') + Collections.sort(x) + } + } + '''.assertIsOrganizedTo(''' + import java.util.Collections + import java.util.List + + entity Foo { + op test(List s) : void{ + val x = newArrayList('foo','bar') + Collections.sort(x) + } + } + ''') + } + + @Test def testGetOrganizedImportSection_04() throws Exception { + ''' + import java.util.* + import java.io.* + + entity Foo { + op test(List s) : void { + val x = new ArrayList>() + } + } + '''.assertIsOrganizedTo(''' + import java.io.Serializable + import java.util.ArrayList + import java.util.List + import java.util.Map + + entity Foo { + op test(List s) : void { + val x = new ArrayList>() + } + } + ''') + } + + @Test def testInnerClasses_01() throws Exception { + ''' + entity Foo { + op test(org.eclipse.emf.ecore.resource.Resource$Factory a, org.eclipse.emf.ecore.resource.Resource$Factory$Registry b) : void {} + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.resource.Resource + + entity Foo { + op test(Resource.Factory a, Resource.Factory.Registry b) : void {} + } + ''') + } + + @Test def testInnerClasses_02() throws Exception { + ''' + import org.eclipse.emf.ecore.resource.Resource + import org.eclipse.emf.ecore.EPackage + + entity Foo { + op test() : void { + val x = Resource$Factory$Registry::INSTANCE + val y = EPackage$Registry::INSTANCE + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.EPackage + import org.eclipse.emf.ecore.resource.Resource + + entity Foo { + op test() : void { + val x = Resource.Factory.Registry::INSTANCE + val y = EPackage.Registry::INSTANCE + } + } + ''') + } + + @Test def testInnerClasses_03() throws Exception { + ''' + entity Foo { + op test() : boolean { + typeof(org.eclipse.emf.ecore.resource.Resource$Factory) == typeof(org.eclipse.emf.ecore.resource.Resource$Factory$Registry) + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.resource.Resource + + entity Foo { + op test() : boolean { + typeof(Resource.Factory) == typeof(Resource.Factory.Registry) + } + } + ''') + } + + @Test def testInnerClasses_04() throws Exception { + ''' + import org.eclipse.emf.ecore.resource.Resource + import org.eclipse.emf.ecore.EPackage + + entity Foo { + op test() : void { + typeof(Resource$Factory$Registry) == typeof(EPackage$Registry) + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.EPackage + import org.eclipse.emf.ecore.resource.Resource + + entity Foo { + op test() : void { + typeof(Resource.Factory.Registry) == typeof(EPackage.Registry) + } + } + ''') + } + + @Test def testInnerClasses_05() throws Exception { + ''' + import org.eclipse.emf.ecore.resource.Resource$Factory$Registry + + entity Foo { + op test() : void { + typeof(Registry) + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.resource.Resource.Factory.Registry + + entity Foo { + op test() : void { + typeof(Registry) + } + } + ''') + } + + @Test def testNameClashSameFileWins_1() throws Exception { + ''' + package foo { + entity Foo { + x : java.lang.String + } + + entity String {} + } + '''.assertIsOrganizedTo(''' + package foo { + entity Foo { + x : java.lang.String + } + + entity String {} + } + ''') + } + + @Test def testNameClashSameFileWins() throws Exception { + ''' + package foo { + entity Foo extends java.io.Serializable{} + + entity Serializable {} + } + '''.assertIsOrganizedTo(''' + package foo { + entity Foo extends java.io.Serializable{} + + entity Serializable {} + } + ''') + } + + @Test def testNameClashOrder_01() throws Exception { + ''' + entity Foo { + op test(java.util.List s) : java.awt.List { + return null + } + } + '''.assertIsOrganizedTo(''' + import java.awt.List + + entity Foo { + op test(java.util.List s) : List { + return null + } + } + ''') + } + + @Test def testNameClashOrder_02() throws Exception { + ''' + entity Foo { + op test(java.awt.List s) : java.util.List { + return null + } + } + '''.assertIsOrganizedTo(''' + import java.util.List + + entity Foo { + op test(java.awt.List s) : List { + return null + } + } + ''') + } + + @Test def testNameClashMoreCommon() throws Exception { + ''' + entity Foo { + op test(java.awt.List s) : java.util.List { + new java.awt.List() + return null + } + } + '''.assertIsOrganizedTo(''' + import java.awt.List + + entity Foo { + op test(List s) : java.util.List { + new List() + return null + } + } + ''') + } + + @Test def testNameClashInnerClasses() throws Exception { + ''' + import org.eclipse.xtext.xbase.XbasePackage + import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationsPackage + + entity Foo { + op test(XbasePackage$Literals x, XAnnotationsPackage$Literals y) : void { + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.xtext.xbase.XbasePackage + import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationsPackage + + entity Foo { + op test(XbasePackage.Literals x, XAnnotationsPackage.Literals y) : void { + } + } + ''') + } + + @Test def testNameClashInnerClassesWithPreference() throws Exception { + ''' + import org.eclipse.xtext.xbase.XbasePackage$Literals + import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationsPackage + + entity Foo { + op test(Literals x, XAnnotationsPackage$Literals y) : void { + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.xtext.xbase.XbasePackage.Literals + import org.eclipse.xtext.xbase.annotations.xAnnotations.XAnnotationsPackage + + entity Foo { + op test(Literals x, XAnnotationsPackage.Literals y) : void { + } + } + ''') + } + + @Test def testStaticImport_01() throws Exception { + ''' + import static java.util.Collections.* + entity Foo { + op test(java.util.List s) : void { + shuffle(s) + } + } + '''.assertIsOrganizedTo(''' + import java.util.List + + import static java.util.Collections.* + + entity Foo { + op test(List s) : void { + shuffle(s) + } + } + ''') + } + + @Test def testStaticImport_02() throws Exception { + ''' + import static extension java.util.Collections.* + entity Foo { + op test(java.util.List s) : void { + s.shuffle + } + } + '''.assertIsOrganizedTo(''' + import java.util.List + + import static extension java.util.Collections.* + + entity Foo { + op test(List s) : void { + s.shuffle + } + } + ''') + } + + @Test def testImplicitExtensions() throws Exception { + ''' + entity Foo { + op test(java.util.List s) : void { + s.head + } + } + '''.assertIsOrganizedTo(''' + import java.util.List + + entity Foo { + op test(List s) : void { + s.head + } + } + ''') + } + + @Test def testStaticExtensions() throws Exception { + ''' + import static extension java.util.Collections.* + entity Foo { + op test() : void { + typeof(java.util.Collections).singleton + } + } + '''.assertIsOrganizedTo(''' + import java.util.Collections + + import static extension java.util.Collections.* + + entity Foo { + op test() : void { + typeof(Collections).singleton + } + } + ''') + } + + @Test def testInnerClassImport_01() throws Exception { + ''' + import java.util.Map$Entry + + package foo.bar { + entity Foo { + op test() : Entry { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import java.util.Map.Entry + + package foo.bar { + entity Foo { + op test() : Entry { + return null + } + } + } + ''') + } + + @Test def testInnerClassImport_02() throws Exception { + ''' + import java.util.Map + + package foo.bar { + entity Foo { + op test() : Map$Entry { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import java.util.Map + + package foo.bar { + entity Foo { + op test() : Map.Entry { + return null + } + } + } + ''') + } + + @Test def testInnerClassImport_03() throws Exception { + ''' + import java.util.Map$Entry + + package foo.bar { + entity Foo { + op test() : Map$Entry { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import java.util.Map + + package foo.bar { + entity Foo { + op test() : Map.Entry { + return null + } + } + } + ''') + } + + @Test def testInnerClassImport_04() throws Exception { + ''' + import org.eclipse.emf.ecore.resource.Resource + + package foo.bar { + entity Foo { + op test() : Resource$Factory$Descriptor { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.resource.Resource + + package foo.bar { + entity Foo { + op test() : Resource.Factory.Descriptor { + return null + } + } + } + ''') + } + + @Test def testInnerClassImport_05() throws Exception { + ''' + import org.eclipse.emf.ecore.resource.Resource$Factory$Descriptor + + package foo.bar { + entity Foo { + op test() : Resource$Factory$Descriptor { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.resource.Resource + + package foo.bar { + entity Foo { + op test() : Resource.Factory.Descriptor { + return null + } + } + } + ''') + } + + @Test def testInnerClassImport_06() throws Exception { + ''' + import org.eclipse.emf.ecore.resource.Resource$Factory$Descriptor + + package foo.bar { + entity Foo { + op test() : Descriptor { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import org.eclipse.emf.ecore.resource.Resource.Factory.Descriptor + + package foo.bar { + entity Foo { + op test() : Descriptor { + return null + } + } + } + ''') + } + + @Test def testFunctionTypes_afterResolve() throws Exception { + ''' + import java.util.Map$Entry + + package foo.bar { + entity Foo { + op test() : (Entry)=>void { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import java.util.Map.Entry + + package foo.bar { + entity Foo { + op test() : (Entry)=>void { + return null + } + } + } + ''') + } + + @Test def testImport_PairOf() throws Exception { + ''' + import static org.eclipse.xtext.xbase.lib.Pair.* + + package foo.bar { + entity Foo { + op test() : Object { + return of('', '') + } + } + } + '''.assertIsOrganizedTo(''' + import static org.eclipse.xtext.xbase.lib.Pair.* + + package foo.bar { + entity Foo { + op test() : Object { + return of('', '') + } + } + } + ''') + } + + @Test def testArrayType() throws Exception { + ''' + import java.io.Serializable + + package foo.bar { + entity Foo { + op test() : Serializable[][] { + return null + } + } + } + '''.assertIsOrganizedTo(''' + import java.io.Serializable + + package foo.bar { + entity Foo { + op test() : Serializable[][] { + return null + } + } + } + ''') + } + + @Test def testClassWithSameName() throws Exception { + ''' + package foo.bar { + entity Serializable { + clazz : Class + } + } + '''.assertIsOrganizedTo(''' + package foo.bar { + entity Serializable { + clazz : Class + } + } + ''') + } + + @Test def testJavaDoc() throws Exception { + ''' + /** + * {@link java.util.List} + */ + entity Foo {} + '''.assertIsOrganizedTo(''' + import java.util.List + + /** + * {@link List} + */ + entity Foo {} + ''') + } + + @Test def testLocalNameClash() throws Exception { + ''' + package foo { + entity Referrer { + foo0: foo.bar.Foo + foo1: foo.baz.Foo + } + package bar { + entity Foo { + self: Foo + } + } + package baz { + entity Foo { + self: Foo + } + } + } + '''.assertIsOrganizedTo(''' + package foo { + entity Referrer { + foo0: foo.bar.Foo + foo1: foo.baz.Foo + } + package bar { + entity Foo { + self: Foo + } + } + package baz { + entity Foo { + self: Foo + } + } + } + ''') + } + + @Test def testSamePackage() throws Exception { + ''' + package bar { + entity Foo {} + entity Bar { + foo: bar.Foo + } + } + '''.assertIsOrganizedTo(''' + package bar { + entity Foo {} + entity Bar { + foo: Foo + } + } + ''') + } + + @Test def testSuperPackage() throws Exception { + ''' + package bar { + entity Foo {} + package baz { + entity Bar { + foo: bar.Foo + } + } + } + '''.assertIsOrganizedTo(''' + import bar.Foo + + package bar { + entity Foo {} + package baz { + entity Bar { + foo: Foo + } + } + } + ''') + } + + @Test def testSubPackage() throws Exception { + ''' + import bar.Foo + + package bar { + entity Foo { + bar : bar.baz.Bar + } + package baz { + entity Bar {} + } + } + '''.assertIsOrganizedTo(''' + import bar.baz.Bar + + package bar { + entity Foo { + bar : Bar + } + package baz { + entity Bar {} + } + } + ''') + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/ValidationTests.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/ValidationTests.xtend new file mode 100644 index 00000000..60803df0 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/ValidationTests.xtend @@ -0,0 +1,262 @@ +/******************************************************************************* + * Copyright (c) 2013, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.tests + +import com.google.inject.Inject +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainModel +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.testing.util.ParseHelper +import org.eclipse.xtext.testing.validation.ValidationTestHelper +import org.junit.Test +import org.junit.runner.RunWith + +import static org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage.Literals.PROPERTY +import static org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage.Literals.OPERATION +import static org.eclipse.xtext.example.domainmodel.validation.IssueCodes.DUPLICATE_PROPERTY +import static org.eclipse.xtext.example.domainmodel.validation.IssueCodes.DUPLICATE_OPERATION +import static org.eclipse.xtext.xbase.validation.IssueCodes.* +import static org.eclipse.xtext.xtype.XtypePackage.Literals.* + +import static extension org.junit.Assert.assertEquals + +@RunWith(XtextRunner) +@InjectWith(DomainmodelInjectorProvider) +/** + * @author Jan Koehnlein - copied and adapted from Xtend + */ +class ValidationTests { + + @Inject extension ParseHelper + + @Inject extension ValidationTestHelper + + @Test def testImportUnused() throws Exception { + ''' + import java.util.List + entity X {} + '''.parse.assertWarning(XIMPORT_DECLARATION, IMPORT_UNUSED) + } + + @Test def testImportUnused_1() throws Exception { + ''' + import java.util.List + entity X { + sb: java.util.List + } + '''.parse.assertWarning(XIMPORT_DECLARATION, IMPORT_UNUSED) + } + + @Test def testImportUnused_2() throws Exception { + ''' + import java.util.List + entity X { + sb : List + op foo() : List { + sb + } + } + '''.parse.assertNoIssues + } + + @Test def testImportUnused_3() throws Exception { + ''' + import java.util.Map$Entry + entity X { + sb: Entry + op foo() : Entry { + sb + } + } + '''.parse.assertNoIssues + } + + @Test def testImportUnused_4() throws Exception { + ''' + import java.util.Map + entity X { + sb: Map$Entry + op foo() : Map$Entry { + sb + } + } + '''.parse.assertNoIssues + } + + @Test def testImportUnused_5() throws Exception { + ''' + import java.util.Map$Entry + entity X { + sb: Map$Entry + op foo(): Map$Entry { + sb + } + } + '''.parse.assertNoIssues + } + + @Test def testImportUnused_6() throws Exception { + ''' + import java.awt.Label + /** {@link Label} */ + entity X{} + '''.parse.assertNoIssues + } + + @Test def testImportUnused_7() throws Exception { + ''' + import java.awt.Label + /** @see Label */ + entity X{} + '''.parse.assertNoIssues + } + + @Test def testImportDuplicate() throws Exception { + ''' + import java.util.List + import java.util.List + entity X { + sb: List + op foo() : List { + sb + } + } + '''.parse.assertWarning(XIMPORT_DECLARATION, IMPORT_UNUSED) + } + + @Test def testImportCollision() throws Exception { + ''' + import java.util.List + import java.awt.List + entity X { + sb: List + op foo() : List { + sb + } + } + '''.parse.assertError(XIMPORT_DECLARATION, IMPORT_COLLISION) + } + + @Test def testImportWildcard() throws Exception { + ''' + import java.util.* + import java.util.List + entity X { + sb: List + op foo() : List { + sb + } + } + '''.parse.assertWarning(XIMPORT_DECLARATION, IMPORT_WILDCARD_DEPRECATED) + } + + @Test def testImportConflictWithTypeInSameFile() throws Exception { + ''' + import java.util.List + entity List { + + } + '''.parse.assertError(XIMPORT_DECLARATION, IMPORT_CONFLICT) + } + + @Test def testImportNoConflictWithTypeInSameFile() throws Exception { + ''' + import java.util.List + entity List2 { + } + '''.parse.assertNoErrors + } + + @Test def void testDuplicatedProperty() throws Exception { + val model = ''' + entity E { + p : String + p : String + } + ''' + model.parse => [ + assertNumberOfIssues(2) + assertError(PROPERTY, DUPLICATE_PROPERTY, model.indexOf("p"), 1, "Duplicate property p") + assertError(PROPERTY, DUPLICATE_PROPERTY, model.lastIndexOf("p"), 1, "Duplicate property p") + ] + } + + @Test def void testDuplicatedOperation() throws Exception { + val model = ''' + entity E { + op foo() {} + op foo() {} + } + ''' + model.parse => [ + assertNumberOfIssues(2) + assertError(OPERATION, DUPLICATE_OPERATION, model.indexOf("foo"), 3, "Duplicate operation foo") + assertError(OPERATION, DUPLICATE_OPERATION, model.lastIndexOf("foo"), 3, "Duplicate operation foo") + ] + } + + @Test def void testDuplicatedOperationWithDifferentSignatureIsAllowed() throws Exception { + ''' + entity E { + op m(int i) {} + op m() {} + } + '''.parse.assertNoErrors + } + + @Test def void testFeatureAndOperationWithSameNameIsAllowed() throws Exception { + ''' + entity E { + m : String + op m() {} + } + '''.parse.assertNoErrors + } + + @Test def void testExplicitGetterReplacesTheGeneratedOne() throws Exception { + ''' + entity E { + name : String + op getName() { + return name + } + } + '''.parse.assertNoErrors + } + + @Test def void testExplicitSetterReplacesTheGeneratedOne() throws Exception { + ''' + entity E { + name : String + // even if it's not void + op setName(String n) : String { + this.name = n + } + } + '''.parse.assertNoErrors + } + + @Test def void testDuplicatedOperationWithDifferentSignatureWithSameTypeErasure() throws Exception { + val model = ''' + entity E { + op m(java.util.List l1) {} + op m(java.util.List l2) {} + } + ''' + model.parse => [ + assertNumberOfIssues(2) + assertError(OPERATION, DUPLICATE_OPERATION, model.indexOf("m"), 1, "Duplicate operation m") + assertError(OPERATION, DUPLICATE_OPERATION, model.lastIndexOf("m"), 1, "Duplicate operation m") + ] + } + + private def assertNumberOfIssues(DomainModel domainModel, int expectedNumberOfIssues) { + expectedNumberOfIssues.assertEquals(domainModel.validate.size) + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/XbaseIntegrationTest.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/XbaseIntegrationTest.java new file mode 100644 index 00000000..f6f5451a --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.tests/src/org/eclipse/xtext/example/domainmodel/tests/XbaseIntegrationTest.java @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2013, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.tests; + +import java.lang.reflect.Method; + +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainModel; +import org.eclipse.xtext.generator.InMemoryFileSystemAccess; +import org.eclipse.xtext.testing.InjectWith; +import org.eclipse.xtext.testing.XtextRunner; +import org.eclipse.xtext.testing.util.ParseHelper; +import org.eclipse.xtext.testing.validation.ValidationTestHelper; +import org.eclipse.xtext.xbase.compiler.JvmModelGenerator; +import org.eclipse.xtext.xbase.testing.OnTheFlyJavaCompiler2; +import org.eclipse.xtext.xbase.testing.evaluation.AbstractXbaseEvaluationTest; +import org.junit.runner.RunWith; + +import com.google.inject.Inject; + +/** + * Xbase integration test. + * + * Runs all Xbase tests from {@link AbstractXbaseEvaluationTest} in the context + * of an entity operation. + * + * Unsupported features can be disabled by overriding the respective test + * method. + * + * @author Sven Efftinge + */ +@RunWith(XtextRunner.class) +@InjectWith(DomainmodelInjectorProvider.class) +public class XbaseIntegrationTest extends AbstractXbaseEvaluationTest { + @Inject + private OnTheFlyJavaCompiler2 javaCompiler; + + @Inject + private ParseHelper parseHelper; + + @Inject + private ValidationTestHelper validationTestHelper; + + @Inject + private JvmModelGenerator generator; + + @Override + protected Object invokeXbaseExpression(String expression) throws Exception { + DomainModel model = parseHelper.parse("entity Foo { op doStuff() : Object { " + expression + " } } "); + validationTestHelper.assertNoErrors(model); + InMemoryFileSystemAccess fsa = new InMemoryFileSystemAccess(); + generator.doGenerate(model.eResource(), fsa); + CharSequence concatenation = fsa.getTextFiles().values().iterator().next(); + Class clazz = javaCompiler.compileToClass("Foo", concatenation.toString()); + Object foo = clazz.getDeclaredConstructor().newInstance(); + Method method = clazz.getDeclaredMethod("doStuff"); + return method.invoke(foo); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.classpath b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.classpath new file mode 100644 index 00000000..5ff541c3 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.gitignore b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.gitignore new file mode 100644 index 00000000..ba077a40 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.gitignore @@ -0,0 +1 @@ +bin diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.project new file mode 100644 index 00000000..ac926267 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.project @@ -0,0 +1,34 @@ + + + org.eclipse.xtext.example.domainmodel.ui.tests + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.jdt.core.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..7e481eda --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,76 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=11 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/META-INF/MANIFEST.MF b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..f0f8cbf4 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/META-INF/MANIFEST.MF @@ -0,0 +1,27 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Xtext Domainmodel Example - Eclipse UI Tests +Bundle-Vendor: Eclipse Xtext +Bundle-Version: 2.34.0.qualifier +Bundle-SymbolicName: org.eclipse.xtext.example.domainmodel.ui.tests;singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.core.runtime;bundle-version="3.24.100", + org.eclipse.jdt.core;bundle-version="3.29.0", + org.eclipse.ui.workbench;bundle-version="3.125.0";resolution:=optional, + org.eclipse.xtext.common.types.ui, + org.eclipse.xtext.example.domainmodel, + org.eclipse.xtext.example.domainmodel.ui, + org.eclipse.xtext.testing, + org.eclipse.xtext.ui.testing, + org.eclipse.xtext.xbase.testing, + org.eclipse.xtext.xbase.ui.testing +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: org.eclipse.xtext.example.domainmodel.ui.tests;x-internal=true +Import-Package: org.hamcrest.core, + org.junit;version="4.13.2", + org.junit.runner;version="4.13.2", + org.junit.runner.manipulation;version="4.13.2", + org.junit.runner.notification;version="4.13.2", + org.junit.runners;version="4.13.2", + org.junit.runners.model;version="4.13.2" +Automatic-Module-Name: org.eclipse.xtext.example.domainmodel.ui.tests diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/build.properties b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/build.properties new file mode 100644 index 00000000..a6835df7 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/org.eclipse.xtext.example.domainmodel.ui.tests.launch b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/org.eclipse.xtext.example.domainmodel.ui.tests.launch new file mode 100644 index 00000000..b35c039a --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/org.eclipse.xtext.example.domainmodel.ui.tests.launch @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/pom.xml new file mode 100644 index 00000000..5e125efa --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/pom.xml @@ -0,0 +1,30 @@ + + 4.0.0 + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + ../org.eclipse.xtext.example.domainmodel.releng + + org.eclipse.xtext.example.domainmodel.ui.tests + eclipse-test-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.eclipse.tycho + tycho-surefire-plugin + + false + true + true + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/AutoEditTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/AutoEditTest.xtend new file mode 100644 index 00000000..3c3ef8ba --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/AutoEditTest.xtend @@ -0,0 +1,104 @@ +/******************************************************************************* + * Copyright (c) 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import com.google.inject.Inject +import org.eclipse.xtext.resource.FileExtensionProvider +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.XtextProjectHelper +import org.eclipse.xtext.ui.editor.XtextEditor +import org.eclipse.xtext.ui.testing.AbstractAutoEditTest +import org.junit.Test +import org.junit.runner.RunWith + +import static extension org.eclipse.xtext.ui.testing.util.IResourcesSetupUtil.addNature +import static extension org.eclipse.xtext.ui.testing.util.IResourcesSetupUtil.createProject + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class AutoEditTest extends AbstractAutoEditTest { + + @Inject extension FileExtensionProvider + + override setUp() throws Exception { + super.setUp + createTestProjectWithXtextNature + } + + @Test def fantasting_autoedit() throws Exception { + ''' + Xtex| + '''.testAutoEdit('t', ''' + «""» + + + + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM + MMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM + MMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM + MMM MMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM + M MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM + MM MMMMMMMMMMMMMMMMMMMMM MMMMMMMMMM + MMMM MMMMMMMMMMMMMMMM MMMMMMMMMMMM + MMMMMM MMMMMMMMM MMMMMMMMMMMMM + MMMMMMMM MMMMMMMMMMMMMMM + MMMMMMMMMM MMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMMMMM MMMMMMMMMMMMMM + MMMMMMMMMMMMMM MMMMMMMMMMM + MMMMMMMMMMMM MMM MMMMMMMM + MMMMMMMMMM MMMMMMMMMMMMMMM MMMMMM + MMMMMMMMM MMMMMMMMMMMMMMMMMMMM MMMM + MMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM MM + MMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMM MMM + MMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMM + MMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM + MMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM + MMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM + MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| + ''') + } + + private def testAutoEdit(CharSequence it, char key, CharSequence newContent) throws Exception { + // given + dslFile. + // when + press(key). + // then + dslFileHasContent(newContent) + } + + private def dslFile(CharSequence it) throws Exception { + toString.openEditor + } + + private def press(XtextEditor it, char c) throws Exception { + pressKey(c) + it + } + + private def dslFileHasContent(XtextEditor editor, CharSequence it) { + toString.assertState(editor) + } + + private def createTestProjectWithXtextNature() throws Exception { + "foo".createProject.addNature(XtextProjectHelper.NATURE_ID) + } + + override protected getFileExtension() { + primaryFileExtension + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/CodeMiningTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/CodeMiningTest.xtend new file mode 100644 index 00000000..e7fa52e2 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/CodeMiningTest.xtend @@ -0,0 +1,87 @@ +/******************************************************************************* + * Copyright (c) 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractCodeMiningTest +import org.junit.Test +import org.junit.runner.RunWith + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class CodeMiningTest extends AbstractCodeMiningTest { + + @Test def implicit_return_type_is_presented_as_code_mining() { + ''' + entity E { + s: String + op getS() { s } + } + '''.testCodeMining(''' + 1 property | 1 operation + entity E { + s: String + op getS() : String { s } + } + ''') + } + + @Test def explicit_return_type_is_not_presented_as_code_mining() { + ''' + entity E { + s: String + op getS() : String { s } + } + '''.testCodeMining(''' + 1 property | 1 operation + entity E { + s: String + op getS() : String { s } + } + ''') + } + + @Test def several_entities_001() { + ''' + entity E1 { + } + entity E2 { + } + '''.testCodeMining(''' + 0 properties | 0 operations + entity E1 { + } + 0 properties | 0 operations + entity E2 { + } + ''') + } + + @Test def several_entities_002() { + ''' + entity E1 { + } + + entity E2 { + } + '''.testCodeMining(''' + 0 properties | 0 operations + entity E1 { + } + + 0 properties | 0 operations + entity E2 { + } + ''') + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/ContentAssistTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/ContentAssistTest.xtend new file mode 100644 index 00000000..6e572230 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/ContentAssistTest.xtend @@ -0,0 +1,98 @@ +/******************************************************************************* + * Copyright (c) 2012, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import java.util.List +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractContentAssistTest +import org.junit.Test +import org.junit.runner.RunWith + +/** + * @author Jan Koehnlein - copied and adapted from Xtend + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class ContentAssistTest extends AbstractContentAssistTest { + + // cursor position marker + val c = '''<|>''' + + @Test def void testImportCompletion() throws Exception { + newBuilder.append('import java.util.Da').assertText('java.util.Date') + } + + @Test def void testImportCompletion_1() throws Exception { + newBuilder.append('import LinkedHashSet').assertText('java.util.LinkedHashSet') + } + + @Test def void testTypeCompletion() throws Exception { + newBuilder.append('entity Foo { bar: LinkedHashSet').assertText('java.util.LinkedHashSet') + } + + @Test def void testEntityTemplateProposal() throws Exception { + newBuilder.applyProposal("Entity - template for an Entity").expectContent(''' + entity name { + + }''') + } + + @Test def void testPackageTemplateProposal() throws Exception { + newBuilder.applyProposal("Package - template for a Package").expectContent(''' + package name { + + }''') + } + + @Test def testPropertyTemplateProposal() throws Exception { + ''' + entity E { + «c» + } + '''.testContentAssistant(#[ + 'Operation - template for an Operation', + 'Property - template for a Property', + 'op' + ], 'Property - template for a Property', ''' + entity E { + propertyName : typeName + } + ''') + } + + @Test def testOperationTemplateProposal() throws Exception { + ''' + entity E { + «c» + } + '''.testContentAssistant(#[ + 'Operation - template for an Operation', + 'Property - template for a Property', + 'op' + ], 'Operation - template for an Operation', ''' + entity E { + op name (paramType1 paramName1) : returnType { + + } + } + ''') + } + + private def void testContentAssistant(CharSequence text, List expectedProposals, String proposalToApply, String expectedContent) throws Exception { + + val cursorPosition = text.toString.indexOf(c) + val content = text.toString.replace(c, "") + + newBuilder.append(content). + assertTextAtCursorPosition(cursorPosition, expectedProposals). + applyProposal(cursorPosition, proposalToApply). + expectContent(expectedContent) + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/FoldingTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/FoldingTest.xtend new file mode 100644 index 00000000..97c9ce57 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/FoldingTest.xtend @@ -0,0 +1,132 @@ +/******************************************************************************* + * Copyright (c) 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractFoldingTest +import org.junit.Test +import org.junit.runner.RunWith + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class FoldingTest extends AbstractFoldingTest { + + @Test def imports() { + ''' + [>import java.util.List + import java.util.Date<] + '''.testFoldingRegions + } + + @Test def package_declaration() { + ''' + [>package p1 { + + }<] + '''.testFoldingRegions + } + + @Test def package_declarations() { + ''' + [>package p1 { + + }<] + + [>package p2 { + + }<] + '''.testFoldingRegions + } + + @Test def entitiy() { + ''' + [>entity HasAuthor { + + }<] + '''.testFoldingRegions + } + + @Test def operation1() { + ''' + [>entity HasAuthor { + author: String + + [>[>op getAuthor() { + author + }<]<] + }<] + '''.testFoldingRegions + } + + @Test def operation2() { + ''' + [>entity HasAuthor { + author: String + + [> op getAuthor() + [> { + author + }<]<] + }<] + '''.testFoldingRegions + } + + @Test def complex() { + ''' + import java.util.List + + [>entity Blog { + title: String + posts: List + + op addPost(Post post) : void {} + op getPosts() : List {} + }<] + + [>entity HasAuthor { + author: String + + op getAuthor() { author } + op setAuthor() : void {} + }<] + + [>entity Post extends HasAuthor { + title: String + content: String + comments: List + }<] + + [>entity Comment extends HasAuthor { + content: String + }<] + '''.testFoldingRegions + } + + @Test def multi_line_comment() { + ''' + [>/* + * Description of the entity E. + */<] + entity E {} + '''.testFoldingRegions + } + + @Test def java_doc() { + ''' + [>/** + * Documentation of the entity E. + */<] + entity E {} + '''.testFoldingRegions + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HighlightingTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HighlightingTest.xtend new file mode 100644 index 00000000..e4a29a69 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HighlightingTest.xtend @@ -0,0 +1,235 @@ +/******************************************************************************* + * Copyright (c) 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import com.google.inject.Inject +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractHighlightingTest +import org.eclipse.xtext.xbase.ui.highlighting.XbaseHighlightingConfiguration +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +import static extension org.eclipse.xtext.ui.testing.util.JavaProjectSetupUtil.createJavaProject + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class HighlightingTest extends AbstractHighlightingTest { + + @Inject extension XbaseHighlightingConfiguration + + @Before def void setup() throws Exception { + /* + * Xbase-based languages require java project + */ + projectName.createJavaProject + } + + @Test def package_keyword() { + ''' + package P {} + '''.testHighlighting("package", keywordTextStyle) + } + + @Test def entity_keyword() { + ''' + entity E {} + '''.testHighlighting("entity", keywordTextStyle) + } + + @Test def extends_keyword() { + ''' + entity A {} + entity B extends A {} + '''.testHighlighting("extends", keywordTextStyle) + } + + @Test def op_keyword() { + ''' + entity E { + op m() {} + } + '''.testHighlighting("op", keywordTextStyle) + } + + @Test def import_keyword() { + ''' + import java.util.List + entity E { + adresse : List + } + '''.testHighlighting("import", keywordTextStyle) + } + + @Test def int_keyword() { + ''' + entity E { + op m(int b) {} + } + '''.testHighlighting("int", keywordTextStyle) + } + + @Test def boolean_keyword() { + ''' + entity E { + op m(boolean b) {} + } + '''.testHighlighting("boolean", keywordTextStyle) + } + + @Test def if_keyword() { + ''' + entity E { + op m(boolean b) { + if (b) 1 else 2 + } + } + '''.testHighlighting("if", keywordTextStyle) + } + + @Test def else_keyword() { + ''' + entity E { + op m(boolean b) { + if (b) 1 else 2 + } + } + '''.testHighlighting("else", keywordTextStyle) + } + + @Test def return_keyword() { + ''' + entity E { + op m(boolean b) { + return if (b) 1 else 2 + } + } + '''.testHighlighting("return", keywordTextStyle) + } + + @Test def instanceof_keyword() { + ''' + entity A { + op m(A a) { + if (a instanceof B) 1 else 2 + } + } + entity B extends A {} + '''.testHighlighting("instanceof", keywordTextStyle) + } + + @Test def single_line_comment() { + ''' + // A language to model domain-model elements + entity E { + } + '''.testHighlighting("A language to model domain-model elements", commentTextStyle) + } + + @Test def multi_line_comment() { + ''' + /* + * A language to model domain-model elements. + * Each entity can have properties, operations + * and relations to each other. + */ + entity E { + } + '''.testHighlighting(''' + /* + * A language to model domain-model elements. + * Each entity can have properties, operations + * and relations to each other. + */ + ''', commentTextStyle) + } + + @Test def javadoc_comment() { + ''' + /** + * A language to model domain-model elements. + * Each entity can have properties, operations + * and relations to each other. + */ + entity E { + } + '''.testHighlighting(''' + /** + * A language to model domain-model elements. + * Each entity can have properties, operations + * and relations to each other. + */ + ''', commentTextStyle) + } + + @Test def fixme_task_in_comment() { + ''' + /** + * FIXME + */ + entity E {} + '''.testHighlighting("FIXME", taskTextStyle) + } + + @Test def todo_task_in_comment() { + ''' + /** + * TODO + */ + entity E {} + '''.testHighlighting("TODO", taskTextStyle) + } + + @Test def xxx_task_in_comment() { + ''' + /** + * XXX + */ + entity E {} + '''.testHighlighting("XXX", taskTextStyle) + } + + @Test def single_quoted_string() { + ''' + entity E { + a : String + op m() { + a = 'foo' + } + } + '''.testHighlighting("'foo'", stringTextStyle) + } + + @Test def double_quoted_string() { + ''' + entity E { + a : String + op m() { + a = "foo" + } + } + '''.testHighlighting('"foo"', stringTextStyle) + } + + @Test def number_literal() { + ''' + entity E { + a : int + op m() { + a = 100 + } + } + '''.testHighlighting('100', numberTextStyle) + } + +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HoverTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HoverTest.xtend new file mode 100644 index 00000000..8c783849 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HoverTest.xtend @@ -0,0 +1,113 @@ +/******************************************************************************* + * Copyright (c) 2018, 2021 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractHoverTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +import static extension org.eclipse.xtext.ui.testing.util.JavaProjectSetupUtil.createJavaProject + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class HoverTest extends AbstractHoverTest { + + @Before def void setup() throws Exception { + /* + * Xbase-based languages require java project + */ + projectName.createJavaProject + } + + @Test def hover_over_import_statement() { + ''' + import java.util.List + + entity Foo { + bar : List + } + '''.hasHoverOver("java.util.List", '''An ordered collection (also known as a sequence''') + } + + @Test def hover_over_link_in_javadoc() { + ''' + /** + * {@link java.util.List} + */ + entity Foo {} + '''.hasHoverOver("java.util.List", '''An ordered collection (also known as a sequence''') + } + + @Test def hover_over_java_typed_property() { + ''' + entity Foo { + name : Object + } + '''.hasHoverOver("name", '''Property name : Object''') + } + + @Test def hover_over_java_type() { + ''' + entity Foo { + name : Object + } + '''.hasHoverOver("Object", '''Class Object is the root of the class hierarchy.''') + } + + @Test def hover_over_entity_typed_property() { + ''' + entity Foo { + b : Bar + } + + entity Bar {} + '''.hasHoverOver("b", '''Property b : Bar''') + } + + @Test def hover_over_entity_type() { + ''' + entity Foo { + b : Bar + } + + /** + * Documentation of the entity Bar. + */ + entity Bar {} + '''.hasHoverOver("Bar", '''Documentation of the entity Bar.''') + } + + @Test def hover_over_operation() { + ''' + entity Foo { + b : String + op : getB() { + b + } + } + '''.hasHoverOver("getB", '''getB() : String''') + } + + @Test def hover_over_operation2() { + ''' + entity Foo { + b : String + op : setB(String b) : void { + this.b = b + } + } + '''.hasHoverOver("setB", '''setB(String b) : void''') + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HyperlinkingTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HyperlinkingTest.xtend new file mode 100644 index 00000000..1e410002 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/HyperlinkingTest.xtend @@ -0,0 +1,117 @@ +/******************************************************************************* + * Copyright (c) 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractHyperlinkingTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +import static extension org.eclipse.xtext.ui.testing.util.JavaProjectSetupUtil.createJavaProject + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class HyperlinkingTest extends AbstractHyperlinkingTest { + + @Before def void setup() throws Exception { + /* + * Xbase-based languages require java project + */ + projectName.createJavaProject + } + + @Test def hyperlink_on_java_import_statement() { + ''' + import «c»java.util.Date«c» + + entity Foo { + date : Date + } + '''.hasHyperlinkTo("java.util.Date") + } + + @Test def hyperlink_on_java_member_type() { + ''' + import java.util.Date + + entity Foo { + date : «c»Date«c» + } + '''.hasHyperlinkTo("java.util.Date") + } + + @Test def hyperlink_on_entity_import_statement() { + ''' + import «c»foopackage.Foo«c» + + package foopackage { + entity Foo {} + } + + entity Bar { + foo : Foo + } + '''.hasHyperlinkTo("foopackage.Foo") + } + + @Test def hyperlink_javadoc_link_to_java_type() { + ''' + import java.util.Date + + /** + * {@link «c»Date«c»} + */ + entity Foo { + date : Date + } + '''.hasHyperlinkTo("java.util.Date") + } + + @Test def hyperlink_on_entity_member_type() { + ''' + entity Foo {} + + entity Bar { + foo : «c»Foo«c» + } + '''.hasHyperlinkTo("Foo") + } + + @Test def hyperlink_on_entity_member_type_in_package() { + ''' + import foopackage.Foo + + package foopackage { + entity Foo {} + } + + entity Bar { + foo : «c»foopackage.Foo«c» + } + '''.hasHyperlinkTo("foopackage.Foo") + } + + @Test def hyperlink_javadoc_link_to_entity_type() { + ''' + import java.util.Date + + /** + * {@link «c»Foo«c»} + */ + entity Foo { + date : Date + } + '''.hasHyperlinkTo("Foo") + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/LabelProviderTest.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/LabelProviderTest.java new file mode 100644 index 00000000..b4f966dc --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/LabelProviderTest.java @@ -0,0 +1,87 @@ +/** + * Copyright (c) 2018, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.tests; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.viewers.ILabelProvider; +import org.eclipse.swt.graphics.Image; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelFactory; +import org.eclipse.xtext.testing.InjectWith; +import org.eclipse.xtext.testing.XtextRunner; +import org.eclipse.xtext.ui.IImageHelper; +import org.eclipse.xtext.xbase.ui.labeling.XbaseImages2; +import org.eclipse.xtext.xtype.XtypeFactory; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; + +import com.google.inject.Inject; + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner.class) +@InjectWith(DomainmodelUiInjectorProvider.class) +public class LabelProviderTest { + @Inject + private ILabelProvider labelProvider; + + @Inject + private IImageHelper imageHelper; + + @Inject + private XbaseImages2 xbaseImages; + + private final DomainmodelFactory domainmodelFactory = DomainmodelFactory.eINSTANCE; + + private final XtypeFactory xtypeFactory = XtypeFactory.eINSTANCE; + + @Test + public void package_image() { + hasImage(domainmodelFactory.createPackageDeclaration(), "PackageDeclaration.gif"); + } + + @Test + public void import_section_image() { + hasImage(xtypeFactory.createXImportSection(), xbaseImages.forImportContainer()); + } + + @Test + public void import_declaration_image() { + hasImage(xtypeFactory.createXImportDeclaration(), xbaseImages.forImport()); + } + + @Test + public void entity_image() { + hasImage(domainmodelFactory.createEntity(), "Entity.gif"); + } + + @Test + public void property_image() { + hasImage(domainmodelFactory.createProperty(), "Property.gif"); + } + + @Test + public void operation_image() { + hasImage(domainmodelFactory.createOperation(), "Operation.gif"); + } + + private void hasImage(EObject eObject, String image) { + Image actual = labelProvider.getImage(eObject); + Image expected = imageHelper.getImage(image); + Assert.assertEquals(expected, actual); + } + + private void hasImage(EObject eObject, ImageDescriptor descriptor) { + Image actual = labelProvider.getImage(eObject); + Image expected = imageHelper.getImage(descriptor); + Assert.assertEquals(expected, actual); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/OutlineTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/OutlineTest.xtend new file mode 100644 index 00000000..1105c4f0 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/OutlineTest.xtend @@ -0,0 +1,70 @@ +/******************************************************************************* + * Copyright (c) 2016, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractOutlineTest +import org.junit.Test +import org.junit.runner.RunWith + +/** + * @author Lorenzo Bettini - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class OutlineTest extends AbstractOutlineTest { + + @Test def void testOutline() throws Exception { + ''' + entity Foo { + name : String + op doStuff(String x) : String { + return x + ' ' + this.name + } + } + '''.assertAllLabels( + ''' + Foo + name : String + doStuff(String) : String + ''' + ) + } + + @Test def void testOutlineWithPackage() throws Exception { + ''' + package mypackage { + entity Foo { + name : String + op doStuff(String x) : String { + return x + ' ' + this.name + } + } + } + '''.assertAllLabels( + ''' + mypackage + Foo + name : String + doStuff(String) : String + ''' + ) + } + + @Test def void testOutlineWithInheritance() throws Exception { + ''' + entity A {} + entity B extends A {} + '''.assertAllLabels(''' + A + B extends A + ''') + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/QuickfixTest.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/QuickfixTest.xtend new file mode 100644 index 00000000..a4f08d0f --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui.tests/src/org/eclipse/xtext/example/domainmodel/ui/tests/QuickfixTest.xtend @@ -0,0 +1,143 @@ +/******************************************************************************* + * Copyright (c) 2018, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.tests + +import org.eclipse.xtext.testing.InjectWith +import org.eclipse.xtext.testing.XtextRunner +import org.eclipse.xtext.ui.testing.AbstractQuickfixTest +import org.junit.Before +import org.junit.Test +import org.junit.runner.RunWith + +import static org.eclipse.xtext.example.domainmodel.validation.IssueCodes.INVALID_FEATURE_NAME +import static org.eclipse.xtext.example.domainmodel.validation.IssueCodes.INVALID_TYPE_NAME +import static org.eclipse.xtext.xbase.validation.IssueCodes.IMPORT_UNUSED +import static org.eclipse.xtext.xbase.validation.IssueCodes.IMPORT_WILDCARD_DEPRECATED + +import static extension org.eclipse.xtext.ui.testing.util.JavaProjectSetupUtil.createJavaProject + +/** + * @author miklossy - Initial contribution and API + */ +@RunWith(XtextRunner) +@InjectWith(DomainmodelUiInjectorProvider) +class QuickfixTest extends AbstractQuickfixTest { + + @Before def void setup() throws Exception { + /* + * Xbase-based languages require java project + */ + projectName.createJavaProject + } + + @Test def fix_invalid_entity_name() { + ''' + entity blog { + } + '''.testQuickfixesOn(INVALID_TYPE_NAME, new Quickfix("Capitalize name", "Capitalize name of 'blog'", ''' + entity Blog { + } + ''')) + } + + @Test def fix_invalid_property_name() { + ''' + entity Blog { + Title : String + } + '''.testQuickfixesOn(INVALID_FEATURE_NAME, new Quickfix("Uncapitalize name", "Uncapitalize name of 'Title'", ''' + entity Blog { + title : String + } + ''')) + } + + @Test def fix_invalid_operation_name() { + ''' + entity Blog { + title : String + op SetTitle(String title) {} + } + '''.testQuickfixesOn(INVALID_FEATURE_NAME, new Quickfix("Uncapitalize name", "Uncapitalize name of 'SetTitle'", ''' + entity Blog { + title : String + op setTitle(String title) {} + } + ''')) + } + + @Test def fix_unused_imports1() { + ''' + import java.util.Date + + entity Blog {} + '''.testQuickfixesOn(IMPORT_UNUSED, + new Quickfix( + "Organize imports", + "Organizes the whole import section. Removes wildcard imports as well as duplicates and unused ones.", + ''' + entity Blog {} + ''' + ) + ) + } + + @Test def fix_unused_imports2() { + ''' + import java.util.Date + import java.util.List + + entity Blog { + posts : List + } + + entity Post {} + '''.testQuickfixesOn(IMPORT_UNUSED, + new Quickfix( + "Organize imports", + "Organizes the whole import section. Removes wildcard imports as well as duplicates and unused ones.", + ''' + import java.util.List + + entity Blog { + posts : List + } + + entity Post {} + ''' + ) + ) + } + + @Test def fix_wildcard_imports() { + ''' + import java.util.* + + entity Blog { + posts : List + } + + entity Post {} + '''.testQuickfixesOn(IMPORT_WILDCARD_DEPRECATED, + new Quickfix( + "Organize imports", + "Organizes the whole import section. Removes wildcard imports as well as duplicates and unused ones.", + ''' + import java.util.List + + entity Blog { + posts : List + } + + entity Post {} + ''' + ) + ) + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.classpath b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.classpath new file mode 100755 index 00000000..3412d981 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.classpath @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.gitignore b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.gitignore new file mode 100644 index 00000000..eab9f93b --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.gitignore @@ -0,0 +1,2 @@ +bin +plugin.xml_gen diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.project new file mode 100755 index 00000000..8c780ce2 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.project @@ -0,0 +1,34 @@ + + + org.eclipse.xtext.example.domainmodel.ui + + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.runtime.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 00000000..5a0ad22d --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +line.separator=\n diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.core.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..5e93b888 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,394 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch,*.xtend,*._trace,*.xtendbin +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=disabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=100 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=warning +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=11 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=false +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=140 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=140 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.launching.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.launching.prefs new file mode 100644 index 00000000..96809758 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.launching.prefs @@ -0,0 +1,3 @@ +#Wed Aug 12 21:10:17 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.ui.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..b8d86ba0 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,118 @@ +#Wed Oct 14 22:36:24 CEST 2009 +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=false +cleanup.format_source_code=false +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=false +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=false +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=false +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_Xtext +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_'Xtext' +formatter_settings_version=11 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=java;javax;org;com; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=1 +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=false +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=false +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=false +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.pde.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.pde.prefs new file mode 100644 index 00000000..e32163db --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/.settings/org.eclipse.pde.prefs @@ -0,0 +1,32 @@ +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.build.bin.includes=1 +compilers.p.build.encodings=2 +compilers.p.build.java.compiler=2 +compilers.p.build.java.compliance=1 +compilers.p.build.missing.output=2 +compilers.p.build.output.library=1 +compilers.p.build.source.library=1 +compilers.p.build.src.includes=1 +compilers.p.deprecated=2 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=2 +compilers.p.missing-version-export-package=2 +compilers.p.missing-version-import-package=2 +compilers.p.missing-version-require-bundle=2 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/META-INF/MANIFEST.MF b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000..3cf7d689 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/META-INF/MANIFEST.MF @@ -0,0 +1,37 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Xtext Domainmodel Example - Eclipse UI +Bundle-Vendor: Eclipse Xtext +Bundle-Version: 2.34.0.qualifier +Bundle-SymbolicName: org.eclipse.xtext.example.domainmodel.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.compare;bundle-version="3.8.300", + org.eclipse.jdt.core;bundle-version="3.29.0";resolution:=optional;x-installation:=greedy, + org.eclipse.jdt.debug.ui;bundle-version="3.12.600", + org.eclipse.ui;bundle-version="3.201.0", + org.eclipse.ui.editors;bundle-version="3.14.300", + org.eclipse.ui.ide;bundle-version="3.13.1", + org.eclipse.xtext.builder,org.eclipse.xtend.lib;bundle-version="2.14.0";resolution:=optional, + org.eclipse.xtext.common.types.ui, + org.eclipse.xtext.example.domainmodel, + org.eclipse.xtext.example.domainmodel.ide, + org.eclipse.xtext.ui, + org.eclipse.xtext.ui.codetemplates.ui, + org.eclipse.xtext.ui.shared, + org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", + org.eclipse.xtext.xbase.ui +Import-Package: org.apache.log4j, + org.eclipse.xtext.ui.codemining;resolution:=optional +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: org.eclipse.xtext.example.domainmodel.ui.autoedit, + org.eclipse.xtext.example.domainmodel.ui.contentassist, + org.eclipse.xtext.example.domainmodel.ui.editor, + org.eclipse.xtext.example.domainmodel.ui.internal, + org.eclipse.xtext.example.domainmodel.ui.labeling, + org.eclipse.xtext.example.domainmodel.ui.linking, + org.eclipse.xtext.example.domainmodel.ui.navigation, + org.eclipse.xtext.example.domainmodel.ui.outline, + org.eclipse.xtext.example.domainmodel.ui.quickfix, + org.eclipse.xtext.example.domainmodel.ui.search +Bundle-Activator: org.eclipse.xtext.example.domainmodel.ui.internal.DomainmodelActivator +Automatic-Module-Name: org.eclipse.xtext.example.domainmodel.ui diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/about.html b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/about.html new file mode 100644 index 00000000..164f781a --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/about.html @@ -0,0 +1,36 @@ + + + + +About + + +

About This Content

+ +

November 30, 2017

+

License

+ +

+ The Eclipse Foundation makes available all content in this plug-in + ("Content"). Unless otherwise indicated below, the Content + is provided to you under the terms and conditions of the Eclipse + Public License Version 2.0 ("EPL"). A copy of the EPL is + available at http://www.eclipse.org/legal/epl-2.0. + For purposes of the EPL, "Program" will mean the Content. +

+ +

+ If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") and different terms and conditions may + apply to your use of any object code in the Content. Check the + Redistributor's license that was provided with the Content. If no such + license exists, contact the Redistributor. Unless otherwise indicated + below, the terms and conditions of the EPL still apply to any source + code in the Content and such source code may be obtained at http://www.eclipse.org. +

+ + + \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/build.properties b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/build.properties new file mode 100755 index 00000000..7be0877e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/build.properties @@ -0,0 +1,8 @@ +source.. = src/,\ + src-gen/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + icons/,\ + about.html,\ + templates/ diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/DataType.gif b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/DataType.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9e56eea8abb476ca61ece62326fda6fd6b292e2 GIT binary patch literal 349 zcmZ?wbhEHb6krfwxXQrLxBT#j@BiO^`~Ugp|7V~7GlWiKiI~A1Gm9^7jzGd(!Gt-& ziStB~=7}ZG6HA#VoxV^eeSt#80+pO4+J!5$3zr*}t+J?EyW#lF3lHAt7B91@UE|rh zA$sEW#HqXH?Y(f}*@wf|?)?V?2HF6{pDc_F3`z_-Amc%PVqmLsm{{PUBcwQYNzqD8 z4n?^MC01WG_!hOKoqVfd#wYmHS#P$zq~DECiaYLqDA{popMa7e!$H3Z-D>jUf=tb= z;!Jf7%`H7WosF$Mg6(xe@{Hn)6$~>N8SD7vnHMivDk;sY#3Qe`cHMdbUI`^O?rqz5 QaByyR+q-YSlOuyQ05ykfGynhq literal 0 HcmV?d00001 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Entity.gif b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Entity.gif new file mode 100755 index 0000000000000000000000000000000000000000..c7573bde8f92d04f22164a5b3e9398fb655e5fa4 GIT binary patch literal 367 zcmZ?wbhEHb6krfwxXQrr_wWC|fB$Kjr|WsO{`vd=*YCeC-hF@g^2^sBe;&O2^7hk@ zk6(X1c=`F^t1mC!e}D7or+3{ZuiA}XwHtiuH+$D^^ljMUQ@7E(c7tEz7T@~K0WI78 zo3}l9_2uEK&oAD8d-LhXhp)fB{`md#_uoH%|M>%DTetf)Zw+YO9?-Hapmp2x_umQ@ z9NBRE=GUKp{`~v@=ik4-|Ni~||DS!65}`THj}nB!WaOqf9uQj*A;*5~PXe!9Q-7Rcg6%UyQEp~# z?p&r;W`zb(#WF=EUB$_@91W66N;*pIvy@ncoy1u5lo?qV^_MXiFbXUZ7ZKdJNl;Kk kNL*}@!rp!R_wF_nJ8)Ftkha*V(`QbFd0e>Y>d0UX02*?oiU0rr literal 0 HcmV?d00001 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Operation.gif b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Operation.gif new file mode 100755 index 0000000000000000000000000000000000000000..482a4d51abbe2eeb79b53f33a89bc0a624c55d06 GIT binary patch literal 573 zcmZ?wbhEHb6krfwc*ekR@ZjM^o33p?e7AGq#nrp-tlo9AZNbG=yKinjczgTdoBK}Q zt(<W5fMd#ZVp6gt4aqi|DD}b_x@9aByyL|eIw#DbS9J#&u@U1O}Z>9Ag-F@o* z;q&)XCmc=gIgrw`w{6+^%|~u*J#yW(exFDEe)sx49u0dv>h=V-><(_(lh}Vat!3GQ z9haCa^IaSFx;5@~ZP?{rzss|6kAKUqpw?Z96ZWOFtxRrNI)B$y2HRo=n<575LMH11 zW}9NOlC`!~8ysslyEN`{s@>|^wA-a|hjYzFzqXx$t=ogzb|kkgOKD%8+_E^eZD~sD z5(b+B2HOG#>wE^AJOhCOq{=Jn?ba& zzqXXQFISLKYlxVHq7Vlslej`aTL=rQska%sU`VSkwUS{MQ;TLYXBa-$^8HT literal 0 HcmV?d00001 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/PackageDeclaration.gif b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/PackageDeclaration.gif new file mode 100644 index 0000000000000000000000000000000000000000..f844ade1cc664fe4740961a2cbecfe286bff8275 GIT binary patch literal 110 zcmZ?wbhEHb6krfwSj52a;rsu$-~NC8`TyDH{|XrkEt>jGVMPk7U#?{5#)CBqejwU5hn2)=OHo4?E`GXXJTP!+)S@L4k%xW8b7D KMLRth7_0$IXfdh) literal 0 HcmV?d00001 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Property.gif b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/icons/Property.gif new file mode 100755 index 0000000000000000000000000000000000000000..99b7fa68d968746ff57c674a07c312e104809fdd GIT binary patch literal 329 zcmZ?wbhEHb6krfwxXQrr_uqf(igjA~E41@gXy>mmELm+-yxOXAy;a3JtIBoG^_!d< zHo4Sq@@?Jb+qNyVXIB^y^#aMAag+ANP23wdX>a_by{Xd@9l?CWRbROEDKRZx*rn58gNMS;zkg^7iE Q>5^qjyjQJWA!@y_HAmGR#=*%GG#31PS{l{+x5!Wx@elv)< z{rvUk#k-$xKK^?1@#p7nzn{GM@#6i@4_|(L`|5c|jLPru%L`uXAOug~9qfB*SgCUucw#uBxhWqO4x^@>)Sm9Mp{ z*xqB4D6i^4o%H1t!?dXW?kJqT`i_O6DLhF zH*GPVXg_P#M01lCBN0^wR!&w1RSrv|76SnRMip)@MlLQ3!xnv6VM$3Ag|jAHUG!Oy?Lh&f+4Tgbohu@5s0PgKf5fY{ zqwD{F$%%9OSPhgCEgGZ`oH)^Ox@;B0oWusXNhi1rooBK{cYNa$PE`HD$SoJnBgnuY YmZHVB=APjzpaU2@UHx3vIVCg!0Out@W&i*H literal 0 HcmV?d00001 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/plugin.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/plugin.xml new file mode 100644 index 00000000..bc7c6fb4 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/plugin.xml @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/pom.xml new file mode 100644 index 00000000..82b2af81 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/pom.xml @@ -0,0 +1,13 @@ + + 4.0.0 + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + ../org.eclipse.xtext.example.domainmodel.releng + + org.eclipse.xtext.example.domainmodel.ui + eclipse-plugin + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/DomainmodelUiModule.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/DomainmodelUiModule.java new file mode 100644 index 00000000..789c6a07 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/DomainmodelUiModule.java @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.eclipse.xtext.example.domainmodel.ui.autoedit.FantasticEditStrategyProvider; +import org.eclipse.xtext.example.domainmodel.ui.linking.DomainmodelLinkingDiagnosticMessageProvider; +import org.eclipse.xtext.example.domainmodel.ui.navigation.DomainmodelHyperlinkHelper; +import org.eclipse.xtext.example.domainmodel.ui.outline.FilterOperationsContribution; +import org.eclipse.xtext.linking.ILinkingDiagnosticMessageProvider; +import org.eclipse.xtext.ui.editor.autoedit.AbstractEditStrategyProvider; +import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkHelper; +import org.eclipse.xtext.ui.editor.outline.actions.IOutlineContribution; + +import com.google.inject.Binder; +import com.google.inject.name.Names; + +/** + * Use this class to register components to be used within the Eclipse IDE. + */ +public class DomainmodelUiModule extends AbstractDomainmodelUiModule { + + public DomainmodelUiModule(AbstractUIPlugin plugin) { + super(plugin); + } + + public Class bindILinkingDiagnosticMessageProvider() { + return DomainmodelLinkingDiagnosticMessageProvider.class; + } + + @Override + public Class bindIHyperlinkHelper() { + return DomainmodelHyperlinkHelper.class; + } + + @Override + public Class bindAbstractEditStrategyProvider() { + return FantasticEditStrategyProvider.class; + } + + public void configureFilterOperationsOutlineContribution(Binder binder) { + binder.bind(IOutlineContribution.class).annotatedWith(Names.named("FilterOperationsContribution")) + .to(FilterOperationsContribution.class); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/autoedit/FantasticEditStrategyProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/autoedit/FantasticEditStrategyProvider.java new file mode 100644 index 00000000..5d35e139 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/autoedit/FantasticEditStrategyProvider.java @@ -0,0 +1,80 @@ +/** + * Copyright (c) 2010, 2021 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.autoedit; + +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.DocumentCommand; +import org.eclipse.jface.text.IAutoEditStrategy; +import org.eclipse.jface.text.IDocument; +import org.eclipse.xtext.ui.editor.autoedit.DefaultAutoEditStrategyProvider; +import org.eclipse.xtext.util.Strings; + +/** + * @author Sven Efftinge - Initial contribution and API + */ +public class FantasticEditStrategyProvider extends DefaultAutoEditStrategyProvider { + private static class Surprise implements IAutoEditStrategy { + private String contents; + + @Override + public void customizeDocumentCommand(IDocument document, DocumentCommand command) { + try { + if (command.text.equals("t") && document.get(command.offset - 4, 4).equals("Xtex")) { + contents = document.get(); + document.set(getText()); + command.text = ""; + command.offset = getText().lastIndexOf("M") + 1; + } else { + if (contents != null) { + document.set(contents); + contents = null; + } + } + } catch (final BadLocationException e) { + // ignore + } + } + + private String getText() { + return Strings.toPlatformLineSeparator("\n\n\n" + + "\t\t\tMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM\n" + + "\t\t\tMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM\n" + + "\t\t\tMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM\n" + + "\t\t\tMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM\n" + + "\t\t\tM MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM\n" + + "\t\t\tMM MMMMMMMMMMMMMMMMMMMMM MMMMMMMMMM\n" + + "\t\t\tMMMM MMMMMMMMMMMMMMMM MMMMMMMMMMMM\n" + + "\t\t\tMMMMMM MMMMMMMMM MMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMM MMMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMM MMMMMMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMM MMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMM MMM MMMMMMMM\n" + + "\t\t\tMMMMMMMMMM MMMMMMMMMMMMMMM MMMMMM\n" + + "\t\t\tMMMMMMMMM MMMMMMMMMMMMMMMMMMMM MMMM\n" + + "\t\t\tMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMM MM\n" + + "\t\t\tMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMM MMM\n" + + "\t\t\tMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMM\n" + + "\t\t\tMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMM\n" + + "\t\t\tMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMM\n" + + "\t\t\tMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n" + + "\t\t\tMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n"); + } + } + + @Override + protected void configure(IEditStrategyAcceptor acceptor) { + super.configure(acceptor); + acceptor.accept(new Surprise(), IDocument.DEFAULT_CONTENT_TYPE); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/codemining/DomainmodelCodeMiningProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/codemining/DomainmodelCodeMiningProvider.java new file mode 100644 index 00000000..404f6aa2 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/codemining/DomainmodelCodeMiningProvider.java @@ -0,0 +1,96 @@ +/******************************************************************************* + * Copyright (c) 2018, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.codemining; + + +import java.util.Iterator; +import java.util.List; + +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.IDocument; +import org.eclipse.jface.text.codemining.ICodeMining; +import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.Keyword; +import org.eclipse.xtext.common.types.JvmOperation; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.example.domainmodel.services.DomainmodelGrammarAccess; +import org.eclipse.xtext.nodemodel.ICompositeNode; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.ui.codemining.AbstractXtextCodeMiningProvider; +import org.eclipse.xtext.util.CancelIndicator; +import org.eclipse.xtext.util.IAcceptor; +import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations; + +import com.google.inject.Inject; + +/** + * Provide code minings for the Domainmodel example. + */ +public class DomainmodelCodeMiningProvider extends AbstractXtextCodeMiningProvider { + + @Inject + private IJvmModelAssociations jvmModelAssociations; + @Inject + private DomainmodelGrammarAccess grammar; + + @Override + protected void createCodeMinings(IDocument document, XtextResource resource, CancelIndicator indicator, + IAcceptor acceptor) throws BadLocationException { + if (resource.getContents().isEmpty()) { + return; + } + + // get all entities in the open document + List allEntities = EcoreUtil2.eAllOfType(resource.getContents().get(0), Entity.class); + for (Entity e : allEntities) { + int propertiesCount = (int) e.getFeatures().stream().filter(f -> (f instanceof Property)).count(); + String propertiesHeaderText = propertiesCount + " " + (propertiesCount == 1 ? "property" : "properties"); + + int operationsCount = (int) e.getFeatures().stream().filter(f -> (f instanceof Operation)).count(); + String operationsHeaderText = operationsCount + " operation" + (operationsCount == 1 ? "" : "s"); + + ICompositeNode node = NodeModelUtils.getNode(e); + int beforeLineNumber = document.getLineOfOffset(node.getOffset()); + // create two line header code minings before the entity: one for the properties, one for the operations + acceptor.accept(createNewLineHeaderCodeMining(beforeLineNumber, document, propertiesHeaderText)); + acceptor.accept(createNewLineHeaderCodeMining(beforeLineNumber, document, operationsHeaderText)); + } + + // get all operations in the open document + List allOperations = EcoreUtil2.eAllOfType(resource.getContents().get(0), Operation.class); + // get keyword for ')' + Keyword rightParenthesisKeyword_4 = grammar.getOperationAccess().getRightParenthesisKeyword_4(); + for (Operation o : allOperations) { + //inline annotations only for methods with no return type + if (o.getType() != null) { + continue; + } + // get return type name from operation + JvmOperation inferredOp = (JvmOperation) jvmModelAssociations.getPrimaryJvmElement(o); + if (inferredOp == null || inferredOp.getReturnType() == null) { + continue; // broken model + } + String returnTypeName = inferredOp.getReturnType().getSimpleName(); + // find document offset for inline annotation + ICompositeNode node = NodeModelUtils.findActualNodeFor(o); + for (Iterator it = node.getAsTreeIterable().iterator(); it.hasNext();) { + INode child = it.next(); + if (rightParenthesisKeyword_4.equals(child.getGrammarElement())) { + // create line content code mining for inline annotation after grammarElement ')' + String annotationText = " : " + returnTypeName; + acceptor.accept(createNewLineContentCodeMining(child.getTotalOffset() + 1, annotationText)); + } + } + } + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/contentassist/DomainmodelProposalProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/contentassist/DomainmodelProposalProvider.java new file mode 100644 index 00000000..d34c60fb --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/contentassist/DomainmodelProposalProvider.java @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.contentassist; + + +/** + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#content-assist + * on how to customize the content assistant. + */ +public class DomainmodelProposalProvider extends AbstractDomainmodelProposalProvider { +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyBuilder.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyBuilder.java new file mode 100644 index 00000000..944acfc9 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyBuilder.java @@ -0,0 +1,92 @@ +/** + * Copyright (c) 2016, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.editor.hierarchy; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EClassifier; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.common.types.TypesPackage; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.ide.editor.hierarchy.DefaultCallHierarchyBuilder; +import org.eclipse.xtext.ide.editor.hierarchy.IHierarchyNodeLocationProvider; +import org.eclipse.xtext.resource.IEObjectDescription; +import org.eclipse.xtext.resource.IReferenceDescription; +import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations; + +import com.google.inject.Inject; + +/** + * @author kosyakov - Initial contribution and API + */ +public class AssociationHierarchyBuilder extends DefaultCallHierarchyBuilder { + @Inject + private IJvmModelAssociations jvmModelAssociations; + + @Inject + private AssociationHierarchyNodeLocationProvider associationHierarchyNodeLocationProvider; + + @Override + protected IHierarchyNodeLocationProvider getHierarchyNodeLocationProvider() { + return associationHierarchyNodeLocationProvider; + } + + @Override + protected IEObjectDescription findDeclaration(URI objectURI) { + IEObjectDescription description = getDescription(objectURI); + if (description != null) { + EClass eClass = description.getEClass(); + if (isJvmType(eClass)) { + return readOnly(description.getEObjectURI(), (EObject targetElement) -> { + EObject sourceElement = jvmModelAssociations.getPrimarySourceElement(targetElement); + if (sourceElement != null) { + if (isEntity(sourceElement.eClass())) { + return getDescription(sourceElement); + } + } + return null; + }); + } + if (isEntity(eClass)) { + return description; + } + } + return readOnly(objectURI, (EObject object) -> { + return getDescription(EcoreUtil2.getContainerOfType(object, Entity.class)); + }); + } + + @Override + protected boolean filterReference(IReferenceDescription reference) { + if (reference == null || !isJvmType(reference.getEReference().getEType())) { + return false; + } + return readOnly(reference.getSourceEObjectUri(), (EObject referenceOwner) -> { + if (referenceOwner != null) { + Property container = EcoreUtil2.getContainerOfType(referenceOwner, Property.class); + if (container != null) { + Entity entity = EcoreUtil2.getContainerOfType(container, Entity.class); + return entity != null; + } + } + return false; + }); + } + + protected boolean isJvmType(EClassifier type) { + return isAssignable(TypesPackage.Literals.JVM_TYPE, type); + } + + protected boolean isEntity(EClassifier type) { + return isAssignable(DomainmodelPackage.Literals.ENTITY, type); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyNodeLocationProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyNodeLocationProvider.java new file mode 100644 index 00000000..755171cd --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyNodeLocationProvider.java @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2016, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.editor.hierarchy; + +import com.google.inject.Singleton; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EStructuralFeature; +import org.eclipse.xtext.EcoreUtil2; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.ide.editor.hierarchy.DefaultHierarchyNodeLocationProvider; +import org.eclipse.xtext.util.ITextRegion; +import org.eclipse.xtext.util.ITextRegionWithLineInformation; + +/** + * @author kosyakov - Initial contribution and API + */ +@Singleton +public class AssociationHierarchyNodeLocationProvider extends DefaultHierarchyNodeLocationProvider { + @Override + public ITextRegionWithLineInformation getTextRegion(EObject owner, EStructuralFeature feature, int indexInList) { + Property property = EcoreUtil2.getContainerOfType(owner, Property.class); + if (property != null) { + ITextRegion textRegion = locationInFileProvider.getFullTextRegion(property); + return toTextRegionWithLineInformation(property, textRegion); + } + return super.getTextRegion(owner, feature, indexInList); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyViewPart.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyViewPart.java new file mode 100644 index 00000000..fcac169f --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/AssociationHierarchyViewPart.java @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2016, 2022 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.editor.hierarchy; + +import java.util.List; + +import org.eclipse.jface.viewers.ColumnLayoutData; +import org.eclipse.jface.viewers.ColumnWeightData; +import org.eclipse.xtext.ui.editor.hierarchy.DefaultCallHierarchyViewPart; +import org.eclipse.xtext.xbase.lib.Pair; + +import com.google.common.collect.Lists; + +/** + * @author kosyakov - Initial contribution and API + */ +public class AssociationHierarchyViewPart extends DefaultCallHierarchyViewPart { + @Override + protected List> getLocationColumnDescriptionList() { + return Lists.newArrayList( + Pair.of("Line", new ColumnWeightData(60)), + Pair.of("Property", new ColumnWeightData(300)) + ); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/OpenAssociationHierarchyHandler.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/OpenAssociationHierarchyHandler.java new file mode 100644 index 00000000..af704c5e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/editor/hierarchy/OpenAssociationHierarchyHandler.java @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2016, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.editor.hierarchy; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.ide.editor.hierarchy.IHierarchyBuilder; +import org.eclipse.xtext.resource.IGlobalServiceProvider; +import org.eclipse.xtext.resource.IResourceDescriptions; +import org.eclipse.xtext.ui.editor.findrefs.EditorResourceAccess; +import org.eclipse.xtext.ui.editor.hierarchy.AbstractOpenHierarchyHandler; +import org.eclipse.xtext.ui.editor.hierarchy.DeferredHierarchyBuilder; + +import com.google.inject.Inject; + +/** + * @author kosyakov - Initial contribution and API + */ +public class OpenAssociationHierarchyHandler extends AbstractOpenHierarchyHandler { + private static final String HIERARCHY_VIEW_PART_ID = "org.eclipse.xtext.example.domainmodel.ui.editor.AssociationHierarchy"; + + @Inject + private IGlobalServiceProvider globalServiceProvider; + + @Inject + private EditorResourceAccess resourceAccess; + + @Override + protected String getHierarchyViewPartID() { + return OpenAssociationHierarchyHandler.HIERARCHY_VIEW_PART_ID; + } + + @Override + protected IHierarchyBuilder createHierarchyBuilder(EObject target) { + AssociationHierarchyBuilder xtextCallHierarchyBuilder = globalServiceProvider.findService(target, + AssociationHierarchyBuilder.class); + xtextCallHierarchyBuilder.setResourceAccess(resourceAccess); + xtextCallHierarchyBuilder.setIndexData(globalServiceProvider.findService(target, IResourceDescriptions.class)); + DeferredHierarchyBuilder deferredHierarchyBuilder = globalServiceProvider.findService(target, DeferredHierarchyBuilder.class); + deferredHierarchyBuilder.setHierarchyBuilder(xtextCallHierarchyBuilder); + return deferredHierarchyBuilder; + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelDescriptionLabelProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelDescriptionLabelProvider.java new file mode 100644 index 00000000..79655639 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelDescriptionLabelProvider.java @@ -0,0 +1,24 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.labeling; + +import org.eclipse.xtext.resource.IEObjectDescription; +import org.eclipse.xtext.xbase.ui.labeling.XbaseDescriptionLabelProvider; + +/** + * Provides labels for IEObjectDescriptions and IResourceDescriptions. + * + * https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#label-provider + */ +public class DomainmodelDescriptionLabelProvider extends XbaseDescriptionLabelProvider { + @Override + public String image(IEObjectDescription description) { + return description.getEClass().getName() + ".gif"; + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelLabelProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelLabelProvider.java new file mode 100644 index 00000000..4aa66503 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/labeling/DomainmodelLabelProvider.java @@ -0,0 +1,156 @@ +/** + * Copyright (c) 2016, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.labeling; + +import java.util.Iterator; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; +import org.eclipse.jface.viewers.StyledString; +import org.eclipse.xtext.common.types.JvmArrayType; +import org.eclipse.xtext.common.types.JvmFormalParameter; +import org.eclipse.xtext.common.types.JvmGenericArrayTypeReference; +import org.eclipse.xtext.common.types.JvmIdentifiableElement; +import org.eclipse.xtext.common.types.JvmParameterizedTypeReference; +import org.eclipse.xtext.common.types.JvmType; +import org.eclipse.xtext.common.types.JvmTypeConstraint; +import org.eclipse.xtext.common.types.JvmTypeReference; +import org.eclipse.xtext.common.types.JvmUpperBound; +import org.eclipse.xtext.common.types.JvmWildcardTypeReference; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.util.Strings; +import org.eclipse.xtext.xbase.ui.labeling.XbaseLabelProvider; +import org.eclipse.xtext.xtype.XImportDeclaration; +import org.eclipse.xtext.xtype.XImportSection; + +import com.google.inject.Inject; + +/** + * Provides labels for EObjects. See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#label-provider + */ +public class DomainmodelLabelProvider extends XbaseLabelProvider { + @Inject + public DomainmodelLabelProvider(AdapterFactoryLabelProvider delegate) { + super(delegate); + } + + @Override + protected Object doGetImage(Object element) { + if (element instanceof JvmIdentifiableElement || element instanceof XImportSection || element instanceof XImportDeclaration) { + return super.doGetImage(element); + } else if (element instanceof EObject) { + return ((EObject) element).eClass().getName() + ".gif"; + } + return super.doGetImage(element); + + } + + public Object text(Entity entity) { + StringBuilder builder = new StringBuilder(); + builder.append(Strings.notNull(entity.getName())); + JvmParameterizedTypeReference superType = entity.getSuperType(); + if (superType != null) { + builder.append(" extends "); + builder.append(Strings.notNull(superType.getSimpleName())); + return style(builder.toString()); + } + return builder.toString(); + } + + public Object text(Property property) { + StringBuilder builder = new StringBuilder(); + builder.append(Strings.notNull(property.getName())); + builder.append(" : "); + append(builder, property.getType()); + return style(builder.toString()); + } + + public Object text(Operation operation) { + StringBuilder builder = new StringBuilder(); + builder.append(Strings.notNull(operation.getName())); + builder.append("("); + boolean isFirst = true; + for (JvmFormalParameter param : operation.getParams()) { + if (!isFirst) { + builder.append(", "); + } + isFirst = false; + append(builder, param.getParameterType()); + } + builder.append(") : "); + append(builder, operation.getType()); + return style(builder.toString()); + } + + protected void append(StringBuilder builder, JvmTypeReference typeRef) { + if (typeRef instanceof JvmParameterizedTypeReference) { + JvmType type = ((JvmParameterizedTypeReference) typeRef).getType(); + append(builder, type); + EList arguments = ((JvmParameterizedTypeReference) typeRef).getArguments(); + if (!arguments.isEmpty()) { + builder.append("<"); + Iterator iterator = arguments.iterator(); + while (iterator.hasNext()) { + JvmTypeReference jvmTypeReference = iterator.next(); + append(builder, jvmTypeReference); + if (iterator.hasNext()) { + builder.append(","); + } + } + builder.append(">"); + } + } else { + if (typeRef instanceof JvmWildcardTypeReference) { + builder.append("?"); + Iterator contraintsIterator = ((JvmWildcardTypeReference) typeRef).getConstraints().iterator(); + while (contraintsIterator.hasNext()) { + JvmTypeConstraint constraint = contraintsIterator.next(); + if (constraint instanceof JvmUpperBound) { + builder.append(" extends "); + } else { + builder.append(" super "); + } + append(builder, constraint.getTypeReference()); + if (contraintsIterator.hasNext()) { + builder.append(" & "); + } + } + } else { + if (typeRef instanceof JvmGenericArrayTypeReference) { + append(builder, ((JvmGenericArrayTypeReference) typeRef).getType()); + } + } + } + } + + protected void append(StringBuilder builder, JvmType type) { + if (type instanceof JvmArrayType) { + append(builder, ((JvmArrayType) type).getComponentType()); + builder.append("[]"); + } else { + builder.append(Strings.notNull(type.getSimpleName())); + } + } + + private StyledString style(String text) { + StyledString styled = new StyledString(text); + int offset = text.indexOf(":"); + if (offset == -1) { + offset = text.indexOf("extends"); + } + if (offset != -1) { + int length = text.length(); + styled.setStyle(offset, length - offset, StyledString.DECORATIONS_STYLER); + } + return styled; + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/linking/DomainmodelLinkingDiagnosticMessageProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/linking/DomainmodelLinkingDiagnosticMessageProvider.java new file mode 100644 index 00000000..d433ca58 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/linking/DomainmodelLinkingDiagnosticMessageProvider.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright (c) 2010, 2018 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.linking; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.common.types.JvmTypeReference; +import org.eclipse.xtext.diagnostics.DiagnosticMessage; +import org.eclipse.xtext.diagnostics.Severity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.example.domainmodel.domainmodel.util.DomainmodelSwitch; +import org.eclipse.xtext.example.domainmodel.validation.IssueCodes; +import org.eclipse.xtext.linking.impl.LinkingDiagnosticMessageProvider; + +/** + * @author Jan Koehnlein initial contribution and API + */ +public class DomainmodelLinkingDiagnosticMessageProvider extends LinkingDiagnosticMessageProvider { + + @Override + public DiagnosticMessage getUnresolvedProxyMessage(final ILinkingDiagnosticContext context) { + EObject element = context.getContext(); + if (element instanceof JvmTypeReference) { + JvmTypeReference jvmTypeReference = (JvmTypeReference) element; + DiagnosticMessage diagnosticMessage = new DomainmodelSwitch() { + @Override + public DiagnosticMessage caseEntity(Entity entity) { + return new DiagnosticMessage("Missing supertype " + context.getLinkText(), Severity.ERROR, + IssueCodes.MISSING_TYPE, context.getLinkText()); + } + + @Override + public DiagnosticMessage caseProperty(Property property) { + return new DiagnosticMessage("Missing property type " + context.getLinkText(), Severity.ERROR, + IssueCodes.MISSING_TYPE, context.getLinkText()); + } + + @Override + public DiagnosticMessage caseOperation(Operation operation) { + return new DiagnosticMessage("Missing return type " + context.getLinkText(), Severity.ERROR, + IssueCodes.MISSING_TYPE, context.getLinkText()); + } + }.doSwitch(jvmTypeReference.eContainer()); + if (diagnosticMessage != null) + return diagnosticMessage; + } + return super.getUnresolvedProxyMessage(context); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/navigation/DomainmodelHyperlinkHelper.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/navigation/DomainmodelHyperlinkHelper.java new file mode 100644 index 00000000..08a0a769 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/navigation/DomainmodelHyperlinkHelper.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * Copyright (c) 2010, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.navigation; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jface.text.IRegion; +import org.eclipse.jface.text.Region; +import org.eclipse.xtext.common.types.xtext.ui.JdtHyperlink; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.naming.IQualifiedNameConverter; +import org.eclipse.xtext.naming.IQualifiedNameProvider; +import org.eclipse.xtext.nodemodel.INode; +import org.eclipse.xtext.nodemodel.util.NodeModelUtils; +import org.eclipse.xtext.resource.XtextResource; +import org.eclipse.xtext.resource.XtextResourceSet; +import org.eclipse.xtext.ui.editor.hyperlinking.IHyperlinkAcceptor; +import org.eclipse.xtext.xbase.ui.navigation.XbaseHyperLinkHelper; + +import com.google.inject.Inject; +import com.google.inject.Provider; + +/** + * @author Sebastian Zarnekow - Initial contribution and API + * @author Jan Koehnlein - introduced QualifiedName + */ +public class DomainmodelHyperlinkHelper extends XbaseHyperLinkHelper { + + private static final Logger logger = Logger.getLogger(DomainmodelHyperlinkHelper.class); + + @Inject + private IQualifiedNameProvider qualifiedNameProvider; + + @Inject + private IQualifiedNameConverter qualifiedNameConverter; + + @Inject + private Provider jdtHyperlinkProvider; + + @Override + public void createHyperlinksByOffset(XtextResource resource, int offset, IHyperlinkAcceptor acceptor) { + super.createHyperlinksByOffset(resource, offset, acceptor); + EObject eObject = getEObjectAtOffsetHelper().resolveElementAt(resource, offset); + if (eObject instanceof Entity) { + List nodes = NodeModelUtils.findNodesForFeature(eObject, DomainmodelPackage.Literals.ABSTRACT_ELEMENT__NAME); + if (!nodes.isEmpty()) { + INode node = nodes.get(0); + if (node.getOffset() <= offset && node.getOffset() + node.getLength() > offset) { + String qualifiedJavaName = qualifiedNameConverter.toString(qualifiedNameProvider.getFullyQualifiedName(eObject)); + if (resource.getResourceSet() instanceof XtextResourceSet) { + XtextResourceSet resourceSet = (XtextResourceSet) resource.getResourceSet(); + Object uriContext = resourceSet.getClasspathURIContext(); + if (uriContext instanceof IJavaProject) { + IJavaProject javaProject = (IJavaProject) uriContext; + try { + IType type = javaProject.findType(qualifiedJavaName); + if (type != null) { + JdtHyperlink hyperlink = jdtHyperlinkProvider.get(); + hyperlink.setJavaElement(type); + hyperlink.setTypeLabel("Navigate to generated source code."); + hyperlink.setHyperlinkText("Go to type " + qualifiedJavaName); + hyperlink.setHyperlinkRegion((IRegion) new Region(node.getOffset(), node.getLength())); + acceptor.accept(hyperlink); + } + } catch(JavaModelException e) { + logger.error(e.getMessage(), e); + } + } + } + } + } + } + } + +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/DomainmodelOutlineTreeProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/DomainmodelOutlineTreeProvider.java new file mode 100644 index 00000000..3c6a8126 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/DomainmodelOutlineTreeProvider.java @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.ui.outline; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.common.types.JvmParameterizedTypeReference; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Feature; +import org.eclipse.xtext.ui.editor.outline.IOutlineNode; +import org.eclipse.xtext.ui.editor.outline.impl.DefaultOutlineTreeProvider; +import org.eclipse.xtext.ui.editor.outline.impl.DocumentRootNode; + +/** + * Customization of the default outline structure. + * + * See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#outline + */ +public class DomainmodelOutlineTreeProvider extends DefaultOutlineTreeProvider { + @Override + protected void _createChildren(DocumentRootNode parentNode, EObject rootElement) { + for (EObject content : rootElement.eContents()) { + createNode(parentNode, content); + } + } + + protected void _createNode(IOutlineNode parent, JvmParameterizedTypeReference modelElement) { + } + + protected boolean _isLeaf(Entity entity) { + return entity.getFeatures().isEmpty(); + } + + protected boolean _isLeaf(Feature feature) { + return true; + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/FilterOperationsContribution.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/FilterOperationsContribution.java new file mode 100644 index 00000000..a77700b3 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/outline/FilterOperationsContribution.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright (c) 2011, 2017 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.outline; + +import org.eclipse.jface.action.Action; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage; +import org.eclipse.xtext.ui.PluginImageHelper; +import org.eclipse.xtext.ui.editor.outline.IOutlineNode; +import org.eclipse.xtext.ui.editor.outline.actions.AbstractFilterOutlineContribution; +import org.eclipse.xtext.ui.editor.outline.impl.EObjectNode; + +import com.google.inject.Inject; + +/** + * @author Jan Koehnlein - Initial contribution and API + */ +public class FilterOperationsContribution extends AbstractFilterOutlineContribution { + + public static final String PREFERENCE_KEY = "ui.outline.filterEntities"; + + @Inject + private PluginImageHelper imageHelper; + + @Override + protected boolean apply(IOutlineNode node) { + return !(node instanceof EObjectNode) + || !((EObjectNode) node).getEClass().equals(DomainmodelPackage.Literals.OPERATION); + } + + @Override + public String getPreferenceKey() { + return PREFERENCE_KEY; + } + + @Override + protected void configureAction(Action action) { + action.setText("Hide operations"); + action.setDescription("Hide operations"); + action.setToolTipText("Hide operations"); + action.setImageDescriptor(imageHelper.getImageDescriptor("Operation.gif")); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/quickfix/DomainmodelQuickfixProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/quickfix/DomainmodelQuickfixProvider.java new file mode 100644 index 00000000..da263d2c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/quickfix/DomainmodelQuickfixProvider.java @@ -0,0 +1,46 @@ +/******************************************************************************* + * Copyright (c) 2016, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.quickfix; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.example.domainmodel.domainmodel.Feature; +import org.eclipse.xtext.example.domainmodel.validation.IssueCodes; +import org.eclipse.xtext.ui.editor.model.IXtextDocument; +import org.eclipse.xtext.ui.editor.model.edit.IModificationContext; +import org.eclipse.xtext.ui.editor.quickfix.Fix; +import org.eclipse.xtext.ui.editor.quickfix.IssueResolutionAcceptor; +import org.eclipse.xtext.util.Strings; +import org.eclipse.xtext.validation.Issue; +import org.eclipse.xtext.xbase.ui.quickfix.XbaseQuickfixProvider; + +/** + * Custom quickfixes. See https://www.eclipse.org/Xtext/documentation/310_eclipse_support.html#quick-fixes + */ +public class DomainmodelQuickfixProvider extends XbaseQuickfixProvider { + @Fix(IssueCodes.INVALID_TYPE_NAME) + public void fixTypeName(Issue issue, IssueResolutionAcceptor acceptor) { + acceptor.accept(issue, "Capitalize name", "Capitalize name of '" + issue.getData()[0] + "'", "upcase.png", // exemplary textual modification + (IModificationContext context) -> { + IXtextDocument xtextDocument = context.getXtextDocument(); + String firstLetter = xtextDocument.get(issue.getOffset(), 1); + xtextDocument.replace(issue.getOffset(), 1, Strings.toFirstUpper(firstLetter)); + }); + } + + @Fix(IssueCodes.INVALID_FEATURE_NAME) + public void fixFeatureName(Issue issue, IssueResolutionAcceptor acceptor) { + acceptor.accept(issue, "Uncapitalize name", "Uncapitalize name of '" + issue.getData()[0] + "'", "upcase.png", // exemplary semantic modification + (EObject element, IModificationContext context) -> ((Feature) element).setName(Strings.toFirstLower(issue.getData()[0]))); + } + + @Fix(IssueCodes.MISSING_TYPE) + public void createReferenceType(Issue issue, IssueResolutionAcceptor acceptor) { + createLinkingIssueResolutions(issue, acceptor); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/search/DomainmodelSearchFilter.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/search/DomainmodelSearchFilter.java new file mode 100644 index 00000000..762282f8 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/src/org/eclipse/xtext/example/domainmodel/ui/search/DomainmodelSearchFilter.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2011, 2017 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.ui.search; + +import org.eclipse.xtext.common.types.TypesPackage; +import org.eclipse.xtext.resource.IEObjectDescription; +import org.eclipse.xtext.ui.search.IXtextSearchFilter; + +public class DomainmodelSearchFilter implements IXtextSearchFilter { + + @Override + public boolean reject(IEObjectDescription input) { + return TypesPackage.Literals.JVM_FORMAL_PARAMETER.equals(input.getEClass()); + } + +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/templates/templates.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/templates/templates.xml new file mode 100644 index 00000000..61da5867 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.ui/templates/templates.xml @@ -0,0 +1,26 @@ + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.classpath b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.classpath new file mode 100755 index 00000000..5ff541c3 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.gitignore b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.gitignore new file mode 100644 index 00000000..2218a38e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.gitignore @@ -0,0 +1,2 @@ +bin +/.antlr-generator-3.2.0-patch.jar diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.project b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.project new file mode 100755 index 00000000..cdb81b86 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.project @@ -0,0 +1,34 @@ + + + org.eclipse.xtext.example.domainmodel + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.xtext.ui.shared.xtextBuilder + + + + + + org.eclipse.xtext.ui.shared.xtextNature + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.resources.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000..99f26c02 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.runtime.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 00000000..5a0ad22d --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +line.separator=\n diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.core.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..7f624811 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,399 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.builder.cleanOutputFolder=clean +org.eclipse.jdt.core.builder.duplicateResourceTask=warning +org.eclipse.jdt.core.builder.invalidClasspath=abort +org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore +org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch,*.xtend,*._trace,*.xtendbin +org.eclipse.jdt.core.circularClasspath=error +org.eclipse.jdt.core.classpath.exclusionPatterns=enabled +org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled +org.eclipse.jdt.core.codeComplete.argumentPrefixes= +org.eclipse.jdt.core.codeComplete.argumentSuffixes= +org.eclipse.jdt.core.codeComplete.fieldPrefixes= +org.eclipse.jdt.core.codeComplete.fieldSuffixes= +org.eclipse.jdt.core.codeComplete.localPrefixes= +org.eclipse.jdt.core.codeComplete.localSuffixes= +org.eclipse.jdt.core.codeComplete.staticFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFieldSuffixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes= +org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes= +org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled +org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore +org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull +org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault +org.eclipse.jdt.core.compiler.annotation.nonnullisdefault=disabled +org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable +org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=11 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=11 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.doc.comment.support=disabled +org.eclipse.jdt.core.compiler.maxProblemPerUnit=100 +org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.autoboxing=ignore +org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning +org.eclipse.jdt.core.compiler.problem.deadCode=warning +org.eclipse.jdt.core.compiler.problem.deprecation=warning +org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled +org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled +org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore +org.eclipse.jdt.core.compiler.problem.emptyStatement=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore +org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore +org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled +org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore +org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning +org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning +org.eclipse.jdt.core.compiler.problem.forbiddenReference=error +org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning +org.eclipse.jdt.core.compiler.problem.includeFieldsInNullAnalysis=disabled +org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled +org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning +org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning +org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning +org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore +org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled +org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore +org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning +org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore +org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled +org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning +org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag +org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning +org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning +org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore +org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning +org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error +org.eclipse.jdt.core.compiler.problem.nullReference=warning +org.eclipse.jdt.core.compiler.problem.nullSpecInsufficientInfo=warning +org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning +org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning +org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore +org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning +org.eclipse.jdt.core.compiler.problem.potentialNullSpecViolation=error +org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore +org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore +org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled +org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning +org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled +org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled +org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled +org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore +org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning +org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled +org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning +org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore +org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore +org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled +org.eclipse.jdt.core.compiler.problem.unusedImport=warning +org.eclipse.jdt.core.compiler.problem.unusedLabel=warning +org.eclipse.jdt.core.compiler.problem.unusedLocal=warning +org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled +org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled +org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning +org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore +org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning +org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning +org.eclipse.jdt.core.compiler.source=11 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=0 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false +org.eclipse.jdt.core.formatter.comment.format_block_comments=false +org.eclipse.jdt.core.formatter.comment.format_header=false +org.eclipse.jdt.core.formatter.comment.format_html=true +org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true +org.eclipse.jdt.core.formatter.comment.format_line_comments=false +org.eclipse.jdt.core.formatter.comment.format_source_code=true +org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true +org.eclipse.jdt.core.formatter.comment.indent_root_tags=true +org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert +org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert +org.eclipse.jdt.core.formatter.comment.line_length=140 +org.eclipse.jdt.core.formatter.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true +org.eclipse.jdt.core.formatter.indentation.size=4 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.join_lines_in_comments=true +org.eclipse.jdt.core.formatter.join_wrapped_lines=true +org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false +org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.jdt.core.formatter.lineSplit=140 +org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false +org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false +org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 +org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.jdt.core.formatter.tabulation.char=tab +org.eclipse.jdt.core.formatter.tabulation.size=4 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true +org.eclipse.jdt.core.incompatibleJDKLevel=ignore +org.eclipse.jdt.core.incompleteClasspath=error diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.launching.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.launching.prefs new file mode 100644 index 00000000..96809758 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.launching.prefs @@ -0,0 +1,3 @@ +#Wed Aug 12 21:10:17 CEST 2009 +eclipse.preferences.version=1 +org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.ui.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..b8d86ba0 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,118 @@ +#Wed Oct 14 22:36:24 CEST 2009 +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=false +cleanup.format_source_code=false +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=false +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=true +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=false +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=false +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=false +cleanup.use_this_for_non_static_field_access=false +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=false +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_Xtext +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_'Xtext' +formatter_settings_version=11 +org.eclipse.jdt.ui.exception.name=e +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=java;javax;org;com; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=1 +org.eclipse.jdt.ui.text.custom_code_templates= +sp_cleanup.add_default_serial_version_id=true +sp_cleanup.add_generated_serial_version_id=false +sp_cleanup.add_missing_annotations=true +sp_cleanup.add_missing_deprecated_annotations=true +sp_cleanup.add_missing_methods=false +sp_cleanup.add_missing_nls_tags=false +sp_cleanup.add_missing_override_annotations=true +sp_cleanup.add_serial_version_id=false +sp_cleanup.always_use_blocks=true +sp_cleanup.always_use_parentheses_in_expressions=false +sp_cleanup.always_use_this_for_non_static_field_access=false +sp_cleanup.always_use_this_for_non_static_method_access=false +sp_cleanup.convert_to_enhanced_for_loop=false +sp_cleanup.correct_indentation=false +sp_cleanup.format_source_code=false +sp_cleanup.format_source_code_changes_only=false +sp_cleanup.make_local_variable_final=false +sp_cleanup.make_parameters_final=false +sp_cleanup.make_private_fields_final=true +sp_cleanup.make_type_abstract_if_missing_method=false +sp_cleanup.make_variable_declarations_final=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +sp_cleanup.organize_imports=false +sp_cleanup.qualify_static_field_accesses_with_declaring_class=false +sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +sp_cleanup.qualify_static_member_accesses_with_declaring_class=false +sp_cleanup.qualify_static_method_accesses_with_declaring_class=false +sp_cleanup.remove_private_constructors=true +sp_cleanup.remove_trailing_whitespaces=false +sp_cleanup.remove_trailing_whitespaces_all=true +sp_cleanup.remove_trailing_whitespaces_ignore_empty=false +sp_cleanup.remove_unnecessary_casts=true +sp_cleanup.remove_unnecessary_nls_tags=false +sp_cleanup.remove_unused_imports=false +sp_cleanup.remove_unused_local_variables=false +sp_cleanup.remove_unused_private_fields=true +sp_cleanup.remove_unused_private_members=false +sp_cleanup.remove_unused_private_methods=true +sp_cleanup.remove_unused_private_types=true +sp_cleanup.sort_members=false +sp_cleanup.sort_members_all=false +sp_cleanup.use_blocks=false +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=false +sp_cleanup.use_this_for_non_static_field_access=false +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=false +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.pde.prefs b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.pde.prefs new file mode 100644 index 00000000..2bd5814c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/.settings/org.eclipse.pde.prefs @@ -0,0 +1,25 @@ +#Wed Aug 12 21:14:13 CEST 2009 +compilers.f.unresolved-features=1 +compilers.f.unresolved-plugins=1 +compilers.incompatible-environment=1 +compilers.p.build=1 +compilers.p.deprecated=1 +compilers.p.discouraged-class=1 +compilers.p.internal=1 +compilers.p.missing-packages=2 +compilers.p.missing-version-export-package=2 +compilers.p.missing-version-import-package=2 +compilers.p.missing-version-require-bundle=2 +compilers.p.no-required-att=0 +compilers.p.not-externalized-att=2 +compilers.p.unknown-attribute=1 +compilers.p.unknown-class=1 +compilers.p.unknown-element=1 +compilers.p.unknown-identifier=1 +compilers.p.unknown-resource=1 +compilers.p.unresolved-ex-points=0 +compilers.p.unresolved-import=0 +compilers.s.create-docs=false +compilers.s.doc-folder=doc +compilers.s.open-tags=1 +eclipse.preferences.version=1 diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/GenerateDomainmodel.mwe2.launch b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/GenerateDomainmodel.mwe2.launch new file mode 100644 index 00000000..5183584e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/GenerateDomainmodel.mwe2.launch @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/META-INF/MANIFEST.MF b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/META-INF/MANIFEST.MF new file mode 100644 index 00000000..09b2a12d --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/META-INF/MANIFEST.MF @@ -0,0 +1,33 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Xtext Domainmodel Example - Runtime +Bundle-Vendor: Eclipse Xtext +Bundle-Version: 2.34.0.qualifier +Bundle-SymbolicName: org.eclipse.xtext.example.domainmodel; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.antlr.runtime;bundle-version="[3.2.0,3.2.1)", + org.eclipse.emf.common, + org.eclipse.emf.ecore, + org.eclipse.equinox.common;bundle-version="3.16.0", + org.eclipse.xtend.lib;bundle-version="2.14.0", + org.eclipse.xtext, + org.eclipse.xtext.common.types, + org.eclipse.xtext.util, + org.eclipse.xtext.xbase, + org.eclipse.xtext.xbase.lib;bundle-version="2.14.0", + org.objectweb.asm;bundle-version="[9.6.0,9.7.0)";resolution:=optional +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Export-Package: org.eclipse.xtext.example.domainmodel, + org.eclipse.xtext.example.domainmodel.domainmodel, + org.eclipse.xtext.example.domainmodel.domainmodel.impl, + org.eclipse.xtext.example.domainmodel.domainmodel.util, + org.eclipse.xtext.example.domainmodel.formatting2, + org.eclipse.xtext.example.domainmodel.jvmmodel, + org.eclipse.xtext.example.domainmodel.parser.antlr, + org.eclipse.xtext.example.domainmodel.parser.antlr.internal, + org.eclipse.xtext.example.domainmodel.scoping, + org.eclipse.xtext.example.domainmodel.serializer, + org.eclipse.xtext.example.domainmodel.services, + org.eclipse.xtext.example.domainmodel.validation +Import-Package: org.apache.log4j +Automatic-Module-Name: org.eclipse.xtext.example.domainmodel diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/about.html b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/about.html new file mode 100644 index 00000000..164f781a --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/about.html @@ -0,0 +1,36 @@ + + + + +About + + +

About This Content

+ +

November 30, 2017

+

License

+ +

+ The Eclipse Foundation makes available all content in this plug-in + ("Content"). Unless otherwise indicated below, the Content + is provided to you under the terms and conditions of the Eclipse + Public License Version 2.0 ("EPL"). A copy of the EPL is + available at http://www.eclipse.org/legal/epl-2.0. + For purposes of the EPL, "Program" will mean the Content. +

+ +

+ If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") and different terms and conditions may + apply to your use of any object code in the Content. Check the + Redistributor's license that was provided with the Content. If no such + license exists, contact the Redistributor. Unless otherwise indicated + below, the terms and conditions of the EPL still apply to any source + code in the Content and such source code may be obtained at http://www.eclipse.org. +

+ + + \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/build.properties b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/build.properties new file mode 100644 index 00000000..c7a5f097 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/build.properties @@ -0,0 +1,19 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = model/generated/,\ + .,\ + META-INF/,\ + plugin.xml,\ + about.html,\ + model/ +additional.bundles = org.eclipse.xtext.xbase,\ + org.eclipse.xtext.common.types,\ + org.eclipse.xtext.xtext.generator,\ + org.eclipse.emf.codegen.ecore,\ + org.eclipse.emf.mwe.utils,\ + org.eclipse.emf.mwe2.launch,\ + org.eclipse.emf.mwe2.lib,\ + org.objectweb.asm,\ + org.apache.commons.logging,\ + org.apache.log4j diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/plugin.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/plugin.xml new file mode 100644 index 00000000..ae5980d5 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/plugin.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/pom.xml b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/pom.xml new file mode 100644 index 00000000..c07d9d91 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/pom.xml @@ -0,0 +1,134 @@ + + 4.0.0 + + org.eclipse.xtext.example.domainmodel + org.eclipse.xtext.example.domainmodel.parent + 2.34.0-SNAPSHOT + ../org.eclipse.xtext.example.domainmodel.releng + + org.eclipse.xtext.example.domainmodel + eclipse-plugin + + + 2.16.0 + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/eclipse/xtext/example/domainmodel/GenerateDomainmodel.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + [2.1.1, 3) + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.eclipse.xtext.example.domainmodel/src-gen/ + + **/* + + + + ${basedir}/../org.eclipse.xtext.example.domainmodel.tests/src-gen/ + + **/* + + + + ${basedir}/../org.eclipse.xtext.example.domainmodel.ide/src-gen/ + + **/* + + + + ${basedir}/../org.eclipse.xtext.example.domainmodel.ui/src-gen/ + + **/* + + + + ${basedir}/../org.eclipse.xtext.example.domainmodel.ui.tests/src-gen/ + + **/* + + + + ${basedir}/model/generated/ + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/Domainmodel.xtext b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/Domainmodel.xtext new file mode 100644 index 00000000..0533e74e --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/Domainmodel.xtext @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright (c) 2009, 2017 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +grammar org.eclipse.xtext.example.domainmodel.Domainmodel with org.eclipse.xtext.xbase.Xbase + +generate domainmodel "http://www.xtext.org/example/Domainmodel" + +DomainModel: + importSection=XImportSection? + elements+=AbstractElement*; + +AbstractElement: + PackageDeclaration | Entity; + +PackageDeclaration: + 'package' name=QualifiedName '{' + elements+=AbstractElement* + '}'; + +Entity: + 'entity' name=ValidID ('extends' superType=JvmParameterizedTypeReference)? '{' + features+=Feature* + '}'; + +Feature: + Property | Operation; + +Property: + name=ValidID ':' type=JvmTypeReference; + +Operation: + 'op' name=ValidID '(' (params+=FullJvmFormalParameter (',' params+=FullJvmFormalParameter)*)? ')' (':' type=JvmTypeReference)? + body=XBlockExpression; diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelRuntimeModule.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelRuntimeModule.java new file mode 100644 index 00000000..0f348601 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelRuntimeModule.java @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel; + +import org.eclipse.xtext.resource.persistence.IResourceStorageFacade; +import org.eclipse.xtext.xbase.resource.BatchLinkableResourceStorageFacade; + +/** + * Use this class to register components to be used at runtime / without the Equinox extension registry. + */ +public class DomainmodelRuntimeModule extends AbstractDomainmodelRuntimeModule { + public Class bindResourceStorageFacade() { + return BatchLinkableResourceStorageFacade.class; + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelStandaloneSetup.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelStandaloneSetup.java new file mode 100644 index 00000000..a0a63072 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/DomainmodelStandaloneSetup.java @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel; + + +/** + * Initialization support for running Xtext languages without Equinox extension registry. + */ +public class DomainmodelStandaloneSetup extends DomainmodelStandaloneSetupGenerated { + + public static void doSetup() { + new DomainmodelStandaloneSetup().createInjectorAndDoEMFRegistration(); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/GenerateDomainmodel.mwe2 b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/GenerateDomainmodel.mwe2 new file mode 100644 index 00000000..1195c7df --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/GenerateDomainmodel.mwe2 @@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright (c) 2010, 2018 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +module org.eclipse.xtext.example.domainmodel.GenerateDomainmodelLanguage + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* +import org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.eclipse.xtext.example.domainmodel" + rootPath = rootPath + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + createEclipseMetaData = true + } + code = { + preferXtendStubs = false + encoding = "UTF-8" + fileHeader = +"/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */" + } + } + language = StandardLanguage { + name = "org.eclipse.xtext.example.domainmodel.Domainmodel" + fileExtensions = "dmodel" + + serializer = { + generateStub = true + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + generateDeprecationValidation = false + } + formatter = { + generateStub = true + generateXtendStub = false + } + generator = { + generateStub = false + } + fragment = CodeMiningFragment { + generateStub = true + generateXtendStub = false + } + } + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/formatting2/DomainmodelFormatter.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/formatting2/DomainmodelFormatter.java new file mode 100644 index 00000000..397da00c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/formatting2/DomainmodelFormatter.java @@ -0,0 +1,96 @@ +/** + * Copyright (c) 2014, 2022 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.formatting2; + +import org.eclipse.xtext.common.types.JvmFormalParameter; +import org.eclipse.xtext.example.domainmodel.domainmodel.AbstractElement; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainModel; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Feature; +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation; +import org.eclipse.xtext.example.domainmodel.domainmodel.PackageDeclaration; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.formatting2.IFormattableDocument; +import org.eclipse.xtext.formatting2.regionaccess.ISemanticRegion; +import org.eclipse.xtext.xbase.formatting2.XbaseFormatter; + +/** + * @author Moritz Eysholdt - Initial implementation and API + */ +public class DomainmodelFormatter extends XbaseFormatter { + protected void _format(DomainModel domainmodel, IFormattableDocument document) { + document.append(document.prepend(domainmodel, it -> { + it.setNewLines(0, 0, 1); + it.noSpace(); + }), this::newLine); + format(domainmodel.getImportSection(), document); + for (AbstractElement element : domainmodel.getElements()) { + format(element, document); + } + } + + protected void _format(PackageDeclaration pkg, IFormattableDocument document) { + ISemanticRegion open = regionFor(pkg).keyword("{"); + ISemanticRegion close = regionFor(pkg).keyword("}"); + document.surround(regionFor(pkg).feature(DomainmodelPackage.Literals.ABSTRACT_ELEMENT__NAME), this::oneSpace); + document.append(open, this::newLine); + document.interior(open, close, this::indent); + for (AbstractElement element : pkg.getElements()) { + document.format(element); + document.append(element, it -> it.setNewLines(1, 1, 2)); + } + } + + protected void _format(Entity entity, IFormattableDocument document) { + ISemanticRegion open = regionFor(entity).keyword("{"); + ISemanticRegion close = regionFor(entity).keyword("}"); + document.surround(regionFor(entity).feature(DomainmodelPackage.Literals.ABSTRACT_ELEMENT__NAME), this::oneSpace); + document.surround(entity.getSuperType(), this::oneSpace); + document.append(open, this::newLine); + document.interior(open, close, this::indent); + format(entity.getSuperType(), document); + for (Feature feature : entity.getFeatures()) { + document.format(feature); + document.append(feature, it -> it.setNewLines(1, 1, 2)); + } + } + + protected void _format(Property property, IFormattableDocument document) { + document.surround(regionFor(property).keyword(":"), this::noSpace); + document.format(property.getType()); + } + + protected void _format(Operation operation, IFormattableDocument document) { + document.append(regionFor(operation).keyword("op"), this::oneSpace); + document.surround(regionFor(operation).keyword("("), this::noSpace); + if (!operation.getParams().isEmpty()) { + for (ISemanticRegion comma : regionFor(operation).keywords(",")) { + document.append(document.prepend(comma, this::noSpace), this::oneSpace); + } + for (JvmFormalParameter params : operation.getParams()) { + document.format(params); + } + document.prepend(regionFor(operation).keyword(")"), this::noSpace); + } + if (operation.getType() != null) { + document.append(regionFor(operation).keyword(")"), this::noSpace); + document.append(document.prepend(operation.getType(), this::noSpace), this::oneSpace); + document.format(operation.getType()); + } else { + document.append(regionFor(operation).keyword(")"), this::oneSpace); + } + document.format(operation.getBody()); + } + + @Override + public void format(Object expr, IFormattableDocument format) { + formatUsingPolymorphicDispatcher(expr, format); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelHelper.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelHelper.java new file mode 100644 index 00000000..f6404b1c --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelHelper.java @@ -0,0 +1,47 @@ +/******************************************************************************* + * Copyright (c) 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.jvmmodel; + +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; +import com.google.inject.Inject; +import java.util.Collection; +import java.util.List; +import java.util.function.Consumer; +import org.eclipse.xtext.common.types.JvmDeclaredType; +import org.eclipse.xtext.common.types.JvmOperation; +import org.eclipse.xtext.xbase.typesystem.override.IResolvedOperation; +import org.eclipse.xtext.xbase.typesystem.override.OverrideHelper; + +/** + * @author Lorenzo Bettini - Initial contribution and API, https://github.com/eclipse/xtext-eclipse/issues/1205 + */ +public class DomainmodelJvmModelHelper { + + @Inject + private OverrideHelper overrideHelper; + + /** + * Detects duplicated {@link JvmOperation}s in the passed {@link JvmDeclaredType} taking into consideration overloading and type + * erasure; each collection of duplicates is passed to the consumer. + */ + public void handleDuplicateJvmOperations(JvmDeclaredType jvmDeclaredType, Consumer> consumer) { + // takes into consideration overloading and type erasure + List methods = overrideHelper.getResolvedFeatures(jvmDeclaredType).getDeclaredOperations(); + Multimap signature2Declarations = HashMultimap.create(); + + methods.forEach(method -> signature2Declarations.put(method.getResolvedErasureSignature(), method.getDeclaration())); + + signature2Declarations.asMap().values().forEach(jvmOperations -> { + if (jvmOperations.size() > 1) { + consumer.accept(jvmOperations); + } + }); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelInferrer.xtend b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelInferrer.xtend new file mode 100644 index 00000000..18b638ee --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/jvmmodel/DomainmodelJvmModelInferrer.xtend @@ -0,0 +1,104 @@ +/******************************************************************************* + * Copyright (c) 2011, 2021 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.jvmmodel + +import com.google.inject.Inject +import org.eclipse.xtext.common.types.JvmDeclaredType +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation +import org.eclipse.xtext.example.domainmodel.domainmodel.Property +import org.eclipse.xtext.naming.IQualifiedNameProvider +import org.eclipse.xtext.xbase.jvmmodel.AbstractModelInferrer +import org.eclipse.xtext.xbase.jvmmodel.IJvmDeclaredTypeAcceptor +import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations +import org.eclipse.xtext.xbase.jvmmodel.JvmTypesBuilder +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1 +import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociator + +class DomainmodelJvmModelInferrer extends AbstractModelInferrer { + + @Inject extension JvmTypesBuilder + @Inject extension IQualifiedNameProvider + @Inject extension DomainmodelJvmModelHelper + @Inject extension IJvmModelAssociations + @Inject extension IJvmModelAssociator + + def dispatch infer(Entity entity, extension IJvmDeclaredTypeAcceptor acceptor, boolean prelinkingPhase) { + accept(entity.toClass( entity.fullyQualifiedName )) [ + documentation = entity.documentation + if (entity.superType !== null) + superTypes += entity.superType.cloneWithProxies + + // let's add a default constructor + members += entity.toConstructor [] + + // and one which can be called with a lambda for initialization. + val procedureType = typeRef(Procedure1, typeRef(it)) /* Procedure */ + members += entity.toConstructor [ + parameters += entity.toParameter("initializer", procedureType) + // here we implement the body using black box Java code. + body = ''' + initializer.apply(this); + ''' + ] + + // now let's go over the features + for ( f : entity.features ) { + switch f { + + // for properties we create a field, a getter and a setter + Property : { + val field = f.toField(f.name, f.type) + members += field + members += f.toGetter(f.name, f.type) + members += f.toSetter(f.name, f.type) + } + + // operations are mapped to methods + Operation : { + members += f.toMethod(f.name, f.type ?: inferredType) [ + documentation = f.documentation + for (p : f.params) { + parameters += p.toParameter(p.name, p.parameterType) + } + // here the body is implemented using a user expression. + // Note that by doing this we set the expression into the context of this method, + // The parameters, 'this' and all the members of this method will be visible for the expression. + body = f.body + ] + } + } + } + + // remove created getters/setters in case they + // are explicit in the source code + removeDuplicateGettersSetters + + // finally we want to have a nice toString methods. + members += entity.toToStringMethod(it) + ] + } + + def private removeDuplicateGettersSetters(JvmDeclaredType inferredType) { + inferredType.handleDuplicateJvmOperations[jvmOperations| + // we only remove getters/setters we created automatically + val getterOrSetter = jvmOperations.filter[primarySourceElement instanceof Property].head + if (getterOrSetter !== null) { + removeAllAssociation(getterOrSetter.returnType) + for (p : getterOrSetter.parameters) { + removeAllAssociation(p.parameterType) + removeAllAssociation(p) + } + removeAllAssociation(getterOrSetter) + inferredType.members.remove(getterOrSetter) + } + // other duplicated methods will be reported by the validator + ] + } +} \ No newline at end of file diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/scoping/DomainmodelScopeProvider.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/scoping/DomainmodelScopeProvider.java new file mode 100644 index 00000000..e964f774 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/scoping/DomainmodelScopeProvider.java @@ -0,0 +1,20 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.scoping; + + +/** + * This class contains custom scoping description. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#scoping + * on how and when to use it. + */ +public class DomainmodelScopeProvider extends AbstractDomainmodelScopeProvider { + +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSemanticSequencer.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSemanticSequencer.java new file mode 100644 index 00000000..7732b347 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSemanticSequencer.java @@ -0,0 +1,13 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.serializer; + + +public class DomainmodelSemanticSequencer extends AbstractDomainmodelSemanticSequencer { +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSyntacticSequencer.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSyntacticSequencer.java new file mode 100644 index 00000000..54f68dd1 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/serializer/DomainmodelSyntacticSequencer.java @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.serializer; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.RuleCall; +import org.eclipse.xtext.nodemodel.INode; + +public class DomainmodelSyntacticSequencer extends AbstractDomainmodelSyntacticSequencer { + @Override + protected String getArrayBracketsToken(EObject semanticObject, RuleCall ruleCall, INode node) { + if (node != null) { + return getTokenText(node); + } + return "[]"; + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/DomainmodelValidator.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/DomainmodelValidator.java new file mode 100644 index 00000000..50369aad --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/DomainmodelValidator.java @@ -0,0 +1,101 @@ +/** + * Copyright (c) 2016, 2020 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.eclipse.xtext.example.domainmodel.validation; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import org.eclipse.xtext.common.types.JvmGenericType; +import org.eclipse.xtext.example.domainmodel.domainmodel.DomainmodelPackage; +import org.eclipse.xtext.example.domainmodel.domainmodel.Entity; +import org.eclipse.xtext.example.domainmodel.domainmodel.Feature; +import org.eclipse.xtext.example.domainmodel.domainmodel.Operation; +import org.eclipse.xtext.example.domainmodel.domainmodel.PackageDeclaration; +import org.eclipse.xtext.example.domainmodel.domainmodel.Property; +import org.eclipse.xtext.example.domainmodel.jvmmodel.DomainmodelJvmModelHelper; +import org.eclipse.xtext.util.Strings; +import org.eclipse.xtext.validation.Check; +import org.eclipse.xtext.validation.ValidationMessageAcceptor; +import org.eclipse.xtext.xbase.jvmmodel.IJvmModelAssociations; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.StringExtensions; + +import com.google.common.collect.Iterables; +import com.google.inject.Inject; + +/** + * This class contains custom validation rules. + * + * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation + */ +public class DomainmodelValidator extends AbstractDomainmodelValidator { + @Inject + private IJvmModelAssociations jvmModelAssociations; + + @Inject + private DomainmodelJvmModelHelper domainmodelJvmModelHelper; + + @Check + public void checkTypeNameStartsWithCapital(Entity entity) { + if (!Character.isUpperCase(entity.getName().charAt(0))) { + warning("Name should start with a capital", DomainmodelPackage.Literals.ABSTRACT_ELEMENT__NAME, + ValidationMessageAcceptor.INSIGNIFICANT_INDEX, IssueCodes.INVALID_TYPE_NAME, entity.getName()); + } + } + + @Check + public void checkFeatureNameStartsWithLowercase(Feature feature) { + if (!Character.isLowerCase(feature.getName().charAt(0))) { + warning("Name should start with a lowercase", DomainmodelPackage.Literals.FEATURE__NAME, + ValidationMessageAcceptor.INSIGNIFICANT_INDEX, IssueCodes.INVALID_FEATURE_NAME, feature.getName()); + } + } + + @Check + public void checkPackage(PackageDeclaration pack) { + if (Strings.isEmpty(pack.getName())) { + error("Name cannot be empty", DomainmodelPackage.Literals.ABSTRACT_ELEMENT__NAME); + } + if ("java".equals(pack.getName())) { + error("Invalid package name", DomainmodelPackage.Literals.ABSTRACT_ELEMENT__NAME); + } + } + + @Check + public void checkPropertyNamesAreUnique(Entity entity) { + Map> name2properties = entity.getFeatures().stream() + .filter(Property.class::isInstance) + .filter(it -> !StringExtensions.isNullOrEmpty(it.getName())) + .collect(Collectors.groupingBy(Feature::getName)); + name2properties.values().forEach(properties -> { + if (properties.size() > 1) { + properties.forEach(it -> + error("Duplicate property " + it.getName(), it, DomainmodelPackage.Literals.FEATURE__NAME, + IssueCodes.DUPLICATE_PROPERTY) + ); + } + }); + } + + @Check + public void checkOperationNamesAreUnique(Entity entity) { + JvmGenericType inferredJavaClass = IterableExtensions + .head(Iterables.filter(jvmModelAssociations.getJvmElements(entity), JvmGenericType.class)); + domainmodelJvmModelHelper.handleDuplicateJvmOperations(inferredJavaClass, jvmOperations -> + jvmOperations.stream() + .map(it -> jvmModelAssociations.getPrimarySourceElement(it)) + .filter(Operation.class::isInstance) + .map(Operation.class::cast) + .forEach(it -> + error("Duplicate operation " + it.getName(), it, DomainmodelPackage.Literals.FEATURE__NAME, IssueCodes.DUPLICATE_OPERATION) + ) + ); + } +} diff --git a/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/IssueCodes.java b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/IssueCodes.java new file mode 100644 index 00000000..936581b2 --- /dev/null +++ b/domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel/src/org/eclipse/xtext/example/domainmodel/validation/IssueCodes.java @@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2011, 2019 itemis AG (http://www.itemis.eu) and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + *******************************************************************************/ +package org.eclipse.xtext.example.domainmodel.validation; + +/** + * @author Jan Koehnlein - Initial contribution and API + */ +public interface IssueCodes { + + String PREFIX = "org.eclipse.xtext.example.domainmodel.domainmodel."; + + String INVALID_TYPE_NAME = PREFIX + "InvalidTypeName"; + + String INVALID_FEATURE_NAME = PREFIX + "InvalidFeatureName"; + + String MISSING_TYPE = PREFIX + "MissingType"; + + String DUPLICATE_PROPERTY = PREFIX + "DuplicateProperty"; + + String DUPLICATE_OPERATION = PREFIX + "DuplicateOperation"; + +} diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/build.gradle b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/build.gradle new file mode 100644 index 00000000..7d4f39ad --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/build.gradle @@ -0,0 +1,40 @@ +buildscript { + repositories { + mavenCentral() + gradlePluginPortal() + } + dependencies { + classpath 'org.xtext:xtext-gradle-plugin:4.0.0' + } +} + +subprojects { + ext.xtextVersion = '2.34.0-SNAPSHOT' + repositories { + mavenCentral() + maven { + url 'https://oss.sonatype.org/content/repositories/snapshots' + } + } + + apply plugin: 'java-library' + dependencies { + api platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}") + } + + apply plugin: 'org.xtext.xtend' + apply from: "${rootDir}/gradle/source-layout.gradle" + apply plugin: 'eclipse' + + group = 'org.xtext.example.mydsl' + version = '1.0.0-SNAPSHOT' + + java { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + configurations.all { + exclude group: 'asm' + } +} diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/source-layout.gradle b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/source-layout.gradle new file mode 100644 index 00000000..8494c22a --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/source-layout.gradle @@ -0,0 +1,30 @@ +sourceSets { + main { + java.srcDir 'src/main/xtext-gen' + resources.srcDir 'src/main/xtext-gen' + xtend.outputDir = 'src/main/xtend-gen' + } + test { + java.srcDir 'src/test/xtext-gen' + resources.srcDir 'src/test/xtext-gen' + xtend.outputDir = 'src/test/xtend-gen' + } +} + +jar { + from('model') { + into('model') + } + from(sourceSets.main.allSource) { + include '**/*.xtext' + } + manifest { + attributes 'Bundle-SymbolicName': project.name + } +} + +plugins.withId('war') { + war { + webAppDirectory = file("src/main/webapp") + } +} diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.jar b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3fa8f862 --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew new file mode 100755 index 00000000..65a625be --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew.bat b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew.bat new file mode 100644 index 00000000..6689b85b --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle new file mode 100644 index 00000000..036578f5 --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api project(':org.xtext.example.mydsl') + api "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}" +} diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch new file mode 100644 index 00000000..5171ab6d --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle new file mode 100644 index 00000000..7d77372e --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle @@ -0,0 +1,40 @@ +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}" + testImplementation "org.eclipse.xtext:org.eclipse.xtext.xbase.testing:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" +} +configurations { + mwe2 { + extendsFrom compileClasspath + } +} + +dependencies { + mwe2 'org.eclipse.emf:org.eclipse.emf.mwe2.launch' + mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}" + mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}" + mwe2 'org.eclipse.xtext:xtext-antlr-generator' +} + +task generateXtextLanguage(type: JavaExec) { + mainClass = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher' + classpath = configurations.mwe2 + inputs.file "src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2" + inputs.file "src/main/java/org/xtext/example/mydsl/MyDsl.xtext" + outputs.dir "src/main/xtext-gen" + args += "src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2" + args += "-p" + args += "rootPath=/${projectDir}/.." +} + +test { + useJUnitPlatform() +} +processResources.dependsOn(generateXtextLanguage) +generateXtext.dependsOn(generateXtextLanguage) +clean.dependsOn(cleanGenerateXtextLanguage) +eclipse.classpath.plusConfigurations += [configurations.mwe2] diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 new file mode 100644 index 00000000..8b0700f8 --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -0,0 +1,50 @@ +module org.xtext.example.mydsl.GenerateMyDsl + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.xtext.example.mydsl" + rootPath = rootPath + runtimeTest = { + enabled = true + } + genericIde = { + enabled = true + } + mavenLayout = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "org.xtext.example.mydsl.MyDsl" + fileExtensions = "mydsl" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext new file mode 100644 index 00000000..046e9302 --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext @@ -0,0 +1,9 @@ +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + greetings+=Greeting*; + +Greeting: + 'Hello' name=ID '!'; diff --git a/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/settings.gradle b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/settings.gradle new file mode 100644 index 00000000..93055a16 --- /dev/null +++ b/greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent/settings.gradle @@ -0,0 +1,2 @@ +include 'org.xtext.example.mydsl' +include 'org.xtext.example.mydsl.ide' diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/build.gradle b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/build.gradle new file mode 100644 index 00000000..b7b92932 --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/build.gradle @@ -0,0 +1,40 @@ +buildscript { + repositories { + mavenCentral() + gradlePluginPortal() + } + dependencies { + classpath 'org.xtext:xtext-gradle-plugin:4.0.0' + } +} + +subprojects { + ext.xtextVersion = '2.34.0-SNAPSHOT' + repositories { + mavenCentral() + maven { + url 'https://oss.sonatype.org/content/repositories/snapshots' + } + } + + apply plugin: 'java-library' + dependencies { + api platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}") + } + + apply plugin: 'org.xtext.xtend' + apply from: "${rootDir}/gradle/source-layout.gradle" + apply plugin: 'eclipse' + + group = 'org.xtext.example.mydsl' + version = '1.0.0-SNAPSHOT' + + java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + configurations.all { + exclude group: 'asm' + } +} diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/source-layout.gradle b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/source-layout.gradle new file mode 100644 index 00000000..8494c22a --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/source-layout.gradle @@ -0,0 +1,30 @@ +sourceSets { + main { + java.srcDir 'src/main/xtext-gen' + resources.srcDir 'src/main/xtext-gen' + xtend.outputDir = 'src/main/xtend-gen' + } + test { + java.srcDir 'src/test/xtext-gen' + resources.srcDir 'src/test/xtext-gen' + xtend.outputDir = 'src/test/xtend-gen' + } +} + +jar { + from('model') { + into('model') + } + from(sourceSets.main.allSource) { + include '**/*.xtext' + } + manifest { + attributes 'Bundle-SymbolicName': project.name + } +} + +plugins.withId('war') { + war { + webAppDirectory = file("src/main/webapp") + } +} diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.jar b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..3fa8f862 --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew new file mode 100755 index 00000000..65a625be --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew.bat b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew.bat new file mode 100644 index 00000000..6689b85b --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle new file mode 100644 index 00000000..036578f5 --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl.ide/build.gradle @@ -0,0 +1,5 @@ +dependencies { + api project(':org.xtext.example.mydsl') + api "org.eclipse.xtext:org.eclipse.xtext.ide:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext.xbase.ide:${xtextVersion}" +} diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch new file mode 100644 index 00000000..5171ab6d --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle new file mode 100644 index 00000000..7d77372e --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/build.gradle @@ -0,0 +1,40 @@ +dependencies { + testImplementation 'org.junit.jupiter:junit-jupiter-api' + testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' + testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}" + testImplementation "org.eclipse.xtext:org.eclipse.xtext.xbase.testing:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" + api "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" +} +configurations { + mwe2 { + extendsFrom compileClasspath + } +} + +dependencies { + mwe2 'org.eclipse.emf:org.eclipse.emf.mwe2.launch' + mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}" + mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}" + mwe2 'org.eclipse.xtext:xtext-antlr-generator' +} + +task generateXtextLanguage(type: JavaExec) { + mainClass = 'org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher' + classpath = configurations.mwe2 + inputs.file "src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2" + inputs.file "src/main/java/org/xtext/example/mydsl/MyDsl.xtext" + outputs.dir "src/main/xtext-gen" + args += "src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2" + args += "-p" + args += "rootPath=/${projectDir}/.." +} + +test { + useJUnitPlatform() +} +processResources.dependsOn(generateXtextLanguage) +generateXtext.dependsOn(generateXtextLanguage) +clean.dependsOn(cleanGenerateXtextLanguage) +eclipse.classpath.plusConfigurations += [configurations.mwe2] diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 new file mode 100644 index 00000000..8b0700f8 --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -0,0 +1,50 @@ +module org.xtext.example.mydsl.GenerateMyDsl + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.xtext.example.mydsl" + rootPath = rootPath + runtimeTest = { + enabled = true + } + genericIde = { + enabled = true + } + mavenLayout = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "org.xtext.example.mydsl.MyDsl" + fileExtensions = "mydsl" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext new file mode 100644 index 00000000..046e9302 --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext @@ -0,0 +1,9 @@ +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + greetings+=Greeting*; + +Greeting: + 'Hello' name=ID '!'; diff --git a/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/settings.gradle b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/settings.gradle new file mode 100644 index 00000000..93055a16 --- /dev/null +++ b/greetings-gradle/2.34.0/org.xtext.example.mydsl.parent/settings.gradle @@ -0,0 +1,2 @@ +include 'org.xtext.example.mydsl' +include 'org.xtext.example.mydsl.ide' diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml new file mode 100644 index 00000000..37b897f9 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml @@ -0,0 +1,68 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ide + jar + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.codehaus.mojo + build-helper-maven-plugin + 3.3.0 + + + add-source + initialize + + add-source + add-resource + + + + src/main/xtext-gen + + + + src/main/xtext-gen + + **/*.java + **/*.g + + + + + + + + + + + + + ${project.groupId} + org.xtext.example.mydsl + ${project.version} + + + org.eclipse.xtext + org.eclipse.xtext.ide + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.xbase.ide + ${xtextVersion} + + + diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml new file mode 100644 index 00000000..78c90201 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml @@ -0,0 +1,186 @@ + + 4.0.0 + org.xtext.example.mydsl + 1.0.0-SNAPSHOT + org.xtext.example.mydsl.parent + pom + + + 2.34.0-SNAPSHOT + UTF-8 + 11 + 11 + + + ../org.xtext.example.mydsl + ../org.xtext.example.mydsl.ide + + + + + org.eclipse.xtext + xtext-dev-bom + ${xtextVersion} + pom + import + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtextVersion} + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + ${basedir}/src/main/xtend-gen + ${basedir}/src/test/xtend-gen + + + + org.apache.maven.plugins + maven-clean-plugin + 3.2.0 + + + + ${basedir}/src/main/xtend-gen + + **/* + + + + ${basedir}/src/test/xtend-gen + + **/* + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0 + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + build-helper-maven-plugin + + + [1.9.1,) + + + add-resource + add-source + add-test-resource + add-test-source + + + + + + + + + + + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + macos + + + mac + + + + + -XstartOnFirstThread + + + + jdk9-or-newer + + [9,) + + + --add-modules=ALL-SYSTEM + + + + + + + diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch new file mode 100644 index 00000000..e5476bc3 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/jar-with-ecore-model.xml b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/jar-with-ecore-model.xml new file mode 100644 index 00000000..af5b4f61 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/jar-with-ecore-model.xml @@ -0,0 +1,19 @@ + + jar-with-ecore-model + + jar + + false + + + / + target/classes + + + model/generated + model/generated + + + diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/pom.xml b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/pom.xml new file mode 100644 index 00000000..317fce68 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/pom.xml @@ -0,0 +1,230 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl + jar + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.xtext.example.mydsl/src/main/xtext-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl/src/test/xtext-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ide/src/main/xtext-gen/ + + **/* + + + + ${basedir}/model/generated/ + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.3.0 + + + add-source + initialize + + add-source + add-resource + + + + src/main/xtext-gen + + + + src/main/xtext-gen + + **/*.java + **/*.g + + + + + + + add-test-source + initialize + + add-test-source + add-test-resource + + + + src/test/xtext-gen + + + + src/test/xtext-gen + + **/*.java + + + + + + + + + maven-assembly-plugin + 3.4.1 + + + jar-with-ecore-model.xml + + false + + + + make-assembly + package + + single + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.eclipse.xtext + org.eclipse.xtext.testing + ${xtextVersion} + test + + + org.eclipse.xtext + org.eclipse.xtext.xbase.testing + ${xtextVersion} + test + + + org.eclipse.xtext + org.eclipse.xtext + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.xbase + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.xtext.generator + ${xtextVersion} + true + + + org.eclipse.emf + org.eclipse.emf.mwe2.launch + true + + + org.eclipse.xtext + xtext-antlr-generator + true + + + diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 new file mode 100644 index 00000000..8b0700f8 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -0,0 +1,50 @@ +module org.xtext.example.mydsl.GenerateMyDsl + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.xtext.example.mydsl" + rootPath = rootPath + runtimeTest = { + enabled = true + } + genericIde = { + enabled = true + } + mavenLayout = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "org.xtext.example.mydsl.MyDsl" + fileExtensions = "mydsl" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext new file mode 100644 index 00000000..046e9302 --- /dev/null +++ b/greetings-maven/2.34.0-J11/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext @@ -0,0 +1,9 @@ +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + greetings+=Greeting*; + +Greeting: + 'Hello' name=ID '!'; diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl.ide/pom.xml b/greetings-maven/2.34.0/org.xtext.example.mydsl.ide/pom.xml new file mode 100644 index 00000000..37b897f9 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl.ide/pom.xml @@ -0,0 +1,68 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ide + jar + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.codehaus.mojo + build-helper-maven-plugin + 3.3.0 + + + add-source + initialize + + add-source + add-resource + + + + src/main/xtext-gen + + + + src/main/xtext-gen + + **/*.java + **/*.g + + + + + + + + + + + + + ${project.groupId} + org.xtext.example.mydsl + ${project.version} + + + org.eclipse.xtext + org.eclipse.xtext.ide + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.xbase.ide + ${xtextVersion} + + + diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl.parent/pom.xml b/greetings-maven/2.34.0/org.xtext.example.mydsl.parent/pom.xml new file mode 100644 index 00000000..0af56293 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl.parent/pom.xml @@ -0,0 +1,186 @@ + + 4.0.0 + org.xtext.example.mydsl + 1.0.0-SNAPSHOT + org.xtext.example.mydsl.parent + pom + + + 2.34.0-SNAPSHOT + UTF-8 + 17 + 17 + + + ../org.xtext.example.mydsl + ../org.xtext.example.mydsl.ide + + + + + org.eclipse.xtext + xtext-dev-bom + ${xtextVersion} + pom + import + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtextVersion} + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + ${basedir}/src/main/xtend-gen + ${basedir}/src/test/xtend-gen + + + + org.apache.maven.plugins + maven-clean-plugin + 3.2.0 + + + + ${basedir}/src/main/xtend-gen + + **/* + + + + ${basedir}/src/test/xtend-gen + + **/* + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0 + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + build-helper-maven-plugin + + + [1.9.1,) + + + add-resource + add-source + add-test-resource + add-test-source + + + + + + + + + + + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + macos + + + mac + + + + + -XstartOnFirstThread + + + + jdk9-or-newer + + [9,) + + + --add-modules=ALL-SYSTEM + + + + + + + diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/greetings-maven/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch new file mode 100644 index 00000000..e5476bc3 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl/jar-with-ecore-model.xml b/greetings-maven/2.34.0/org.xtext.example.mydsl/jar-with-ecore-model.xml new file mode 100644 index 00000000..af5b4f61 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl/jar-with-ecore-model.xml @@ -0,0 +1,19 @@ + + jar-with-ecore-model + + jar + + false + + + / + target/classes + + + model/generated + model/generated + + + diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl/pom.xml b/greetings-maven/2.34.0/org.xtext.example.mydsl/pom.xml new file mode 100644 index 00000000..317fce68 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl/pom.xml @@ -0,0 +1,230 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl + jar + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.xtext.example.mydsl/src/main/xtext-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl/src/test/xtext-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ide/src/main/xtext-gen/ + + **/* + + + + ${basedir}/model/generated/ + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.3.0 + + + add-source + initialize + + add-source + add-resource + + + + src/main/xtext-gen + + + + src/main/xtext-gen + + **/*.java + **/*.g + + + + + + + add-test-source + initialize + + add-test-source + add-test-resource + + + + src/test/xtext-gen + + + + src/test/xtext-gen + + **/*.java + + + + + + + + + maven-assembly-plugin + 3.4.1 + + + jar-with-ecore-model.xml + + false + + + + make-assembly + package + + single + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.eclipse.xtext + org.eclipse.xtext.testing + ${xtextVersion} + test + + + org.eclipse.xtext + org.eclipse.xtext.xbase.testing + ${xtextVersion} + test + + + org.eclipse.xtext + org.eclipse.xtext + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.xbase + ${xtextVersion} + + + org.eclipse.xtext + org.eclipse.xtext.xtext.generator + ${xtextVersion} + true + + + org.eclipse.emf + org.eclipse.emf.mwe2.launch + true + + + org.eclipse.xtext + xtext-antlr-generator + true + + + diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 new file mode 100644 index 00000000..8b0700f8 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -0,0 +1,50 @@ +module org.xtext.example.mydsl.GenerateMyDsl + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.xtext.example.mydsl" + rootPath = rootPath + runtimeTest = { + enabled = true + } + genericIde = { + enabled = true + } + mavenLayout = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "org.xtext.example.mydsl.MyDsl" + fileExtensions = "mydsl" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext b/greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext new file mode 100644 index 00000000..046e9302 --- /dev/null +++ b/greetings-maven/2.34.0/org.xtext.example.mydsl/src/main/java/org/xtext/example/mydsl/MyDsl.xtext @@ -0,0 +1,9 @@ +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + greetings+=Greeting*; + +Greeting: + 'Hello' name=ID '!'; diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/build.properties b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/build.properties new file mode 100644 index 00000000..64f93a9f --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/feature.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/feature.xml new file mode 100644 index 00000000..d29075a9 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/feature.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/pom.xml new file mode 100644 index 00000000..a115cf7c --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.feature/pom.xml @@ -0,0 +1,16 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.feature + eclipse-feature + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF new file mode 100644 index 00000000..0571b4ad --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.ide +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.ide; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl, + org.eclipse.xtext.ide, + org.eclipse.xtext.xbase.ide +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.xtext.example.mydsl.ide diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/build.properties b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/build.properties new file mode 100644 index 00000000..5c6bbf99 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml new file mode 100644 index 00000000..3006199f --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ide/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ide + eclipse-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml new file mode 100644 index 00000000..cf61f391 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.parent/pom.xml @@ -0,0 +1,354 @@ + + 4.0.0 + org.xtext.example.mydsl + 1.0.0-SNAPSHOT + org.xtext.example.mydsl.parent + pom + + + 2.34.0-SNAPSHOT + 2.16.0.M3 + UTF-8 + 11 + 11 + + 2.7.5 + + + + + + + + ../org.xtext.example.mydsl + ../org.xtext.example.mydsl.ide + ../org.xtext.example.mydsl.ui + ../org.xtext.example.mydsl.target + ../org.xtext.example.mydsl.feature + ../org.xtext.example.mydsl.repository + ../org.xtext.example.mydsl.tests + ../org.xtext.example.mydsl.ui.tests + + + + + org.eclipse.xtext + xtext-dev-bom + ${xtextVersion} + pom + import + + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + tycho-source-plugin + ${tycho-version} + + + plugin-source + + plugin-source + + + + feature-source + + feature-source + + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + attach-p2-metadata + package + + p2-metadata + + + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + org.xtext.example.mydsl + org.xtext.example.mydsl.target + ${project.version} + + + + + macosx + cocoa + x86_64 + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + + + + eclipse-plugin + org.eclipse.xtext.logging + 1.2.24 + + + + eclipse-feature + org.eclipse.rcp + 0.0.0 + + + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtextVersion} + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + ${basedir}/xtend-gen + ${basedir}/xtend-gen + + + + org.apache.maven.plugins + maven-clean-plugin + 3.2.0 + + + + ${basedir}/xtend-gen + + **/* + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + build-helper-maven-plugin + + + [1.9.1,) + + + add-resource + add-source + add-test-resource + add-test-source + + + + + + + + + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + -err:-forbidden + false + + + + + org.eclipse.tycho + tycho-surefire-plugin + ${tycho-version} + + + ${platformSystemProperties} ${systemProperties} ${moduleProperties} ${additionalTestArguments} + false + false + + + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + macos + + + mac + + + + + -XstartOnFirstThread + + + + jdk9-or-newer + + [9,) + + + --add-modules=ALL-SYSTEM + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/category.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/category.xml new file mode 100644 index 00000000..b4de8e29 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/category.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/pom.xml new file mode 100644 index 00000000..b994b1bc --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.repository/pom.xml @@ -0,0 +1,52 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.repository + eclipse-repository + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.apache.maven.plugins + + + maven-clean-plugin + + + [2.5,) + + + clean + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target new file mode 100644 index 00000000..f26aeff6 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/pom.xml new file mode 100644 index 00000000..8e941271 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.target/pom.xml @@ -0,0 +1,16 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.target + eclipse-target-definition + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..62ef50e8 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.tests +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl, + org.eclipse.xtext.testing, + org.eclipse.xtext.xbase.testing +Import-Package: org.junit.jupiter.api;version="[5.1.0,6.0.0)", + org.junit.jupiter.api.extension;version="[5.1.0,6.0.0)" +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.xtext.example.mydsl.tests diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/build.properties b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/build.properties new file mode 100644 index 00000000..5c6bbf99 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/pom.xml new file mode 100644 index 00000000..7481d188 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.tests/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.tests + eclipse-test-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..b3f1efa0 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.ui.tests +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.ui.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl.ui, + org.eclipse.xtext.testing, + org.eclipse.xtext.ui.testing, + org.eclipse.xtext.xbase.testing, + org.eclipse.xtext.xbase.ui.testing +Import-Package: org.junit.jupiter.api;version="[5.1.0,6.0.0)", + org.junit.jupiter.api.extension;version="[5.1.0,6.0.0)" +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.xtext.example.mydsl.ui.tests diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/build.properties b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/build.properties new file mode 100644 index 00000000..5c6bbf99 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/pom.xml new file mode 100644 index 00000000..1fa00fa5 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui.tests/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ui.tests + eclipse-test-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.eclipse.tycho + tycho-surefire-plugin + + true + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000..3be8ab2d --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.ui +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl, + org.xtext.example.mydsl.ide, + org.eclipse.xtext.ui, + org.eclipse.xtext.ui.shared, + org.eclipse.xtext.ui.codetemplates.ui, + org.eclipse.ui.editors;bundle-version="3.14.300", + org.eclipse.ui.ide;bundle-version="3.18.500" +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.xtext.example.mydsl.ui diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/build.properties b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/build.properties new file mode 100644 index 00000000..323f56c5 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/build.properties @@ -0,0 +1,7 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/pom.xml new file mode 100644 index 00000000..3e389e21 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl.ui/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ui + eclipse-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch new file mode 100644 index 00000000..93ecaac1 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch new file mode 100644 index 00000000..9b2ecdef --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/META-INF/MANIFEST.MF new file mode 100644 index 00000000..cb734fa3 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext, + org.eclipse.xtext.xbase, + org.eclipse.equinox.common;bundle-version="3.16.0" +Bundle-RequiredExecutionEnvironment: JavaSE-11 +Automatic-Module-Name: org.xtext.example.mydsl diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/build.properties b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/build.properties new file mode 100644 index 00000000..3f6a8109 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/build.properties @@ -0,0 +1,18 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml +bin.excludes = **/*.mwe2,\ + **/*.xtend +additional.bundles = org.eclipse.xtext.xbase,\ + org.eclipse.xtext.common.types,\ + org.eclipse.xtext.xtext.generator,\ + org.eclipse.emf.codegen.ecore,\ + org.eclipse.emf.mwe.utils,\ + org.eclipse.emf.mwe2.launch,\ + org.eclipse.emf.mwe2.lib,\ + org.objectweb.asm,\ + org.apache.commons.logging,\ + org.apache.log4j diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/pom.xml b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/pom.xml new file mode 100644 index 00000000..72949a0d --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/pom.xml @@ -0,0 +1,130 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl + eclipse-plugin + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.xtext.example.mydsl/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.tests/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ide/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ui/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ui.tests/src-gen/ + + **/* + + + + ${basedir}/model/generated/ + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 new file mode 100644 index 00000000..ecd068d1 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -0,0 +1,53 @@ +module org.xtext.example.mydsl.GenerateMyDsl + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.xtext.example.mydsl" + rootPath = rootPath + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + createEclipseMetaData = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "org.xtext.example.mydsl.MyDsl" + fileExtensions = "mydsl" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext new file mode 100644 index 00000000..046e9302 --- /dev/null +++ b/greetings-tycho/2.34.0-J11/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext @@ -0,0 +1,9 @@ +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + greetings+=Greeting*; + +Greeting: + 'Hello' name=ID '!'; diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/build.properties b/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/build.properties new file mode 100644 index 00000000..64f93a9f --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/feature.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/feature.xml new file mode 100644 index 00000000..d29075a9 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/feature.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/pom.xml new file mode 100644 index 00000000..a115cf7c --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.feature/pom.xml @@ -0,0 +1,16 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.feature + eclipse-feature + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF new file mode 100644 index 00000000..8d6d10b8 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.ide +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.ide; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl, + org.eclipse.xtext.ide, + org.eclipse.xtext.xbase.ide +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Automatic-Module-Name: org.xtext.example.mydsl.ide diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/build.properties b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/build.properties new file mode 100644 index 00000000..5c6bbf99 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/pom.xml new file mode 100644 index 00000000..3006199f --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ide/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ide + eclipse-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.parent/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.parent/pom.xml new file mode 100644 index 00000000..85313e0e --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.parent/pom.xml @@ -0,0 +1,354 @@ + + 4.0.0 + org.xtext.example.mydsl + 1.0.0-SNAPSHOT + org.xtext.example.mydsl.parent + pom + + + 2.34.0-SNAPSHOT + 2.16.0.M3 + UTF-8 + 17 + 17 + + 3.0.5 + + + + + + + + ../org.xtext.example.mydsl + ../org.xtext.example.mydsl.ide + ../org.xtext.example.mydsl.ui + ../org.xtext.example.mydsl.target + ../org.xtext.example.mydsl.feature + ../org.xtext.example.mydsl.repository + ../org.xtext.example.mydsl.tests + ../org.xtext.example.mydsl.ui.tests + + + + + org.eclipse.xtext + xtext-dev-bom + ${xtextVersion} + pom + import + + + + + + + org.eclipse.tycho + tycho-maven-plugin + ${tycho-version} + true + + + org.eclipse.tycho + tycho-source-plugin + ${tycho-version} + + + plugin-source + + plugin-source + + + + feature-source + + feature-source + + + + + + org.eclipse.tycho + tycho-p2-plugin + ${tycho-version} + + + attach-p2-metadata + package + + p2-metadata + + + + + + org.eclipse.tycho + target-platform-configuration + ${tycho-version} + + + + org.xtext.example.mydsl + org.xtext.example.mydsl.target + ${project.version} + + + + + macosx + cocoa + x86_64 + + + win32 + win32 + x86_64 + + + linux + gtk + x86_64 + + + + + + eclipse-plugin + org.eclipse.xtext.logging + 1.2.24 + + + + eclipse-feature + org.eclipse.rcp + 0.0.0 + + + + + + + + + + org.eclipse.xtend + xtend-maven-plugin + ${xtextVersion} + + + + compile + xtend-install-debug-info + testCompile + xtend-test-install-debug-info + + + + + ${basedir}/xtend-gen + ${basedir}/xtend-gen + + + + org.apache.maven.plugins + maven-clean-plugin + 3.2.0 + + + + ${basedir}/xtend-gen + + **/* + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + build-helper-maven-plugin + + + [1.9.1,) + + + add-resource + add-source + add-test-resource + add-test-source + + + + + + + + + + + + + org.eclipse.tycho + tycho-compiler-plugin + ${tycho-version} + + -err:-forbidden + false + + + + + org.eclipse.tycho + tycho-surefire-plugin + ${tycho-version} + + + ${platformSystemProperties} ${systemProperties} ${moduleProperties} ${additionalTestArguments} + false + false + + + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + codehaus-snapshots + disable dead 'Codehaus Snapshots' repository, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=481478 + http://nexus.codehaus.org/snapshots/ + + false + + + false + + + + ossrh-snapshots + ossrh-snapshots + + false + + + false + + http://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + false + + + + sonatype-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + + + macos + + + mac + + + + + -XstartOnFirstThread + + + + jdk9-or-newer + + [9,) + + + --add-modules=ALL-SYSTEM + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/category.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/category.xml new file mode 100644 index 00000000..b4de8e29 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/category.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/pom.xml new file mode 100644 index 00000000..b994b1bc --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.repository/pom.xml @@ -0,0 +1,52 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.repository + eclipse-repository + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.apache.maven.plugins + + + maven-clean-plugin + + + [2.5,) + + + clean + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target b/greetings-tycho/2.34.0/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target new file mode 100644 index 00000000..5cd7919c --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.target/org.xtext.example.mydsl.target.target @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.target/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.target/pom.xml new file mode 100644 index 00000000..8e941271 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.target/pom.xml @@ -0,0 +1,16 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.target + eclipse-target-definition + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..e750a3b9 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/META-INF/MANIFEST.MF @@ -0,0 +1,14 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.tests +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl, + org.eclipse.xtext.testing, + org.eclipse.xtext.xbase.testing +Import-Package: org.junit.jupiter.api;version="[5.1.0,6.0.0)", + org.junit.jupiter.api.extension;version="[5.1.0,6.0.0)" +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Automatic-Module-Name: org.xtext.example.mydsl.tests diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/build.properties b/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/build.properties new file mode 100644 index 00000000..5c6bbf99 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/pom.xml new file mode 100644 index 00000000..7481d188 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.tests/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.tests + eclipse-test-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF new file mode 100644 index 00000000..b3caa66f --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/META-INF/MANIFEST.MF @@ -0,0 +1,16 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.ui.tests +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.ui.tests; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl.ui, + org.eclipse.xtext.testing, + org.eclipse.xtext.ui.testing, + org.eclipse.xtext.xbase.testing, + org.eclipse.xtext.xbase.ui.testing +Import-Package: org.junit.jupiter.api;version="[5.1.0,6.0.0)", + org.junit.jupiter.api.extension;version="[5.1.0,6.0.0)" +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Automatic-Module-Name: org.xtext.example.mydsl.ui.tests diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/build.properties b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/build.properties new file mode 100644 index 00000000..5c6bbf99 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/build.properties @@ -0,0 +1,6 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/ +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/pom.xml new file mode 100644 index 00000000..1fa00fa5 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui.tests/pom.xml @@ -0,0 +1,29 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ui.tests + eclipse-test-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + org.eclipse.tycho + tycho-surefire-plugin + + true + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000..f8773b47 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/META-INF/MANIFEST.MF @@ -0,0 +1,17 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl.ui +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl.ui; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.xtext.example.mydsl, + org.xtext.example.mydsl.ide, + org.eclipse.xtext.ui, + org.eclipse.xtext.ui.shared, + org.eclipse.xtext.ui.codetemplates.ui, + org.eclipse.ui.editors;bundle-version="3.14.300", + org.eclipse.ui.ide;bundle-version="3.18.500" +Import-Package: org.apache.log4j +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Automatic-Module-Name: org.xtext.example.mydsl.ui diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/build.properties b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/build.properties new file mode 100644 index 00000000..323f56c5 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/build.properties @@ -0,0 +1,7 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml +bin.excludes = **/*.xtend diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/pom.xml new file mode 100644 index 00000000..3e389e21 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl.ui/pom.xml @@ -0,0 +1,22 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl.ui + eclipse-plugin + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch b/greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch new file mode 100644 index 00000000..93ecaac1 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Generate MyDsl (mydsl) Language Infrastructure.launch @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch b/greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch new file mode 100644 index 00000000..264f2fa3 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/.launch/Launch Runtime Eclipse.launch @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/META-INF/MANIFEST.MF b/greetings-tycho/2.34.0/org.xtext.example.mydsl/META-INF/MANIFEST.MF new file mode 100644 index 00000000..b65c4641 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/META-INF/MANIFEST.MF @@ -0,0 +1,12 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: org.xtext.example.mydsl +Bundle-Vendor: My Company +Bundle-Version: 1.0.0.qualifier +Bundle-SymbolicName: org.xtext.example.mydsl; singleton:=true +Bundle-ActivationPolicy: lazy +Require-Bundle: org.eclipse.xtext, + org.eclipse.xtext.xbase, + org.eclipse.equinox.common;bundle-version="3.16.0" +Bundle-RequiredExecutionEnvironment: JavaSE-17 +Automatic-Module-Name: org.xtext.example.mydsl diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/build.properties b/greetings-tycho/2.34.0/org.xtext.example.mydsl/build.properties new file mode 100644 index 00000000..3f6a8109 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/build.properties @@ -0,0 +1,18 @@ +source.. = src/,\ + src-gen/,\ + xtend-gen/ +bin.includes = .,\ + META-INF/,\ + plugin.xml +bin.excludes = **/*.mwe2,\ + **/*.xtend +additional.bundles = org.eclipse.xtext.xbase,\ + org.eclipse.xtext.common.types,\ + org.eclipse.xtext.xtext.generator,\ + org.eclipse.emf.codegen.ecore,\ + org.eclipse.emf.mwe.utils,\ + org.eclipse.emf.mwe2.launch,\ + org.eclipse.emf.mwe2.lib,\ + org.objectweb.asm,\ + org.apache.commons.logging,\ + org.apache.log4j diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/pom.xml b/greetings-tycho/2.34.0/org.xtext.example.mydsl/pom.xml new file mode 100644 index 00000000..72949a0d --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/pom.xml @@ -0,0 +1,130 @@ + + 4.0.0 + + org.xtext.example.mydsl + org.xtext.example.mydsl.parent + 1.0.0-SNAPSHOT + ../org.xtext.example.mydsl.parent/pom.xml + + org.xtext.example.mydsl + eclipse-plugin + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + + mwe2Launcher + generate-sources + + java + + + + + org.eclipse.emf.mwe2.launch.runtime.Mwe2Launcher + + /${project.basedir}/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 + -p + rootPath=/${project.basedir}/.. + + compile + true + false + + + + org.eclipse.xtext + xtext-antlr-generator + 2.1.1 + + + + + org.eclipse.xtend + xtend-maven-plugin + + + + org.apache.maven.plugins + maven-clean-plugin + + + + ${basedir}/../org.xtext.example.mydsl/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.tests/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ide/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ui/src-gen/ + + **/* + + + + ${basedir}/../org.xtext.example.mydsl.ui.tests/src-gen/ + + **/* + + + + ${basedir}/model/generated/ + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + org.codehaus.mojo + + + exec-maven-plugin + + + [1.2.1,) + + + java + + + + + + + + + + + + + + + diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 b/greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 new file mode 100644 index 00000000..ecd068d1 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/GenerateMyDsl.mwe2 @@ -0,0 +1,53 @@ +module org.xtext.example.mydsl.GenerateMyDsl + +import org.eclipse.xtext.xtext.generator.* +import org.eclipse.xtext.xtext.generator.model.project.* + +var rootPath = ".." + +Workflow { + + component = XtextGenerator { + configuration = { + project = StandardProjectConfig { + baseName = "org.xtext.example.mydsl" + rootPath = rootPath + runtimeTest = { + enabled = true + } + eclipsePlugin = { + enabled = true + } + eclipsePluginTest = { + enabled = true + } + createEclipseMetaData = true + } + code = { + encoding = "UTF-8" + lineDelimiter = "\n" + fileHeader = "/*\n * generated by Xtext \${version}\n */" + preferXtendStubs = false + } + } + language = StandardLanguage { + name = "org.xtext.example.mydsl.MyDsl" + fileExtensions = "mydsl" + + serializer = { + generateStub = false + } + validator = { + // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" + // Generates checks for @Deprecated grammar annotations, an IssueProvider and a corresponding PropertyPage + generateDeprecationValidation = true + } + generator = { + generateXtendStub = true + } + junitSupport = { + junitVersion = "5" + } + } + } +} diff --git a/greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext b/greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext new file mode 100644 index 00000000..046e9302 --- /dev/null +++ b/greetings-tycho/2.34.0/org.xtext.example.mydsl/src/org/xtext/example/mydsl/MyDsl.xtext @@ -0,0 +1,9 @@ +grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals + +generate myDsl "http://www.xtext.org/example/mydsl/MyDsl" + +Model: + greetings+=Greeting*; + +Greeting: + 'Hello' name=ID '!'; diff --git a/launch/refproject-greetings-gradle-j11.launch b/launch/refproject-greetings-gradle-j11.launch index a04ab3ac..ea5d9b0c 100644 --- a/launch/refproject-greetings-gradle-j11.launch +++ b/launch/refproject-greetings-gradle-j11.launch @@ -9,6 +9,6 @@ - + diff --git a/launch/refproject-greetings-gradle.launch b/launch/refproject-greetings-gradle.launch index 8ab5d4f8..05336295 100644 --- a/launch/refproject-greetings-gradle.launch +++ b/launch/refproject-greetings-gradle.launch @@ -9,6 +9,6 @@ - + diff --git a/launch/refproject-greetings-maven-j11.launch b/launch/refproject-greetings-maven-j11.launch index 09aacc49..008d2922 100644 --- a/launch/refproject-greetings-maven-j11.launch +++ b/launch/refproject-greetings-maven-j11.launch @@ -9,6 +9,6 @@ - + diff --git a/launch/refproject-greetings-maven.launch b/launch/refproject-greetings-maven.launch index f1d847c6..1109e0a3 100644 --- a/launch/refproject-greetings-maven.launch +++ b/launch/refproject-greetings-maven.launch @@ -9,6 +9,6 @@ - + diff --git a/launch/refproject-greetings-tycho-j11.launch b/launch/refproject-greetings-tycho-j11.launch index 3eaaac5a..7353ab66 100644 --- a/launch/refproject-greetings-tycho-j11.launch +++ b/launch/refproject-greetings-tycho-j11.launch @@ -9,6 +9,6 @@ - + diff --git a/launch/refproject-greetings-tycho.launch b/launch/refproject-greetings-tycho.launch index 03c65aed..ca496259 100644 --- a/launch/refproject-greetings-tycho.launch +++ b/launch/refproject-greetings-tycho.launch @@ -9,6 +9,6 @@ - + From 190913bbbdd4ba9c5e709fc481436d097bbe80b1 Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Wed, 22 Nov 2023 06:08:29 +0100 Subject: [PATCH 2/3] added 2.34 scripts Signed-off-by: Christian Dietrich --- scripts/domainmodel-2.34.sh | 10 ++++++++++ scripts/greetings-gradle-2.34-J11.sh | 3 +++ scripts/greetings-gradle-2.34.sh | 3 +++ scripts/greetings-maven-2.34-J11.sh | 12 ++++++++++++ scripts/greetings-maven-2.34.sh | 12 ++++++++++++ scripts/greetings-tycho-2.34-J11.sh | 10 ++++++++++ scripts/greetings-tycho-2.34.sh | 10 ++++++++++ 7 files changed, 60 insertions(+) create mode 100755 scripts/domainmodel-2.34.sh create mode 100755 scripts/greetings-gradle-2.34-J11.sh create mode 100755 scripts/greetings-gradle-2.34.sh create mode 100755 scripts/greetings-maven-2.34-J11.sh create mode 100755 scripts/greetings-maven-2.34.sh create mode 100755 scripts/greetings-tycho-2.34-J11.sh create mode 100755 scripts/greetings-tycho-2.34.sh diff --git a/scripts/domainmodel-2.34.sh b/scripts/domainmodel-2.34.sh new file mode 100755 index 00000000..c0a4cb0b --- /dev/null +++ b/scripts/domainmodel-2.34.sh @@ -0,0 +1,10 @@ +cd domainmodel/2.34.0/org.eclipse.xtext.example.domainmodel.releng + +TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-$GITHUB_WORKSPACE}" +TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-../../../}" + +export PROFILES= +export SETTINGS="-s $TRAVIS_BUILD_DIR/settings.xml" +export DISABLE_DOWNLOAD_PROGRESS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + +mvn -B $DISABLE_DOWNLOAD_PROGRESS $SETTINGS $PROFILES -Dtycho.showEclipseLog=true clean install $EXTRA_ARGS diff --git a/scripts/greetings-gradle-2.34-J11.sh b/scripts/greetings-gradle-2.34-J11.sh new file mode 100755 index 00000000..b4ba09b9 --- /dev/null +++ b/scripts/greetings-gradle-2.34-J11.sh @@ -0,0 +1,3 @@ +cd greetings-gradle/2.34.0-J11/org.xtext.example.mydsl.parent +./gradlew clean build -Dorg.gradle.daemon=false + diff --git a/scripts/greetings-gradle-2.34.sh b/scripts/greetings-gradle-2.34.sh new file mode 100755 index 00000000..bdc0c0b2 --- /dev/null +++ b/scripts/greetings-gradle-2.34.sh @@ -0,0 +1,3 @@ +cd greetings-gradle/2.34.0/org.xtext.example.mydsl.parent +./gradlew clean build -Dorg.gradle.daemon=false + diff --git a/scripts/greetings-maven-2.34-J11.sh b/scripts/greetings-maven-2.34-J11.sh new file mode 100755 index 00000000..c97e4c7e --- /dev/null +++ b/scripts/greetings-maven-2.34-J11.sh @@ -0,0 +1,12 @@ +if ["$TRAVIS_BUILD_DIR" eq ""] +then + export TRAVIS_BUILD_DIR=$(pwd) +fi + +cd greetings-maven/2.34.0-J11 + +export PROFILES=-Ptycho_snapshots +export SETTINGS="-s $TRAVIS_BUILD_DIR/settings.xml" +export DISABLE_DOWNLOAD_PROGRESS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + +mvn -B -f org.xtext.example.mydsl.parent/pom.xml $DISABLE_DOWNLOAD_PROGRESS $SETTINGS $PROFILES clean install diff --git a/scripts/greetings-maven-2.34.sh b/scripts/greetings-maven-2.34.sh new file mode 100755 index 00000000..41b0f676 --- /dev/null +++ b/scripts/greetings-maven-2.34.sh @@ -0,0 +1,12 @@ +if ["$TRAVIS_BUILD_DIR" eq ""] +then + export TRAVIS_BUILD_DIR=$(pwd) +fi + +cd greetings-maven/2.34.0 + +export PROFILES=-Ptycho_snapshots +export SETTINGS="-s $TRAVIS_BUILD_DIR/settings.xml" +export DISABLE_DOWNLOAD_PROGRESS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + +mvn -B -f org.xtext.example.mydsl.parent/pom.xml $DISABLE_DOWNLOAD_PROGRESS $SETTINGS $PROFILES clean install diff --git a/scripts/greetings-tycho-2.34-J11.sh b/scripts/greetings-tycho-2.34-J11.sh new file mode 100755 index 00000000..51b7c708 --- /dev/null +++ b/scripts/greetings-tycho-2.34-J11.sh @@ -0,0 +1,10 @@ +cd greetings-tycho/2.34.0-J11 + +TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-$GITHUB_WORKSPACE}" +TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-../../}" + +export PROFILES= +export SETTINGS="-s $TRAVIS_BUILD_DIR/settings.xml" +export DISABLE_DOWNLOAD_PROGRESS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + +mvn -B -f org.xtext.example.mydsl.parent/pom.xml $DISABLE_DOWNLOAD_PROGRESS $SETTINGS $PROFILES -Dtycho.showEclipseLog=true clean install $EXTRA_ARGS diff --git a/scripts/greetings-tycho-2.34.sh b/scripts/greetings-tycho-2.34.sh new file mode 100755 index 00000000..f70dfd2c --- /dev/null +++ b/scripts/greetings-tycho-2.34.sh @@ -0,0 +1,10 @@ +cd greetings-tycho/2.34.0 + +TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-$GITHUB_WORKSPACE}" +TRAVIS_BUILD_DIR="${TRAVIS_BUILD_DIR:-../../}" + +export PROFILES= +export SETTINGS="-s $TRAVIS_BUILD_DIR/settings.xml" +export DISABLE_DOWNLOAD_PROGRESS=-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn + +mvn -B -f org.xtext.example.mydsl.parent/pom.xml $DISABLE_DOWNLOAD_PROGRESS $SETTINGS $PROFILES -Dtycho.showEclipseLog=true clean install $EXTRA_ARGS From 18e2b491c14c1475304c1a864764bf35a64bd94b Mon Sep 17 00:00:00 2001 From: Christian Dietrich Date: Wed, 22 Nov 2023 06:09:36 +0100 Subject: [PATCH 3/3] adapt github actions Signed-off-by: Christian Dietrich --- .github/workflows/build.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 93655e89..c6a5129d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: distribution: 'temurin' java-version: 17 - name: Build - run: scripts/greetings-gradle-2.33.sh + run: scripts/greetings-gradle-2.34.sh build_Gralde_J11: runs-on: ubuntu-latest steps: @@ -29,7 +29,7 @@ jobs: distribution: 'temurin' java-version: 11 - name: Build - run: scripts/greetings-gradle-2.33-J11.sh + run: scripts/greetings-gradle-2.34-J11.sh build_Gralde_J11_on_J17: runs-on: ubuntu-latest steps: @@ -40,7 +40,7 @@ jobs: distribution: 'temurin' java-version: 17 - name: Build - run: scripts/greetings-gradle-2.33-J11.sh + run: scripts/greetings-gradle-2.34-J11.sh build_Maven_J17: runs-on: ubuntu-latest steps: @@ -51,7 +51,7 @@ jobs: distribution: 'temurin' java-version: 17 - name: Build - run: scripts/greetings-maven-2.33.sh + run: scripts/greetings-maven-2.34.sh build_Maven_J11: runs-on: ubuntu-latest steps: @@ -62,7 +62,7 @@ jobs: distribution: 'temurin' java-version: 11 - name: Build - run: scripts/greetings-maven-2.33-J11.sh + run: scripts/greetings-maven-2.34-J11.sh build_Maven_J11_on_J17: runs-on: ubuntu-latest steps: @@ -73,7 +73,7 @@ jobs: distribution: 'temurin' java-version: 17 - name: Build - run: scripts/greetings-maven-2.33-J11.sh + run: scripts/greetings-maven-2.34-J11.sh build_tycho_J17: runs-on: ubuntu-latest steps: @@ -84,7 +84,7 @@ jobs: distribution: 'temurin' java-version: 17 - name: Build - run: xvfb-run scripts/greetings-tycho-2.33.sh + run: xvfb-run scripts/greetings-tycho-2.34.sh build_tycho_J11: runs-on: ubuntu-latest steps: @@ -95,7 +95,7 @@ jobs: distribution: 'temurin' java-version: 11 - name: Build - run: xvfb-run scripts/greetings-tycho-2.33-J11.sh + run: xvfb-run scripts/greetings-tycho-2.34-J11.sh build_tycho_J17_tycho_40: runs-on: ubuntu-latest steps: @@ -112,7 +112,7 @@ jobs: - name: Build env: EXTRA_ARGS : "-Dtycho-version=4.0.1" - run: xvfb-run scripts/greetings-tycho-2.33.sh + run: xvfb-run scripts/greetings-tycho-2.34.sh build_tycho_J17_tycho_50: runs-on: ubuntu-latest steps: @@ -129,7 +129,7 @@ jobs: - name: Build env: EXTRA_ARGS : "-Dtycho-version=5.0.0-SNAPSHOT -Ptycho_snapshots" - run: xvfb-run scripts/greetings-tycho-2.33.sh + run: xvfb-run scripts/greetings-tycho-2.34.sh build_domain: runs-on: ubuntu-latest steps: @@ -140,7 +140,7 @@ jobs: distribution: 'temurin' java-version: 17 - name: Build - run: xvfb-run scripts/domainmodel-2.33.sh + run: xvfb-run scripts/domainmodel-2.34.sh build_domain_tycho_40_J17: runs-on: ubuntu-latest steps: @@ -157,7 +157,7 @@ jobs: - name: Build env: EXTRA_ARGS : "-Dtycho-version=4.0.1" - run: xvfb-run scripts/domainmodel-2.33.sh + run: xvfb-run scripts/domainmodel-2.34.sh build_domain_tycho_50_J17: runs-on: ubuntu-latest steps: @@ -174,4 +174,4 @@ jobs: - name: Build env: EXTRA_ARGS : "-Dtycho-version=5.0.0-SNAPSHOT -Ptycho_snapshots" - run: xvfb-run scripts/domainmodel-2.33.sh + run: xvfb-run scripts/domainmodel-2.34.sh