/org.eclipse.xtext.example.fj/src/org/eclipse/xtext/example/GenerateFJ.mwe2
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}