module org.wesnoth.WML import org.eclipse.emf.mwe.utils.* import org.eclipse.xtext.generator.* import org.eclipse.xtext.ui.generator.* var grammarURI = "classpath:/org/wesnoth/WML.xtext" var file.extensions = "cfg" var projectName = "org.wesnoth" var runtimeProject = "../${projectName}" Workflow { bean = StandaloneSetup { platformUri = "${runtimeProject}/.." } component = DirectoryCleaner { directory = "${runtimeProject}/src-gen" } component = DirectoryCleaner { directory = "${runtimeProject}.ui/src-gen" } component = Generator { pathRtProject = runtimeProject pathUiProject = "${runtimeProject}.ui" 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 {} // generates Java API for the generated EPackages fragment = ecore.EcoreGeneratorFragment { // referencedGenModels = "uri to genmodel, uri to next genmodel" } // the serialization component fragment = parseTreeConstructor.ParseTreeConstructorFragment {} // a custom ResourceFactory for use with EMF fragment = resourceFactory.ResourceFactoryFragment { fileExtensions = file.extensions } // The antlr parser generator fragment. fragment = parser.antlr.XtextAntlrGeneratorFragment { // options = { // backtrack = true // } } // java-based API for validation fragment = validation.JavaValidatorFragment { composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" // registerForImportedPackages = true } // scoping and exporting API // fragment = scoping.ImportURIScopingFragment {} // fragment = exporting.SimpleNamesFragment {} // scoping and exporting API fragment = scoping.ImportNamespacesScopingFragment {} fragment = exporting.QualifiedNamesFragment {} fragment = builder.BuilderIntegrationFragment {} // formatter API fragment = formatting.FormatterFragment {} // labeling API fragment = labeling.LabelProviderFragment {} // outline API fragment = outline.OutlineTreeProviderFragment {} fragment = outline.QuickOutlineFragment {} // quickfix API fragment = quickfix.QuickfixProviderFragment {} // content assist API fragment = contentAssist.JavaBasedContentAssistFragment {} // generates a more lightweight Antlr parser and lexer tailored for content assist fragment = parser.antlr.XtextAntlrUiGeneratorFragment {} // project wizard (optional) // fragment = projectWizard.SimpleProjectWizardFragment { // generatorProjectName = "${projectName}.generator" // modelFileExtension = file.extensions // } } } }