| /** |
| * <copyright> |
| * |
| * Copyright (c) 2010,2011 E.D.Willink and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * E.D.Willink - initial API and implementation |
| * |
| * </copyright> |
| * |
| * $Id$ |
| * |
| * Run As->MWE2 Workflow to regenerate the editor. |
| * If it fails with a stack dump, open the Xtext file and do |
| * a dummy edit. Generally there is an error in the source file. |
| */ |
| module GenerateCompleteOCLEditor |
| |
| import org.eclipse.emf.mwe.utils.* |
| import org.eclipse.ocl.examples.build.* |
| import org.eclipse.xtext.generator.* |
| import org.eclipse.xtext.ui.generator.* |
| |
| var completeOCL.file.extensions = "ocl" |
| var completeOCLprojectName = "org.eclipse.ocl.examples.xtext.completeocl" |
| var completeOCLruntimeProject = "../${completeOCLprojectName}" |
| |
| /** |
| * Generate the CompleteOCL Editor. |
| */ |
| Workflow { |
| bean = StandaloneSetup { |
| scanClassPath = true |
| platformUri = "${completeOCLruntimeProject}/.." |
| registerGeneratedEPackage = "org.eclipse.uml2.uml.UMLPackage" |
| registerGeneratedEPackage = "org.eclipse.ocl.examples.pivot.PivotPackage" |
| registerGeneratedEPackage = "org.eclipse.ocl.examples.xtext.base.baseCST.BaseCSTPackage" |
| registerGeneratedEPackage = "org.eclipse.ocl.examples.xtext.essentialocl.essentialOCLCST.EssentialOCLCSTPackage" |
| registerGeneratedEPackage = "org.eclipse.ocl.examples.xtext.completeocl.completeOCLCST.CompleteOCLCSTPackage" |
| registerGeneratedEPackage = "org.eclipse.uml2.codegen.ecore.genmodel.GenModelPackage" |
| registerGenModelFile = "platform:/resource/org.eclipse.ocl.examples.pivot/model/Pivot.merged.genmodel" |
| registerGenModelFile = "platform:/resource/org.eclipse.ocl.examples.xtext.base/model/BaseCST.genmodel" |
| registerGenModelFile = "platform:/resource/org.eclipse.ocl.examples.xtext.essentialocl/model/EssentialOCLCST.genmodel" |
| registerGenModelFile = "platform:/resource/org.eclipse.ocl.examples.xtext.completeocl/model/CompleteOCLCST.genmodel" |
| } |
| |
| component = DirectoryCleaner { |
| directory = "${completeOCLruntimeProject}/src-gen" |
| } |
| |
| component = DirectoryCleaner { |
| directory = "${completeOCLruntimeProject}.ui/src-gen" |
| } |
| |
| component = Generator { |
| pathRtProject = completeOCLruntimeProject |
| pathUiProject = "${completeOCLruntimeProject}.ui" |
| projectNameRt = completeOCLprojectName |
| projectNameUi = "${completeOCLprojectName}.ui" |
| mergeManifest = false |
| |
| language = { |
| uri = "classpath:/org/eclipse/ocl/examples/xtext/completeocl/CompleteOCL.xtext" |
| fileExtensions = completeOCL.file.extensions |
| |
| // Java API to access grammar elements (required by several other fragments) |
| fragment = grammarAccess.GrammarAccessFragment {} |
| |
| // generates Java API for the generated EPackages |
| // fragment = ecore.EcoreGeneratorFragment { |
| // referencedGenModels = "platform:/resource/org.eclipse.emf.ecore/model/Ecore.genmodel" |
| // referencedGenModels = "platform:/resource/org.eclipse.ocl.examples.xtext.essentialocl/model/EssentialOCLCST.genmodel" |
| // } |
| |
| // the serialization component |
| fragment = serializer.SerializerFragment {} |
| |
| // a custom ResourceFactory for use with EMF |
| fragment = resourceFactory.ResourceFactoryFragment { |
| fileExtensions = completeOCL.file.extensions |
| } |
| |
| // the following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/ |
| // fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment { |
| // options = { backtrack = true classSplitting = true } |
| // } |
| fragment = parser.antlr.XtextAntlrGeneratorFragment { |
| options = { backtrack = true classSplitting = true } |
| antlrParam = "-Xconversiontimeout" antlrParam = "10000" |
| } |
| |
| // check-based API for validation |
| /* |
| fragment = validation.CheckFragment {} |
| */ |
| |
| // java-based API for validation |
| fragment = validation.JavaValidatorFragment { |
| composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" |
| // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" |
| } |
| |
| // scoping and exporting API |
| /* |
| fragment = scoping.ImportURIScopingFragment {} |
| fragment = exporting.SimpleNamesFragment {} |
| */ |
| |
| // scoping and exporting API |
| fragment = scoping.ImportNamespacesScopingFragment {} |
| fragment = exporting.QualifiedNamesFragment {} |
| |
| // formatter API |
| fragment = formatting.FormatterFragment {} |
| |
| // labeling API |
| fragment = labeling.LabelProviderFragment {} |
| |
| // outline API |
| // fragment = outline.TransformerFragment {} |
| // fragment = outline.OutlineNodeAdapterFactoryFragment {} |
| fragment = outline.OutlineTreeProviderFragment {} |
| fragment = outline.QuickOutlineFragment {} |
| |
| // java-based API for content assistance |
| fragment = contentAssist.JavaBasedContentAssistFragment {} |
| |
| // fragment = de.itemis.xtext.antlr.XtextAntlrGeneratorFragment { |
| // options = { backtrack = true classSplitting = true} |
| // } |
| fragment = parser.antlr.XtextAntlrUiGeneratorFragment { |
| options = { backtrack = true classSplitting = true} |
| antlrParam = "-Xconversiontimeout" antlrParam = "10000" |
| } |
| |
| fragment = builder.BuilderIntegrationFragment {} |
| |
| // project wizard (optional) |
| /* |
| fragment = projectWizard.SimpleProjectWizardFragment { |
| generatorProjectName = "${projectName}.generator" |
| modelFileExtension = file.extensions |
| } |
| */ |
| |
| // quickfix API |
| fragment = quickfix.QuickfixProviderFragment {} |
| |
| // EssentialOCL bindings |
| fragment = fragments.EssentialOCLFragment {} |
| // Support Markup in Hover text |
| fragment = fragments.MarkupHoverFragment {} |
| } |
| } |
| } |