PageRenderTime 24ms CodeModel.GetById 17ms app.highlight 6ms RepoModel.GetById 0ms app.codeStats 0ms

/org.eclipse.xtext.example.fj/src/org/eclipse/xtext/example/GenerateFJ.mwe2

https://bitbucket.org/gcubar/fj-eclipse
Unknown | 103 lines | 82 code | 21 blank | 0 comment | 0 complexity | b1e9e4801dcb9748afc12a7761f4f38d MD5 | raw file
  1module org.eclipse.xtext.example.fj.FJ
  2
  3import org.eclipse.emf.mwe.utils.*
  4import org.eclipse.xtext.generator.*
  5import org.eclipse.xtext.ui.generator.*
  6
  7var grammarURI = "classpath:/org/eclipse/xtext/example/FJ.xtext"
  8var file.extensions = "fj"
  9var projectName = "org.eclipse.xtext.example.fj"
 10var runtimeProject = "../${projectName}"
 11
 12Workflow {
 13    bean = StandaloneSetup {
 14        platformUri = "${runtimeProject}/.."
 15    }
 16
 17    component = DirectoryCleaner {
 18        directory = "${runtimeProject}/src-gen"
 19    }
 20
 21    component = DirectoryCleaner {
 22        directory = "${runtimeProject}.ui/src-gen"
 23    }
 24
 25    component = Generator {
 26        pathRtProject = runtimeProject
 27        pathUiProject = "${runtimeProject}.ui"
 28        projectNameRt = projectName
 29        projectNameUi = "${projectName}.ui"
 30        language = {
 31            uri = grammarURI
 32            fileExtensions = file.extensions
 33
 34            // Java API to access grammar elements (required by several other fragments)
 35            fragment = grammarAccess.GrammarAccessFragment {}
 36
 37            // generates Java API for the generated EPackages 
 38            fragment = ecore.EcoreGeneratorFragment {
 39            // referencedGenModels = "uri to genmodel, uri to next genmodel"
 40            }
 41
 42            // the serialization component
 43            fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
 44
 45            // a custom ResourceFactory for use with EMF 
 46            fragment = resourceFactory.ResourceFactoryFragment {
 47                fileExtensions = file.extensions
 48            }
 49
 50            // The antlr parser generator fragment.
 51            fragment = parser.antlr.XtextAntlrGeneratorFragment {
 52                options = {
 53                    backtrack = true
 54                }
 55            }
 56
 57            // java-based API for validation 
 58            fragment = validation.JavaValidatorFragment {
 59                composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
 60                //composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
 61                // registerForImportedPackages = true
 62            }
 63
 64            // scoping and exporting API
 65            // fragment = scoping.ImportURIScopingFragment {}
 66            // fragment = exporting.SimpleNamesFragment {}
 67
 68            // scoping and exporting API 
 69            fragment = scoping.ImportNamespacesScopingFragment {}
 70            fragment = exporting.QualifiedNamesFragment {}
 71            fragment = builder.BuilderIntegrationFragment {}
 72
 73            // formatter API 
 74            fragment = formatting.FormatterFragment {}
 75
 76            // labeling API 
 77            fragment = labeling.LabelProviderFragment {}
 78
 79            // outline API 
 80            fragment = outline.OutlineTreeProviderFragment {}
 81            fragment = outline.QuickOutlineFragment {}
 82
 83            // quickfix API 
 84            fragment = quickfix.QuickfixProviderFragment {}
 85
 86            // content assist API  
 87            fragment = contentAssist.JavaBasedContentAssistFragment {}
 88
 89            // generates a more lightweight Antlr parser and lexer tailored for content assist  
 90            fragment = parser.antlr.XtextAntlrUiGeneratorFragment {
 91                options = {
 92                    backtrack = true
 93                }
 94            }
 95
 96            // project wizard (optional) 
 97            // fragment = projectWizard.SimpleProjectWizardFragment {
 98            //      generatorProjectName = "${projectName}.generator" 
 99            //      modelFileExtension = file.extensions
100            // }
101        }
102    }
103}