module org.example.my.idea.Mydsl import org.eclipse.emf.mwe.utils.* import org.eclipse.xtext.xtext.generator.* import org.eclipse.xtext.xtext.generator.model.project.* var grammarURI = "classpath:/org/example/my/Mydsl.xtext" var file.extensions = "mydsl" var runtimeProject = "src/main/java/org/example/my" var rootPath = ".." Workflow { bean = StandaloneSetup { logResourceUriMap = true projectMapping = { projectName = 'org.example.my' path = 'src/main/java/org/example/my' } scanClassPath = true platformUri = "${runtimeProject}" uriMap = { from = "platform:/resource/org.example.my/model/Mydsl.genmodel" to = "classpath:/model/generated/Mydsl.genmodel" } uriMap = { from = "platform:/resource/org.example.my/model/Mydsl.ecore" to = "classpath:/model/generated/Mydsl.ecore" } registerGenModelFile = "platform:/resource/org.example.my/model/Mydsl.genmodel" registerEcoreFile= "platform:/resource/org.example.my/model/Mydsl.ecore" registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel" registerGenModelFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel" registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage" registerGeneratedEPackage="org.example.my.dsl.mydsl.MydslPackage" } component = DirectoryCleaner { directory = "${runtimeProject}/src-gen" } component = DirectoryCleaner { directory = "${runtimeProject}.ui/src-gen" } component = XtextGenerator { configuration = { project = StandardProjectConfig { baseName = "my-dsl-ide" rootPath = rootPath runtime = { enabled = false } runtimeTest = { enabled = false } genericIde = { name = "my-dsl-ide" enabled = true } ideaPlugin = { name = "my-dsl-ide" enabled = true } mavenLayout = true } code = { preferXtendStubs = false encoding = "UTF-8" fileHeader = "/*\n * generated by Xtext \${version}\n */" } } language = XtextGeneratorLanguage { grammarUri = grammarURI fileExtensions = "mydsl" fragment = grammarAccess.GrammarAccessFragment2 {} // generates Java API for the generated EPackages fragment = ecore.EMFGeneratorFragment2 { genModel = "platform:/resource/org.example.my/model/Mydsl.genmodel" } fragment = ui.labeling.LabelProviderFragment2 {} fragment = ui.outline.QuickOutlineFragment2 {} fragment = ui.outline.OutlineTreeProviderFragment2 {} fragment = ui.quickfix.QuickfixProviderFragment2 {} fragment = ui.contentAssist.ContentAssistFragment2 {} fragment = ui.templates.CodetemplatesGeneratorFragment2 {} fragment = ui.compare.CompareFragment2 {} fragment = idea.parser.antlr.XtextAntlrIDEAGeneratorFragment {} fragment = idea.IdeaPluginGenerator {} } } }