| module org.eclipse.amp.amf.abase.ABase |
| |
| import org.eclipse.emf.mwe.utils.* |
| import org.eclipse.xtext.generator.* |
| import org.eclipse.xtext.ui.generator.* |
| |
| var grammarURI = "classpath:/org/eclipse/amp/amf/abase/ABase.xtext" |
| var file.extensions = "abase" |
| var projectName = "org.eclipse.amp.amf.abase" |
| 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 following fragment tries to use the Antlr Generator fragment which can be installed via update manager from http://download.itemis.com/updates/ |
| fragment = AntlrDelegatingFragment {} |
| |
| /* |
| If you don't want to use the Antlr fragment for some reason, remove the antlr fragment and uncomment the packrat parser fragment below. |
| fragment = parser.PackratParserFragment {} |
| */ |
| |
| // check-based API for validation |
| /* |
| fragment = validation.CheckFragment {} |
| */ |
| |
| // java-based API for validation |
| fragment = validation.JavaValidatorFragment { |
| composedCheck = "org.eclipse.xtext.validation.ImportUriValidator" |
| composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator" |
| } |
| |
| // scoping and exporting API |
| fragment = scoping.ImportURIScopingFragment {} |
| fragment = exporting.SimpleNamesFragment {} |
| |
| // scoping and exporting API |
| //fragment = scoping.ImportNamespacesScopingFragment {} |
| //fragment = exporting.QualifiedNamesFragment {} |
| |
| // formatter API |
| fragment = formatting.FormatterFragment {} |
| |
| // labeling API |
| fragment = labeling.LabelProviderFragment {} |
| |
| // outline API |
| fragment = outline.TransformerFragment {} |
| fragment = outline.OutlineNodeAdapterFactoryFragment {} |
| fragment = outline.QuickOutlineFragment {} |
| |
| // java-based API for content assistance |
| fragment = contentAssist.JavaBasedContentAssistFragment {} |
| |
| // the following fragment tries to use the Antlr based content assist |
| // fragment which can be downloaded from http://www.itemis.com |
| // and will be ignored if it's not available. |
| fragment = DelegatingGeneratorFragment { |
| delegate = "de.itemis.xtext.antlr.XtextAntlrUiGeneratorFragment" |
| message="You are generating without ANTLR. It is highly recommended to download and use the plugin \'de.itemis.xtext.antlr\' \n\t using the update site http:\//download.itemis.com/updates/." |
| } |
| |
| fragment = builder.BuilderIntegrationFragment {} |
| |
| // project wizard (optional) |
| /* |
| fragment = projectWizard.SimpleProjectWizardFragment { |
| generatorProjectName = "${projectName}.generator" |
| modelFileExtension = file.extensions |
| } |
| */ |
| |
| // quickfix API |
| fragment = quickfix.QuickfixProviderFragment {} |
| } |
| } |
| } |