1 module robots.missions.GenerateTaskDSL
3 import org.eclipse.emf.mwe.utils.*
4 import org.eclipse.xtext.generator.*
5 import org.eclipse.xtext.ui.generator.*
7 var grammarURI = "classpath:/robots/missions/TaskDSL.xtext"
8 var fileExtensions = "tdsl"
9 var projectName = "desdsl"
10 var runtimeProject = "../${projectName}"
11 var generateXtendStub = true
12 var encoding = "UTF-8"
15 bean = StandaloneSetup {
17 platformUri = "${runtimeProject}/.."
18 // The following two lines can be removed, if Xbase is not used.
19 registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
20 registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
23 component = DirectoryCleaner {
24 directory = "${runtimeProject}/src-gen"
27 component = DirectoryCleaner {
28 directory = "${runtimeProject}/model/generated"
31 component = DirectoryCleaner {
32 directory = "${runtimeProject}.ui/src-gen"
35 component = DirectoryCleaner {
36 directory = "${runtimeProject}.tests/src-gen"
39 component = Generator {
40 pathRtProject = runtimeProject
41 pathUiProject = "${runtimeProject}.ui"
42 pathTestProject = "${runtimeProject}.tests"
43 projectNameRt = projectName
44 projectNameUi = "${projectName}.ui"
46 language = auto-inject {
49 // Java API to access grammar elements (required by several other fragments)
50 fragment = grammarAccess.GrammarAccessFragment auto-inject {}
52 // generates Java API for the generated EPackages
53 fragment = ecore.EMFGeneratorFragment auto-inject {}
55 // the old serialization component
56 // fragment = parseTreeConstructor.ParseTreeConstructorFragment auto-inject {}
59 fragment = serializer.SerializerFragment auto-inject {
63 // a custom ResourceFactory for use with EMF
64 fragment = resourceFactory.ResourceFactoryFragment auto-inject {}
66 // The antlr parser generator fragment.
67 fragment = parser.antlr.XtextAntlrGeneratorFragment auto-inject {
73 // Xtend-based API for validation
74 fragment = validation.ValidatorFragment auto-inject {
75 // composedCheck = "org.eclipse.xtext.validation.ImportUriValidator"
76 // composedCheck = "org.eclipse.xtext.validation.NamesAreUniqueValidator"
79 // old scoping and exporting API
80 // fragment = scoping.ImportURIScopingFragment auto-inject {}
81 // fragment = exporting.SimpleNamesFragment auto-inject {}
83 // scoping and exporting API
84 fragment = scoping.ImportNamespacesScopingFragment auto-inject {}
85 fragment = exporting.QualifiedNamesFragment auto-inject {}
86 fragment = builder.BuilderIntegrationFragment auto-inject {}
89 fragment = generator.GeneratorFragment auto-inject {}
92 fragment = formatting.FormatterFragment auto-inject {}
95 fragment = labeling.LabelProviderFragment auto-inject {}
98 fragment = outline.OutlineTreeProviderFragment auto-inject {}
99 fragment = outline.QuickOutlineFragment auto-inject {}
102 fragment = quickfix.QuickfixProviderFragment auto-inject {}
104 // content assist API
105 fragment = contentAssist.ContentAssistFragment auto-inject {}
107 // generates a more lightweight Antlr parser and lexer tailored for content assist
108 fragment = parser.antlr.XtextAntlrUiGeneratorFragment auto-inject {}
110 // generates junit test support classes into Generator#pathTestProject
111 fragment = junit.Junit4Fragment auto-inject {}
113 // rename refactoring
114 fragment = refactoring.RefactorElementNameFragment auto-inject {}
116 // provides the necessary bindings for java types integration
117 fragment = types.TypesGeneratorFragment auto-inject {}
119 // generates the required bindings only if the grammar inherits from Xbase
120 fragment = xbase.XbaseGeneratorFragment auto-inject {}
122 // generates the required bindings only if the grammar inherits from Xtype
123 fragment = xbase.XtypeGeneratorFragment auto-inject {}
125 // provides a preference page for template proposals
126 fragment = templates.CodetemplatesGeneratorFragment auto-inject {}
128 // provides a compare view
129 fragment = compare.CompareFragment auto-inject {}