aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/src/main/java/tools/refinery/language/GenerateProblem.mwe2
blob: 59eba8f701ee34be8d6b48e659df1cc71e9965c4 (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
/*
 * SPDX-FileCopyrightText: 2021-2023 The Refinery Authors <https://refinery.tools/>
 *
 * SPDX-License-Identifier: EPL-2.0
 */
module tools.refinery.language.GenerateProblem

import org.eclipse.xtext.xtext.generator.*
import org.eclipse.xtext.xtext.generator.model.project.*

var rootPath = '..'

Workflow {
	component = XtextGenerator {
		configuration = {
			project = StandardProjectConfig {
				baseName = 'language'
				rootPath = rootPath
				runtime = {
					// Do not generate new files into src/main/java
					src = null
				}
				runtimeTest = {
					enabled = true
					// Only generate the xtext-gen files and leave the rest of the project alone
					root = null
					srcGen = '${rootPath}/language/src/testFixtures/xtext-gen'
				}
				genericIde = {
					name = 'language-ide'
					// Only generate the xtext-gen files and leave the rest of the project alone
					root = null
					srcGen = "${rootPath}/language/build/generated/sources/xtext/ide"
				}
				web = {
					enabled = true
					name = 'language-web'
					// Only generate the xtext-gen files and leave the rest of the project alone
					root = null
					srcGen = "${rootPath}/language/build/generated/sources/xtext/web"
				}
				mavenLayout = true
			}
			code = {
				encoding = 'UTF-8'
				lineDelimiter = '\n'
				fileHeader = '/*\n * generated by Xtext \${version}\n */'
				preferXtendStubs = false
			}
		}

		language = StandardLanguage {
			name = 'tools.refinery.language.Problem'
			fileExtensions = 'problem'
			referencedResource = 'platform:/resource/tools.refinery.refinery-language-model/model/problem.genmodel'
			serializer = {
				generateStub = false
			}
			formatter = {
				generateStub = true
			}
			validator = {
				generateDeprecationValidation = true
			}
			generator = {
				generateStub = false
			}
			junitSupport = {
				generateStub = false
				skipXbaseTestingPackage = true
				junitVersion = '5'
			}
			webSupport = {
				// We only generate the {@code AbstractProblemWebModule},
				// because we write our own integration code for CodeMirror 6.
				framework = 'codemirror'
				generateHtmlExample = false
				generateJettyLauncher = false
				generateJsHighlighting = false
				generateServlet = false
				generateWebXml = false
			}
		}
	}
}