All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.xtext.xbase.GenerateXbase.mwe2 Maven / Gradle / Ivy

/*******************************************************************************
 * 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 v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *******************************************************************************/
module org.eclipse.xtext.xbase.GenerateXbase

import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*
import org.eclipse.xtext.generator.parser.antlr.*
import org.eclipse.xtext.resource.XtextResourceSet 

var projectName = "org.eclipse.xtext.xbase"
var runtimeProject = "../${projectName}"
var uiProject = "${runtimeProject}.ui"
var backtrack = false
var memoize = false

Workflow {
	bean = StandaloneSetup {
		// the maven archetype contains a template file called .project
		ignoreBrokenProjectFiles = true 
		platformUri = "${runtimeProject}/../.."
		scanClassPath = true
	}
	
	bean = StandaloneSetup {
		resourceSet = XtextResourceSet : xtypeResourceSet {}
		registerEcoreFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.ecore"
		registerEcoreFile = "platform:/resource/${projectName}/model/Xtype.ecore"
	}
	
	bean = StandaloneSetup {
		resourceSet = XtextResourceSet : xbaseResourceSet {}
		registerEcoreFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.ecore"
		registerEcoreFile = "platform:/resource/${projectName}/model/Xtype.ecore"
		registerEcoreFile = "platform:/resource/${projectName}/model/Xbase.ecore"
	}
	
	bean = StandaloneSetup {
		resourceSet = XtextResourceSet : xannotationsResourceSet {}
		registerEcoreFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.ecore"
		registerEcoreFile = "platform:/resource/${projectName}/model/Xtype.ecore"
		registerEcoreFile = "platform:/resource/${projectName}/model/Xbase.ecore"
		registerEcoreFile = "platform:/resource/${projectName}/model/XAnnotations.ecore"
	}

	component = DirectoryCleaner {
		directory="${runtimeProject}/emf-gen"
	}
	
	component = org.eclipse.emf.mwe2.ecore.EcoreGenerator {
		genModel = "platform:/resource/${projectName}/model/Xbase.genmodel"
		srcPath ="platform:/resource/${projectName}/src"
		srcPath ="platform:/resource/org.eclipse.xtext.common.types/src"
	}

	component = DirectoryCleaner {
		directory="${uiProject}/src-gen"
	}
	component = DirectoryCleaner {
		directory="${runtimeProject}/src-gen"
	}
	
	component = Generator {
		pathRtProject = runtimeProject
		pathUiProject = uiProject
		projectNameRt = projectName
		projectNameUi = "${projectName}.ui"
		
		language = {
			forcedResourceSet = xtypeResourceSet
			uri = "classpath:/org/eclipse/xtext/xbase/Xtype.xtext" 
			fileExtensions="___xtype"
			fragment = grammarAccess.GrammarAccessFragment {}
			fragment = serializer.SerializerFragment {
				// generateDebugData = true
			}
			fragment = formatting.FormatterFragment {}
			fragment = contentAssist.JavaBasedContentAssistFragment {}
			fragment = XtextAntlrGeneratorFragment {
				options = auto-inject {}
			}
		}
		language = {
			forcedResourceSet = xbaseResourceSet
			uri = "classpath:/org/eclipse/xtext/xbase/Xbase.xtext" 	
			fileExtensions = "___xbase"
			fragment = grammarAccess.GrammarAccessFragment {}
			fragment = serializer.SerializerFragment {
				// generateDebugData = true
			}
			fragment = resourceFactory.ResourceFactoryFragment {
				fileExtensions = "___xbase"
			}
			fragment = XtextAntlrGeneratorFragment {
				options = auto-inject {}
				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
			}
			fragment = DebugAntlrGeneratorFragment {
				options = auto-inject {}
			}
			fragment = validation.JavaValidatorFragment {
				inheritImplementation = false
			}
			fragment = scoping.ImportNamespacesScopingFragment {}
			fragment = types.TypesGeneratorFragment {}
			fragment = xbase.XbaseGeneratorFragment {
				generateXtendInferrer = false
				useInferredJvmModel = false
				jdtTypeHierarchy = false
			}
			fragment = builder.BuilderIntegrationFragment {}
			fragment = formatting.FormatterFragment {}
			fragment = quickfix.QuickfixProviderFragment {}
			fragment = labeling.LabelProviderFragment {}
			fragment = outline.OutlineTreeProviderFragment {}
			fragment = contentAssist.JavaBasedContentAssistFragment {}
			fragment = XtextAntlrUiGeneratorFragment {
				options = auto-inject {}
				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
			}
		}
		language = {
			forcedResourceSet = xannotationsResourceSet
			uri = "classpath:/org/eclipse/xtext/xbase/annotations/XbaseWithAnnotations.xtext" 	
			fileExtensions = "___xbasewithannotations"
			fragment = grammarAccess.GrammarAccessFragment {}
			fragment = serializer.SerializerFragment {
				// generateDebugData = true
			}
			fragment = resourceFactory.ResourceFactoryFragment {
				fileExtensions = "___xbasewithannotations"
			}
			fragment = XtextAntlrGeneratorFragment {
				options = auto-inject {}
				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
			}
			fragment = DebugAntlrGeneratorFragment {
				options = auto-inject {}
			}
			fragment = validation.JavaValidatorFragment {}
			fragment = scoping.ImportNamespacesScopingFragment {}
			fragment = types.TypesGeneratorFragment {}
			fragment = xbase.XbaseGeneratorFragment {
				generateXtendInferrer = false
				useInferredJvmModel = false
				jdtTypeHierarchy = false
			}
			fragment = builder.BuilderIntegrationFragment {}
			fragment = formatting.FormatterFragment {}
			fragment = quickfix.QuickfixProviderFragment {}
			fragment = labeling.LabelProviderFragment {}
			fragment = outline.OutlineTreeProviderFragment {}
			fragment = contentAssist.JavaBasedContentAssistFragment {}
			fragment = XtextAntlrUiGeneratorFragment {
				options = auto-inject {}
				antlrParam = "-Xconversiontimeout" antlrParam = "10000"
			}
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy