blob: c56af531ed74bd4fd9c29a4638e3aaf740927580 [file] [log] [blame]
/**
* Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
* 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:
* Florian Pirchner - Initial implementation
*/
module org.eclipse.osbp.ecview.dsl.GenerateUIGrammar
import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*
var fileExtensions = "ui"
var projectName = "org.eclipse.osbp.ecview.dsl"
var grammarURI = "classpath:/org/eclipse/osbp/ecview/dsl/UIGrammar.xtext"
var runtimeProject = "../${projectName}"
var generateXtendStub = true
var encoding = "UTF-8"
Workflow {
bean = StandaloneSetup {
// uriMap = {
// from = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/core.genmodel"
// to =
// "file:///Users/admin/git/osbp-ecview/org.eclipse.osbp.ecview.core.parent/org.eclipse.osbp.ecview.core.common.model/model/core.genmodel"
// }
// uriMap = {
// from = "platform:/plugin/"
// to = "platform:/resource/"
// }
// uriMap = {
// from = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/"
// to =
// "file:///Users/admin/git/osbp-ecview/org.eclipse.osbp.ecview.core.parent/org.eclipse.osbp.ecview.core.common.model/"
// }
// uriMap = {
// from = "platform:/resource/org.eclipse.osbp.ecview.core.extension.model/"
// to =
// "file:///Users/admin/git/osbp-ecview/org.eclipse.osbp.ecview.core.parent/org.eclipse.osbp.ecview.core.extension.model/"
// }
// uriMap = {
// from = "platform:/resource/org.eclipse.osbp.ecview.semantic.uisemantics/"
// to = "file:///Users/admin/git/osbp-ecview-addons/org.eclipse.osbp.ecview.semantic.uisemantics/"
// }
// uriMap = {
// from = "platform:/resource/org.eclipse.osbp.ecview.semantic.uimodel/"
// to = "file:///Users/admin/git/osbp-ecview-addons/org.eclipse.osbp.ecview.semantic.uimodel/"
// }
// resourceSet = org.eclipse.xtext.resource.XtextResourceSet : theResourceSet {}
scanClassPath = true
platformUri = "${runtimeProject}/.."
registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
registerGenModelFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel"
registerEcoreFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xtype.ecore"
registerEcoreFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.ecore"
registerGenModelFile = "platform:/resource/org.eclipse.osbp.ecview.dsl/model/UIGrammarCore.genmodel"///*
// * ECView
// */
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.common.model.datatypes.DatatypesPackage"
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.common.model.core.CoreModelPackage"
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.common.model.binding.BindingPackage"
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.common.model.validation.ValidationPackage"
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.common.model.visibility.VisibilityPackage"
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.extension.model.datatypes.ExtDatatypesPackage"
// registerGeneratedEPackage = "org.eclipse.osbp.ecview.core.extension.model.extension.ExtensionModelPackage"
// registerGenModelFile = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/core.genmodel"
// registerGenModelFile = "platform:/resource/org.eclipse.osbp.ecview.core.extension.model/model/extension.genmodel"//
/*
* UiModelPackages
*/
registerGeneratedEPackage = "org.eclipse.osbp.ecview.semantic.uisemantics.UiSemanticsPackage"
registerGenModelFile =
"platform:/resource/org.eclipse.osbp.ecview.uisemantics/model/UISemanticsGrammar.genmodel"
registerGeneratedEPackage = "org.eclipse.osbp.ecview.semantic.uimodel.UiModelPackage"
registerGenModelFile = "platform:/resource/org.eclipse.osbp.ecview.dsl/model/UIGrammarCore.genmodel"//
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/binding.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/core.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/datatypes.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/validation.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.common.model/model/visibility.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.extension.model/model/extdatatypes.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.core.extension.model/model/extension.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.uisemantics/model/UISemanticsGrammar.ecore"
// registerEcoreFile = "platform:/resource/org.eclipse.osbp.ecview.dsl/model/UIGrammarCore.ecore"
}
component = DirectoryCleaner {
directory = "${runtimeProject}/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}/model/generated"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.ui/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.tests/src-gen"
}
component = Generator {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
pathTestProject = "${runtimeProject}.tests"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
encoding = encoding
language = auto-inject {
// forcedResourceSet = theResourceSet
uri = grammarURI
fragment = ecore.EcoreGeneratorFragment auto-inject {}
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.GrammarAccessFragment auto-inject {}
// generates Java API for the generated EPackages
// fragment = ecore.EMFGeneratorFragment auto-inject {}
// the old serialization component
// fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
// serializer 2.0
fragment = serializer.SerializerFragment auto-inject {
generateStub = false
}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
// The antlr parser generator fragment.
fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
options = {
// backtrack = true
classSplitting = true
// fieldsPerClass = "80"
// methodsPerClass = "80"
}
}
// Xtend-based API for validation
fragment = validation.ValidatorFragment auto-inject {
// composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
// composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
// old scoping and exporting API
// fragment = scoping.ImportURIScopingFragment auto-inject {}
// fragment = exporting.SimpleNamesFragment auto-inject {}
// scoping and exporting API
fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
fragment = exporting.QualifiedNamesFragment auto-inject {}
fragment = builder.BuilderIntegrationFragment auto-inject {}
// generator API
fragment = generator.GeneratorFragment auto-inject {}
// formatter API
fragment = formatting.FormatterFragment auto-inject {
generateStub=true
generateXtendStub=false
}
// labeling API
fragment = labeling.LabelProviderFragment auto-inject {}
// outline API
fragment = outline.OutlineTreeProviderFragment auto-inject {}
fragment = outline.QuickOutlineFragment auto-inject {}
// quickfix API
fragment = quickfix.QuickfixProviderFragment auto-inject {}
// content assist API
fragment = contentAssist.ContentAssistFragment auto-inject {}
// generates a more lightweight Antlr parser and lexer tailored for content assist
fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {
options = {
classSplitting = true
// fieldsPerClass = "80"
// methodsPerClass = "80"
}
}
// generates junit test support classes into Generator#pathTestProject
fragment = junit.Junit4Fragment auto-inject {}
// rename refactoring
fragment = refactoring.RefactorElementNameFragment auto-inject {}
// provides the necessary bindings for java types integration
fragment = types.TypesGeneratorFragment auto-inject {}
// generates the required bindings only if the grammar inherits from Xbase
fragment = xbase.XbaseGeneratorFragment auto-inject {}
// generates the required bindings only if the grammar inherits from Xtype
fragment = xbase.XtypeGeneratorFragment auto-inject {}
// provides a preference page for template proposals
fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
// provides a compare view
fragment = compare.CompareFragment auto-inject {}
}
}
}