| module org.eclipse.fx.xtext.statemachine.GenerateStatemachine |
| |
| import org.eclipse.emf.mwe.utils.* |
| import org.eclipse.xtext.generator.* |
| import org.eclipse.xtext.ui.generator.* |
| |
| var grammarURI = "classpath:/org/eclipse/fx/xtext/statemachine/Statemachine.xtext" |
| var fileExtensions = "state" |
| var projectName = "org.eclipse.fx.xtext.statemachine" |
| var runtimeProject = "../${projectName}" |
| var generateXtendStub = true |
| var encoding = "UTF-8" |
| var fileHeader = "/*\n * generated by Xtext \${version}\n */" |
| Workflow { |
| bean = StandaloneSetup { |
| scanClassPath = true |
| platformUri = "${runtimeProject}/.." |
| // The following two lines can be removed, if Xbase is not used. |
| registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage" |
| registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel" |
| } |
| |
| component = DirectoryCleaner { |
| directory = "${runtimeProject}/src-gen" |
| } |
| |
| component = DirectoryCleaner { |
| directory = "${runtimeProject}/model/generated" |
| } |
| |
| |
| component = DirectoryCleaner { |
| directory = "${runtimeProject}.ide/src-gen" |
| } |
| |
| component = Generator auto-inject { |
| pathRtProject = runtimeProject |
| projectNameRt = projectName |
| pathIdeProject = "${runtimeProject}.ide" |
| projectNameIde = "${projectName}.ide" |
| language = auto-inject { |
| uri = grammarURI |
| |
| // 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 {} |
| |
| 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 |
| // } |
| } |
| |
| // Xtend-based API for validation |
| fragment = validation.ValidatorFragment auto-inject { |
| // composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" |
| // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" |
| } |
| |
| // scoping and exporting API |
| fragment = scoping.ImportNamespacesScopingFragment auto-inject {} |
| fragment = exporting.QualifiedNamesFragment auto-inject {} |
| |
| // generator API |
| fragment = generator.GeneratorFragment auto-inject {} |
| |
| // formatter API |
| fragment = formatting.FormatterFragment auto-inject {} |
| |
| |
| // generates a more lightweight Antlr parser and lexer tailored for content assist |
| fragment = parser.antlr.XtextAntlrUiGeneratorFragment 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 {} |
| |
| |
| } |
| } |
| } |