Skip to content

Commit

Permalink
Merge pull request #824 from JetBrains/merge/mps20222
Browse files Browse the repository at this point in the history
Merge maintenance/mps20222 into maintenance/mps20223
  • Loading branch information
sergej-koscejev authored May 20, 2024
2 parents 663640c + 095bfef commit 872b5ec
Show file tree
Hide file tree
Showing 76 changed files with 5,287 additions and 1,008 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,5 @@ code/model-api/org.modelix.model.api/lib
code/dependencies.txt
.idea/
*.iml

TEST*.xml
42 changes: 19 additions & 23 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ All notable changes to this project are documented in this file.
Format of the log 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.

## April 2024

### Fixed

- com.mbeddr.mpsutil.projectview: Class reloading of project views now works.
- com.mbeddr.mpsutil.editor.querylist: Query lists now support model checking for non-dynamically generated nodes and `collapse by default` is generated correctly.
- com.mbeddr.mpsutil.editor.querylist: The element's concept is not automatically forced anymore but is now rather a suggestion.
- de.slisson.mps.reflection: To fix the compilatation issues, the language is now generated earlier in the generation plan.
- de.slisson.mps.richtext: The duplicate action that overwrites the MPS action was added back and now duplicating lines should work again.

### Added

- com.mbeddr.mpsutil.editor.querylist: the `insert new` and `delete element` blocks now have an `editorContext` parameter.

## March 2024

### Added
Expand All @@ -16,12 +30,17 @@ The project does _not_ follow Semantic Versioning and the changes are documented

- de.slisson.mps.richtext: Various small issues were fixed (e.g. NullPointerExceptions, usability problems).
- de.slisson.mps.editor.multiline: Selections are now correctly painted.
- com.mbeddr.mpsutil.editor.querylist: return null in the query shows the empty cell again (regression).

### Changed

- de.slisson.mps.richtext: Words are automatically insert as the default concept for IWord.
- de.slisson.mps.richtext: The faulty duplicate line action was removed.

### Removed

- com.mbeddr.mpsutil.projectview: The broken parameter `project` from the `Is Default` condition was removed. Use the variable `mpsProject` instead.

## February 2024

### Added
Expand Down Expand Up @@ -54,45 +73,23 @@ The project does _not_ follow Semantic Versioning and the changes are documented

- com.mbeddr.mpsutil.modellisteners: The newly supported interface listeners are now backward compatible and doesn't require regenerating the listener aspects anymore.

### Changed

- de.itemis.editor.diagram: The ELK dependencies were updated to the latest version.
- de.itemis.mps.debug: The editor debug expressions were moved to a new plugin to avoid introducing a dependency to the MPS console in the celllayout language.

## December 2023

### Fixed

- de.itemis.editor.diagram: Further improvements to make the auto-layouter more stable.
- de.itemis.editor.diagram: Tooltips for edge and vertex buttons work again.
- de.itemis.editor.diagram: The size of diagram cells is now recalculated before layouting the ports to fix some layout issues.
- The size of diagram cells is now recalculated before layouting the ports to fix some layout issues.

### Added

- A new language `de.itemis.mps.statistics` was added that adds a new menu `MPS Statistics` to the `Tools` menu. The containing action writes a file `dependencies.txt` to the root folder. It contains all the used dependencies of the current project.
- de.slisson.mps.tables: tables now support a new property `column UI actions (experimental)`: This property adds actions to the MPS toolbar to add a new column above/below the current column or to delete the current column. These actions only work for simple tables that are based on rows (default: *false*).
- de.slisson.mps.richtext: The shortcuts are now documented.
- A new action `Copy Cell Reference` is available in the editor menu in `Language Debug` that creates a reference to the current select editor cell. It can be pasted into the MPS console to debug editor cells. It can be activated through ctrl/cmd+alt+c.
- A new action `Copy Editor Component Reference` is available in the editor menu in `Language Debug` that creates a reference to the current editor component. It can be pasted into the MPS console to debug editor cells. To refer to the current opened editor component, use the expression `#currentEditorComponent` in the MPS console.
- de.itemis.mps.editor.pagination: The ability to search was added.

### Fixed

- The performance of the language `de.itemis.mps.linenumbers` was improved.

### Changed

- de.slisson.mps.richtext: The code completion entries of word cells are now clearer and unnecessary entries were removed.
- mpsutil.intentions: Intentions available in read-only cells are not available anymore when the annotation showIntentionInReadyOnlyCell is not added.
- de.itemis.mps.editor.pagination: The UI was cleaned up.

## November 2023

### Fixed

- app.jar from the platform lib folder is not exported to platform_lib_app/app.jar anymore.

### Changed

- mpsutil.modellisteners: listeners on interface concepts are now supported.
Expand All @@ -104,7 +101,6 @@ The project does _not_ follow Semantic Versioning and the changes are documented
- mpsutil.intentions: a new style attribute `intentions-in-read-only-cell` is now available to allow intentions in read-only cells. Single intentions can also be enabled or disabled in those cells through the intention "Toggle Show Intention In Read-Only Cell Annotation".
- com.mbeddr.mpsutil.editor.querylist: Default editor cells now support style attributes.
- de.slisson.mps.tables: tables now support a new property `row UI actions (experimental)`: This property adds actions to the MPS toolbar to add a new row above/below the current row or to delete the current row. These actions only work for simple tables that are based on rows (default: *false*).
- de.itemis.mps.editor.pagination: The page number can now be entered directly.

## October 2023

Expand Down
78 changes: 75 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
plugins {
id 'de.itemis.mps.gradle.common' version '1.13.+'
id 'de.itemis.mps.gradle.common' version '1.24.0.+'
id "com.github.breadmoirai.github-release" version "2.4.1"
id 'maven-publish'
id 'base'
id 'de.itemis.mps.gradle.launcher' version '2.3.0.+'
}

import de.itemis.mps.gradle.*
import de.itemis.mps.gradle.tasks.MpsMigrate
import de.itemis.mps.gradle.downloadJBR.DownloadJbrForPlatform
import groovy.xml.XmlSlurper

import java.time.LocalDateTime
Expand Down Expand Up @@ -56,13 +59,14 @@ if (ciBuild) {
if (branch.matches(/(maintenance|mps)[\/-](mps)?\d+(\.\d+)*/)) {
version = "$buildMajor.$buildMinor.$buildNumber.${GitBasedVersioning.gitShortCommitHash}"
} else {
version = GitBasedVersioning.getVersionWithCount(buildMajor, buildMinor, buildNumber)
def isSnapshot = !(branch.equals("master"))
version = GitBasedVersioning.getVersionWithCount(buildMajor, buildMinor, buildNumber) + (isSnapshot ? "-SNAPSHOT" : "")
}

println "##teamcity[buildNumber '${version}']"
} else {
println "Local build detected, version will be SNAPSHOT"
version = ext.mpsMajor + appendOpt(ext.mpsMinor , '.') + "-SNAPSHOT"
println "Local build detected, version will be $version"
}

def userHome = System.properties['user.home']
Expand Down Expand Up @@ -500,3 +504,71 @@ githubRelease {
tasks.named('githubRelease').configure {
dependsOn packageExtensions
}

configurations {
rerunMigrationsBackend
}

dependencies {
rerunMigrationsBackend("de.itemis.mps.build-backends:rerun-migrations:0.0.3.+")
}

def usedPluginRoots = [
new File(mpsHomeDir, 'plugins/mps-build'),
new File(mpsHomeDir, 'plugins/mps-console'),
new File(mpsHomeDir, 'plugins/mps-tooltips'),
new File(mpsHomeDir, 'plugins/mps-vcs'),
new File(mpsHomeDir, 'plugins/mps-git4idea'),
]

tasks.register('migrate', MpsMigrate) {
dependsOn(resolveMps, 'downloadJbr', 'build_languages', 'build_tests')
javaExecutable = layout.file(
tasks.named('downloadJbr', DownloadJbrForPlatform).map { it.javaExecutable })

haltOnPrecheckFailure = true
haltOnDependencyError = true

mpsHome = mpsHomeDir

projectDirectories.from('code')

pluginRoots.from(usedPluginRoots)

maxHeapSize = '4G'
}


tasks.register('rerunMigrations', JavaExec) {
mustRunAfter('migrate')
mustRunAfter('build_languages', 'build_tests')

dependsOn(resolveMps, 'downloadJbr')
mpsBackendLauncher.builder()
.withMpsHome(mpsHomeDir)
.withJavaExecutable(tasks.named('downloadJbr', DownloadJbrForPlatform).map { it.javaExecutable.path })
.configure(it)

classpath(fileTree(mpsHomeDir) {
include("lib/**/*.jar")
})
classpath(configurations.rerunMigrationsBackend)
mainClass = 'de.itemis.mps.gradle.migrate.MainKt'

args("--project=${file('code')}")

// rerun-migrations needs its own jar added as a plugin
argumentProviders.add(new CommandLineArgumentProvider() {
@Override
Iterable<String> asArguments() {
def config = configurations.rerunMigrationsBackend

["--plugin=de.itemis.mps.buildbackends.rerun-migrations::" +
configurations.rerunMigrationsBackend.files(config.dependencies.first()).first()]
}
})

args(usedPluginRoots.collect { "--plugin-root=$it".toString() })

maxHeapSize = "4G"
}
2 changes: 0 additions & 2 deletions code/.mps/modules.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
<modulePath path="$PROJECT_DIR$/celllayout/languages/test.de.itemis.mps.editor.celllayout.lang/test.de.itemis.mps.editor.celllayout.lang.mpl" folder="celllayout" />
<modulePath path="$PROJECT_DIR$/celllayout/solutions/de.itemis.mps.editor.celllayout.sandbox/de.itemis.mps.editor.celllayout.sandbox.msd" folder="celllayout" />
<modulePath path="$PROJECT_DIR$/celllayout/solutions/de.slisson.mps.editor.celllayout.runtime/de.itemis.mps.editor.celllayout.runtime.msd" folder="celllayout" />
<modulePath path="$PROJECT_DIR$/celllayout/solutions/de.slisson.mps.editor.celllayout/de.slisson.mps.editor.celllayout.msd" folder="celllayout" />
<modulePath path="$PROJECT_DIR$/celllayout/solutions/test.de.itemis.mps.editor.celllayout.runtime/test.de.itemis.mps.editor.celllayout.msd" folder="celllayout" />
<modulePath path="$PROJECT_DIR$/conditional-editor/languages/de.slisson.mps.conditionalEditor.demolang/de.slisson.mps.conditionalEditor.demolang.mpl" folder="conditional-editor" />
<modulePath path="$PROJECT_DIR$/conditional-editor/languages/de.slisson.mps.conditionalEditor.hints/de.slisson.mps.conditionalEditor.hints.mpl" folder="conditional-editor" />
Expand Down Expand Up @@ -196,7 +195,6 @@
<modulePath path="$PROJECT_DIR$/tables/languages/de.slisson.mps.tables/sandbox/de.slisson.mps.tables.sandbox.msd" folder="tables" />
<modulePath path="$PROJECT_DIR$/tables/solutions/de.slisson.mps.testutils/de.slisson.mps.testutils.msd" folder="tables" />
<modulePath path="$PROJECT_DIR$/tables/solutions/test.de.slisson.mps.tables/test.de.slisson.mps.tables.msd" folder="tables" />
<modulePath path="$PROJECT_DIR$/testing/languages/de.itemis.mps.testing/de.itemis.mps.testing.mpl" folder="" />
<modulePath path="$PROJECT_DIR$/third-party/solutions/MPS.ThirdParty/MPS.ThirdParty.msd" folder="3rd-party" />
<modulePath path="$PROJECT_DIR$/third-party/solutions/third.party.usage.test/third.party.usage.test.msd" folder="" />
<modulePath path="$PROJECT_DIR$/tooltips/solutions/de.itemis.mps.tooltips.runtime/de.itemis.mps.tooltips.runtime.msd" folder="tooltips" />
Expand Down
Loading

0 comments on commit 872b5ec

Please sign in to comment.