Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 5a34f56627e86c7780b8334a1a205a5354ad26dd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
module org.eclipse.papyrus.alf.GenerateAlf

import org.eclipse.emf.mwe.utils.*
import org.eclipse.xtext.generator.*
import org.eclipse.xtext.ui.generator.*

var grammarURI = "classpath:/org/eclipse/papyrus/alf/Alf.xtext"
var file.extensions = "alf"
var projectName = "org.eclipse.papyrus.alf"
var runtimeProject = "../${projectName}"

Workflow {
    bean = StandaloneSetup {
    	    scanClassPath = true
    		platformUri = "${runtimeProject}/.."
    		// registerGenModelFile = "platform:/resource/org.eclipse.xtext.xbase/model/Xbase.genmodel"
            // registerGenModelFile = "platform:/resource/org.eclipse.xtext.common.types/model/JavaVMTypes.genmodel"
            // registerGeneratedEPackage = "org.eclipse.xtext.xbase.XbasePackage"
            // registerGeneratedEPackage = "org.eclipse.xtext.common.types.TypesPackage"
            
    	}
    
    	component = DirectoryCleaner {
    		directory = "${runtimeProject}/src-gen"
    	}
    
    	component = DirectoryCleaner {
    		directory = "${runtimeProject}.ui/src-gen"
    	}
    
    	component = Generator {
    		pathRtProject = runtimeProject
    		pathUiProject = "${runtimeProject}.ui"
    		//pathTestProject = "${runtimeProject}.tests"
    		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 {
    			}
    
    			// the serialization component
    			fragment = parseTreeConstructor.ParseTreeConstructorFragment {}
    
    			// a custom ResourceFactory for use with EMF 
    			fragment = resourceFactory.ResourceFactoryFragment {
    				fileExtensions = file.extensions
    			}
    
    			// The antlr parser generator fragment.
    			fragment = parser.antlr.XtextAntlrGeneratorFragment {
    			//  options = {
    			//		backtrack = true
    			//	}
    			}
    			
    			// 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 {}
    			fragment = builder.BuilderIntegrationFragment {}
    
    			// generator API
    			//fragment = generator.GeneratorFragment {
    			//	generateMwe = true
    			//	generateJavaMain = true
    			//}
    			
    			// formatter API 
    			fragment = formatting.FormatterFragment {}
    
    			// labeling API 
    			fragment = labeling.LabelProviderFragment {}
    
    			// outline API 
    			fragment = outline.OutlineTreeProviderFragment {}
    			fragment = outline.QuickOutlineFragment {}
    
    			// quickfix API 
    			fragment = quickfix.QuickfixProviderFragment {}
    
    			// content assist API  
    			fragment = contentAssist.JavaBasedContentAssistFragment {}
    			
    			// generates a more lightweight Antlr parser and lexer tailored for content assist  
    			fragment = parser.antlr.XtextAntlrUiGeneratorFragment {}
    
    			// generates junit test support classes into Generator#pathTestProject
    			//fragment = junit.Junit4Fragment {}
    
    			// project wizard (optional) 
    			// fragment = projectWizard.SimpleProjectWizardFragment {
    			// 		generatorProjectName = "${projectName}"
    			//		modelFileExtension = file.extensions
    			// }
    
    			// provides the necessary bindings for java types integration
    			fragment = types.TypesGeneratorFragment {}
    
    			// generates the required bindings only if the grammar inherits from Xbase
    			//fragment = xbase.XbaseGeneratorFragment {}
    			
    			// provides a preference page for template proposals 
    			fragment = templates.CodetemplatesGeneratorFragment {}
    
    			// rename refactoring
                // fragment = refactoring.RefactorElementNameFragment {}
    
                // provides a compare view
                // fragment = compare.CompareFragment {
                //    fileExtensions = file.extensions
                // }
    
                // Serializer 2.0
                // fragment = serializer.SerializerFragment {}
    		}
    	}
}

Back to the top