Skip to content

Commit d498ba2

Browse files
Merge pull request #1695 from JetBrains/merge/master
Merge maintenance/mps20251 into master
2 parents c3c8710 + ff3b208 commit d498ba2

File tree

34 files changed

+6750
-4261
lines changed

34 files changed

+6750
-4261
lines changed

CHANGELOG.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,19 @@ All notable changes to this project are documented in this file.
44

55
The format is *loosely* based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) .The project does *not* follow Semantic Versioning and the changes are documented in reverse chronological order, grouped by calendar month.
66

7+
## December 2025
8+
9+
### Added
10+
11+
- *nl.f1re.mps.aliascustomization* The alias of all concepts globally can now be customized through the extension point [AliasCustomization.](http://127.0.0.1:63320/node?ref=r%3Af0a80b34-9760-42b8-9ee6-d5b0d1582551%28de.slisson.mps.conditionalEditor.runtime.plugin%29%2F1679635547169731239) Please be aware that this feature is experimental. Use it with care!
12+
- *com.mbeddr.mpsutil.intentions* All intentions can now be customized through the extension point [IntentionCustomization](http://127.0.0.1:63320/node?ref=r%3A028362d1-b964-410a-a3d5-6096bcd4a2b6%28com.mbeddr.mpsutil.intentions.runtime.plugin%29%2F4784371196443178355) (child filter, description, is applicable block, execute method). Note that you can't customize intentions that are not enabled in the current context (node + editor context).
13+
714
## November 2025
815

916
### Added
1017

1118
- *de.itemis.mps.editor.diagram.runtime* Add an experimental static flag to disable autolayout-on-init. Useful for batch autolayouting.
19+
- *com.mbeddr.mpsutil.grammarcells* All cells now support *show* *if* blocks (except optional cells), parent styles and style sheet items. Note that only certain styles can be applied (transitive styles and styles that make sense for wrapper cells).
1220

1321
### Fixed
1422

@@ -18,10 +26,6 @@ The format is *loosely* based on [Keep a Changelog](https://keepachangelog.com/e
1826
- *de.itemis.mps.spellcheck* Custom dictionaries are not saved in the .mps/dictionaries/project.xml files anymore and pollute the file that is normally used for words saved manually by the user.
1927
- *de.itemis.mps.editor.celllayout* Reloading all classes do not lead to ClassCastExceptions anymore.
2028

21-
### Added
22-
23-
- *com.mbeddr.mpsutil.grammarcells* All cells now support *show* *if* blocks (except optional cells), parent styles and style sheet items. Note that only certain styles can be applied (transitive styles and styles that make sense for wrapper cells).
24-
2529
## October 2025
2630

2731
### Fixed
@@ -34,6 +38,14 @@ The format is *loosely* based on [Keep a Changelog](https://keepachangelog.com/e
3438

3539
- *de.itemis.mps.extensions.build* The version number property was renamed from `versionNumber` to `version`.
3640

41+
### Removed
42+
43+
- MPS.ThirdParty has been removed completely. MPS.IDEA or MPS.IDEA.Modules to be used instead.
44+
45+
### Deprecated
46+
47+
- MPS.Kotlin is deprecated.
48+
3749
## September 2025
3850

3951
### Added
@@ -162,7 +174,7 @@ The format is *loosely* based on [Keep a Changelog](https://keepachangelog.com/e
162174

163175
### Changed
164176

165-
- combine multiple elements without spaces Reduced from Errors to Warning checks that force policies for all concepts in a language. In this way one can prototype with small set of merge policies. Use Partial police flag in your MergingPolicy to deactivate runtime checks as well.
177+
- '''combine multiple elements without spaces''' Reduced from Errors to Warning checks that force policies for all concepts in a language. In this way one can prototype with small set of merge policies. Use Partial police flag in your MergingPolicy to deactivate runtime checks as well.
166178

167179
### Added
168180

build.gradle.kts

Lines changed: 63 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ import com.specificlanguages.mps.MainBuild
22
import com.specificlanguages.mps.MpsBuild
33
import com.specificlanguages.mps.RunAnt
44
import com.specificlanguages.mps.TestBuild
5+
import de.itemis.mps.gradle.EnvironmentKind
56
import de.itemis.mps.gradle.GitBasedVersioning
7+
import de.itemis.mps.gradle.tasks.MpsGenerate
68
import de.itemis.mps.gradle.tasks.MpsMigrate
79
import de.itemis.mps.gradle.tasks.Remigrate
810
import groovy.xml.XmlSlurper
@@ -188,39 +190,37 @@ bundledDependencies {
188190

189191
}
190192

191-
mpsBuilds {
192-
val languages by creating(MainBuild::class) {
193-
mpsProjectDirectory = codeDir
194-
buildArtifactsDirectory = layout.buildDirectory.dir("artifacts/de.itemis.mps.extensions")
195-
buildSolutionDescriptor = codeDir.file("build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd")
196-
buildFile = layout.buildDirectory.file("generated/languages/build.xml")
197-
}
198-
199-
val tests by creating(TestBuild::class) {
200-
dependsOn(languages)
201-
mpsProjectDirectory = codeDir
202-
buildArtifactsDirectory = layout.buildDirectory.dir("artifacts/de.itemis.mps.extensions.tests")
203-
buildSolutionDescriptor = codeDir.file("build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd")
204-
buildFile = layout.buildDirectory.file("generated/tests/build.xml")
205-
206-
assembleAndCheckTask {
207-
finalizedBy("failOnTestError")
193+
val languages by mpsBuilds.creating(MainBuild::class) {
194+
mpsProjectDirectory = codeDir
195+
buildArtifactsDirectory = layout.buildDirectory.dir("artifacts/de.itemis.mps.extensions")
196+
buildSolutionDescriptor = codeDir.file("build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd")
197+
buildFile = layout.buildDirectory.file("generated/languages/build.xml")
198+
}
208199

209-
doLast {
210-
val reportDir = layout.buildDirectory.dir("junitreport").get()
211-
ant.withGroovyBuilder {
212-
"taskdef"(
213-
"name" to "junitreport",
214-
"classname" to "org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator",
215-
"classpath" to mpsDefaults.antClasspath.asPath
216-
)
217-
"junitreport" {
218-
"fileset"("dir" to "$buildDir", "includes" to "**/TEST*.xml")
219-
"report"("format" to "frames", "todir" to reportDir)
220-
}
200+
val tests by mpsBuilds.creating(TestBuild::class) {
201+
dependsOn(languages)
202+
mpsProjectDirectory = codeDir
203+
buildArtifactsDirectory = layout.buildDirectory.dir("artifacts/de.itemis.mps.extensions.tests")
204+
buildSolutionDescriptor = codeDir.file("build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd")
205+
buildFile = layout.buildDirectory.file("generated/tests/build.xml")
206+
207+
assembleAndCheckTask {
208+
finalizedBy("failOnTestError")
209+
210+
doLast {
211+
val reportDir = layout.buildDirectory.dir("junitreport").get()
212+
ant.withGroovyBuilder {
213+
"taskdef"(
214+
"name" to "junitreport",
215+
"classname" to "org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator",
216+
"classpath" to mpsDefaults.antClasspath.asPath
217+
)
218+
"junitreport" {
219+
"fileset"("dir" to "$buildDir", "includes" to "**/TEST*.xml")
220+
"report"("format" to "frames", "todir" to reportDir)
221221
}
222-
println("JUnit report placed into file://$reportDir/index.html")
223222
}
223+
println("JUnit report placed into file://$reportDir/index.html")
224224
}
225225
}
226226
}
@@ -234,12 +234,6 @@ tasks.withType<RunAnt>().configureEach {
234234
}
235235

236236
// ___________________ utilities ___________________
237-
tasks.register<Copy>("copyChangelog") {
238-
from(codeDir.dir("solutions/de.itemis.mps.extensions.changelog/source_gen/de/itemis/mps/extensions/changelog"))
239-
into(layout.settingsDirectory)
240-
include("*.md")
241-
}
242-
243237
tasks.register("failOnTestError") {
244238
description = "evaluate junit result and fail on error"
245239
doLast {
@@ -450,3 +444,36 @@ tasks.register<Remigrate>("remigrate") {
450444
// not rerunnable until MPS-39315 is fixed
451445
excludeModuleMigration("jetbrains.mps.baseLanguage.javadoc", 0)
452446
}
447+
448+
val generateChangelog by tasks.registering(MpsGenerate::class) {
449+
dependsOn(languages.generateTask)
450+
451+
javaLauncher = jbrToolchain.javaLauncher
452+
mpsHome = mpsDefaults.mpsHome
453+
454+
environmentKind = EnvironmentKind.MPS
455+
456+
projectLocation = codeDir
457+
pluginRoots.from(usedPluginRoots)
458+
459+
modules = listOf("de.itemis.mps.extensions.changelog")
460+
}
461+
462+
val copyChangelog by tasks.registering {
463+
dependsOn(generateChangelog)
464+
465+
doLast {
466+
// Using a copy action here instead of making this task a Copy. Otherwise Gradle considers the entire project to
467+
// be the output of this task (because the destination directory is the project root) and complains about
468+
// implicit dependencies.
469+
copy {
470+
from(codeDir.dir("solutions/de.itemis.mps.extensions.changelog/source_gen/de/itemis/mps/extensions/changelog"))
471+
into(layout.settingsDirectory)
472+
include("*.md")
473+
}
474+
}
475+
}
476+
477+
tasks.build {
478+
dependsOn(copyChangelog)
479+
}

code/.mps/modules.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
<project version="4">
33
<component name="MPSProject">
44
<projectModules>
5+
<modulePath path="$PROJECT_DIR$/alias-customization/languages/test.nl.f1re.mps.aliascustomization.demolang/test.nl.f1re.mps.aliascustomization.demolang.mpl" folder="alias-customization" />
6+
<modulePath path="$PROJECT_DIR$/alias-customization/solutions/nl.f1re.mps.aliascustomization/nl.f1re.mps.aliascustomization.msd" folder="alias-customization" />
7+
<modulePath path="$PROJECT_DIR$/alias-customization/solutions/test.nl.f1re.mps.aliascustomization/test.nl.f1re.mps.aliascustomization.msd" folder="alias-customization" />
58
<modulePath path="$PROJECT_DIR$/apache-commons/solutions/org.apache.commons/org.apache.commons.msd" folder="apache-commons" />
69
<modulePath path="$PROJECT_DIR$/batik/solutions/de.itemis.stubs.batik.msd" folder="" />
710
<modulePath path="$PROJECT_DIR$/blutil/languages/com.mbeddr.mpsutil.blutil.genutil/com.mbeddr.mpsutil.blutil.genutil.mpl" folder="blutil" />
@@ -14,7 +17,6 @@
1417
<modulePath path="$PROJECT_DIR$/blutil/tests/test.com.mbeddr.mpsutil.blutil/test.com.mbeddr.mpsutil.blutil.msd" folder="blutil" />
1518
<modulePath path="$PROJECT_DIR$/blutil/tests/test.ts.conceptswitch/test.ts.conceptswitch.msd" folder="blutil" />
1619
<modulePath path="$PROJECT_DIR$/blutil/tests/test.ts.match/match.msd" folder="blutil" />
17-
<modulePath path="$PROJECT_DIR$/build/solutions/allScripts/allScripts.msd" folder="build" />
1820
<modulePath path="$PROJECT_DIR$/build/solutions/de.itemis.mps.extensions.build/de.itemis.mps.extensions.build.msd" folder="build" />
1921
<modulePath path="$PROJECT_DIR$/celllayout/languages/de.itemis.mps.celllayout/de.itemis.mps.editor.celllayout.styles.mpl" folder="celllayout" />
2022
<modulePath path="$PROJECT_DIR$/celllayout/languages/de.itemis.mps.editor.celllayout.sandboxlang/de.itemis.mps.editor.celllayout.sandboxlang.mpl" folder="celllayout" />
@@ -41,7 +43,6 @@
4143
<modulePath path="$PROJECT_DIR$/conditional-editor/languages/de.slisson.mps.conditionalEditor/de.slisson.mps.conditionalEditor.mpl" folder="conditional-editor" />
4244
<modulePath path="$PROJECT_DIR$/conditional-editor/solutions/de.slisson.mps.conditionalEditor.runtime/de.slisson.mps.conditionalEditor.runtime.msd" folder="conditional-editor" />
4345
<modulePath path="$PROJECT_DIR$/conditional-editor/solutions/de.slisson.mps.conditionalEditor.sandbox/de.slisson.mps.conditionalEditor.sandbox.msd" folder="conditional-editor" />
44-
<modulePath path="$PROJECT_DIR$/conditional-editor/solutions/test.de.slisson.mps.conditionalEditor/test.de.slisson.mps.conditionalEditor.msd" folder="conditional-editor" />
4546
<modulePath path="$PROJECT_DIR$/debug/languages/de.itemis.mps.debug/de.itemis.mps.debug.mpl" folder="debug" />
4647
<modulePath path="$PROJECT_DIR$/debug/solutions/de.itemis.mps.debug.runtime/de.itemis.mps.debug.runtime.msd" folder="debug" />
4748
<modulePath path="$PROJECT_DIR$/devkits/de.q60.mps.genplan.virutalinterfaces_incremental.devkit/de.q60.mps.genplan.virutalinterfaces_incremental.devkit.devkit" folder="shadowmodels.examples.interpreter" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:233afdd2-5b93-4bb1-a8ae-806b32fb42a6(test.nl.f1re.mps.aliascustomization.demolang.generator.templates@generator)">
3+
<persistence version="9" />
4+
<languages>
5+
<devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
6+
</languages>
7+
<imports />
8+
<registry>
9+
<language id="b401a680-8325-4110-8fd3-84331ff25bef" name="jetbrains.mps.lang.generator">
10+
<concept id="1095416546421" name="jetbrains.mps.lang.generator.structure.MappingConfiguration" flags="ig" index="bUwia" />
11+
</language>
12+
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
13+
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
14+
<property id="1169194664001" name="name" index="TrG5h" />
15+
</concept>
16+
</language>
17+
</registry>
18+
<node concept="bUwia" id="3r2yrqnhHxY">
19+
<property role="TrG5h" value="main" />
20+
</node>
21+
</model>
22+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<model ref="r:d15993ba-7da5-46a9-b467-486db3994b31(test.nl.f1re.mps.aliascustomization.demolang.editor)">
3+
<persistence version="9" />
4+
<languages>
5+
<use id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor" version="15" />
6+
<use id="aee9cad2-acd4-4608-aef2-0004f6a1cdbd" name="jetbrains.mps.lang.actions" version="4" />
7+
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
8+
</languages>
9+
<imports>
10+
<import index="hx4v" ref="r:143d8fbb-9206-40d4-9eea-833943255ba9(test.nl.f1re.mps.aliascustomization.demolang.structure)" implicit="true" />
11+
<import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
12+
</imports>
13+
<registry>
14+
<language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
15+
<concept id="1071666914219" name="jetbrains.mps.lang.editor.structure.ConceptEditorDeclaration" flags="ig" index="24kQdi" />
16+
<concept id="1080736578640" name="jetbrains.mps.lang.editor.structure.BaseEditorComponent" flags="ig" index="2wURMF">
17+
<child id="1080736633877" name="cellModel" index="2wV5jI" />
18+
</concept>
19+
<concept id="1078939183254" name="jetbrains.mps.lang.editor.structure.CellModel_Component" flags="sg" stub="3162947552742194261" index="PMmxH">
20+
<reference id="1078939183255" name="editorComponent" index="PMmxG" />
21+
</concept>
22+
<concept id="1166049232041" name="jetbrains.mps.lang.editor.structure.AbstractComponent" flags="ng" index="1XWOmA">
23+
<reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
24+
</concept>
25+
</language>
26+
</registry>
27+
<node concept="24kQdi" id="4I3JdQwH35A">
28+
<ref role="1XX52x" to="hx4v:6eakByRhOlw" resolve="ChangeAlias" />
29+
<node concept="PMmxH" id="4I3JdQwH35C" role="2wV5jI">
30+
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
31+
</node>
32+
</node>
33+
</model>
34+

0 commit comments

Comments
 (0)