blob: 641de52e8fcd3fb0e368e77fd46855aeb4fa8f1c [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 itemis AG (http://www.itemis.eu) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
module org.eclipse.xtext.example.domainmodel.GenerateDomainmodelLanguage
import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*
var fileHeaderText = "/**
* 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 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Florian Pirchner - Initial implementation
*
* generated by Xtext \${version}\n
*/
"
var grammarURI = "classpath:/org/eclipse/xtext/example/domainmodel/Domainmodel.xtext"
var file.extensions = "dmodel"
var projectName = "org.eclipse.xtext.example.domainmodel"
var runtimeProject = "../${projectName}"
var lineDelimiter = '\n'
Workflow {
bean = StandaloneSetup {
scanClassPath = true
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"
}
component = DirectoryCleaner {
directory = "${runtimeProject}/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.ui/src-gen"
}
component = DirectoryCleaner {
directory = "${runtimeProject}.tests/src-gen"
}
component = Generator auto-inject {
pathRtProject = runtimeProject
pathUiProject = "${runtimeProject}.ui"
pathTestProject = "${runtimeProject}.tests"
projectNameRt = projectName
projectNameUi = "${projectName}.ui"
language = {
uri = grammarURI
fileExtensions = file.extensions
// Java API to access grammar elements (required by several other fragments)
fragment = grammarAccess.GrammarAccessFragment auto-inject {}
// Generate java classes for Ecore models
fragment = ecore.EMFGeneratorFragment auto-inject {
emfRuntimeVersion = "2.10"
}
// the serialization component
fragment = serializer.SerializerFragment {}
// a custom ResourceFactory for use with EMF
fragment = resourceFactory.ResourceFactoryFragment {
fileExtensions = file.extensions
}
// the following fragment generates an Antlr parser
fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {}
// java-based API for validation
fragment = validation.JavaValidatorFragment {
composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
}
// scoping API
fragment = scoping.ImportNamespacesScopingFragment {
generateStub = false
}
fragment = exporting.QualifiedNamesFragment {}
// testing API
fragment = junit.Junit4Fragment {}
// formatter API
fragment = formatting.FormatterFragment {}
// labeling API
fragment = labeling.LabelProviderFragment {}
// outline API
fragment = outline.OutlineTreeProviderFragment {}
fragment = outline.QuickOutlineFragment {}
// java-based API for content assistance
fragment = contentAssist.JavaBasedContentAssistFragment {}
fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {
partialParsing = true
}
fragment = builder.BuilderIntegrationFragment {}
// quickfix API
fragment = quickfix.QuickfixProviderFragment {}
// rename refactoring
fragment = refactoring.RefactorElementNameFragment {}
// provides a compare view
fragment = compare.CompareFragment {
fileExtensions = file.extensions
}
// Xbase support
fragment = types.TypesGeneratorFragment {}
fragment = xbase.XbaseGeneratorFragment {}
// Code generator
fragment = generator.GeneratorFragment {
}
fragment = templates.CodetemplatesGeneratorFragment {}
}
}
}