Das ist neu in MPS 2021.3

MPS 2021.3 bietet Coderules, experimentelle Kotlin-Unterstützung, Java-Lambdas, eine Reihe von VCS-Verbesserungen und vieles mehr.

Coderules

Es ist kein Geheimnis, dass wir seit einigen Jahren an einem neuen Typsystem arbeiten. Dieser Weg war weder einfach noch geradlinig, aber jetzt sind wir endlich soweit, Ihnen etwas präsentieren zu können. Coderules befindet sich noch im Betastadium und wird daher nicht mit MPS gebündelt.

Da es sich hierbei um ein komplettes Subsystem handelt, haben wir einen Onlinekurs entwickelt, der Sie in die Grundlagen einführt.

Zum Kurs

Experimentelle Kotlin-Unterstützung

Experimentelle Kotlin-Unterstützung

Eine experimentelle Kotlin-Implementierung befindet sich jetzt im Lieferumfang von MPS. Zwar werden die meisten Strukturelemente der Sprache (und die entsprechende Textgenerierung) unterstützt, aber die Unterstützung bleibt weiterhin unvollständig.

Weitere Informationen.

Aktion „Revision ausblenden“ bei Annotationen

Aktion „Revision ausblenden“ bei Annotationen

Mit der neuen Aktion Hide Revision können Sie eine Revision direkt aus dem Annotationsergebnis ausschließen und das Ergebnis sowohl im Editor als auch in der Randleiste anzeigen. RevisionDie ausgeschlossenen Revisionen können mit der gegenläufigen Aktion Restore Hidden Revisions (Ausgeblendete Revisionen wiederherstellen) wiederhergestellt werden.

Weitere Informationen.

Optimierte Ergebnisberechnung in der Aktion „ Annotate Revision“

Die Aktion Annotate in MPS ist nicht so schnell wie git blame für Textdateien, da das Annotationsergebnis für die Modelle erstellt wird. Die Aktionen Annotate revision und Annotate previous revision verwenden denselben Algorithmus zur Berechnung des Ergebnisses wie die Aktion Annotate und waren daher ebenfalls langsam. Aus dem Ergebnis der ursprünglichen Annotate-Aktion kann das Ergebnis der Aktionen Annotate revision und Annotate previous revision sofort berechnet werden.

Details-Dialog in Merge-Stammelementen

Details-Dialog in Merge-Stammelementen

Die Aktion Show Details wurde eingeführt, um beim Merging mehr Details über die Branches anzuzeigen. Die Aktion ist über das Fenster „Merge revision“ zugänglich.

Kurze Änderungsbeschreibungen in den Tooltips im Diff-Dialog

Kurze Änderungsbeschreibungen in den Tooltips im Diff-Dialog

Wir haben eine neue Aktion eingeführt, mit der Sie die Beschreibungen der Änderungen in den Tooltips des Diff-Dialogs ändern können. Die Beschreibungen werden dadurch kürzer und besser lesbar.

Verbesserte Editor-Tooltips
Von Kunden gewünscht

Wenn Sie auf die Links in den Tooltips klicken, bleibt das Tooltip-Popup jetzt im Hauptfenster der Anwendung. Außerdem kann in Tooltips mit viel Text jetzt gescrollt werden.

Neuer Diff-Algorithmus im Merge-Prozess

Neuer Diff-Algorithmus im Merge-Prozess
Von Kunden gewünscht

Der neue Algorithmus wurde entwickelt, um bei neuen Änderungsarten das Identifizieren von in Konflikt stehenden, konfliktfreien und symmetrischen Änderungen zu ermöglichen. Wir haben die Bedienoberfläche um eine Möglichkeit erweitert, im Merge-Fenster zwischen den Algorithmen mit und ohne Verfolgung von Knotenverschiebungen zu wechseln.

Weitere Informationen.

Erkennung von verschachtelten Umschließungen und Umschließungsentfernungen im Diff-Dialog

Erkennung von verschachtelten Umschließungen und Umschließungsentfernungen im Diff-Dialog
Von Kunden gewünscht

Zwar war es auch bisher möglich, interne Einfügungen, Löschungen und Verschiebungen innerhalb einer hinzugefügten oder entfernten Umschließung zu erkennen, verschachtelte Umschließungsänderungen wurden jedoch nicht erkannt. Jetzt werden verschachtelte Umschließungen und Umschließungsentfernungen erkannt.

VCS-Einstellungen mit neuer Struktur

VCS-Einstellungen mit neuer Struktur

Die VCS-Einstellungen wurden neu geordnet und sind nun einfacher zu finden und zu verwenden. Unter Preferences/Settings | Version Control finden Sie eine Liste der verfügbaren Konfigurationseinstellungen für Ihre Versionsverwaltung. Außerdem haben wir einen separaten Knoten für Verzeichniszuordnungen hinzugefügt, und die Hintergrundoperationen sind jetzt standardmäßig aktiviert.

Wenn Sie zum Git-Knoten navigieren, werden Sie feststellen, dass wir die Einstellungen in Abschnitte unterteilt haben, die den wichtigsten Vorgängen entsprechen: Commit, Push und Update.

Generierung von Java-Lambdas aus kompatiblen Closures

Generierung von Java-Lambdas aus kompatiblen Closures
Von Kunden gewünscht

Aus kompatiblen MPS-Closures werden jetzt Lambda-Ausdrücke in Java generiert. Eine Inkompatibilität tritt bei der Verwendung der folgenden Elemente auf:

  • Yield-Operationen
  • „Funktionale“ abstrakte Klassen
  • Annotationen
  • Lokale Variablen im Konflikt mit dem übergeordneten Gültigkeitsbereich

Weitere Informationen.

Mapping-Label für Tupel

Mapping-Label für Tupel
Von Kunden gewünscht

Wir haben eine experimentelle Funktion eingeführt, um ein Knotenpaar als Schlüssel für das Mapping zu verwenden: node<>, node<> --> node<>. Dies ist in Situationen nützlich, in denen zwei Quellkonzepte unterstützt werden sollen. Wenn Sie es ausprobieren möchten: Die Verwendung erfolgt genauso wie bei Labels mit einem Schlüsselknoten.

Weitere Informationen.

Zugriff auf alle Werte von Zwei-Schlüssel-Mappings in Generatoren
Von Kunden gewünscht

Neben der Funktion Mapping-Label für Tupel unterstützen wir jetzt auch das Abfragen aller bekannten Mappings für zwei gegebene Schlüssel: genContext.get output list LABEL for (node1, node2).

Performance Trace zeigt die Zeit zum Auflösen dynamischer Referenzen

Aufgrund zahlreicher Gültigkeitsbereich-Evaluierungen wird die Modell-zu-Modell-Transformation durch das Auflösen dynamischer Referenzen oft verlangsamt. Performance Trace versteckt diese wichtige Information unter der vagen Überschrift „Restoring references“. Jetzt wird die Wiederherstellungszeit für dynamische Referenzen und reguläre/statische Referenzen getrennt ausgewiesen.

Verbesserungen bei der Projektmigration

Verbesserungen bei der Projektmigration

Diese Version vereinfacht den Prozess der Projektmigration. Sie müssen nur eine Plugin-Lösung erstellen, den Migrationscode schreiben, das Anwendungs-Plugin-Stammelement schreiben und diese Plugin-Lösung in das Build-Skript einbinden.

Verbesserungen für den Ant-Task <migrate>

Der Ant-Task <migrate> unterstützt jetzt mehrere Projektspezifikationen und kann mehrere Projekte auf einmal migrieren. Sie können entweder verschachtelte <project path="”/>-Elemente oder die Ant-üblichen <dirset>-Elemente verwenden, um die Projektpfade für den Task anzugeben.

Checkout and Rebase onto Current für Remote-Branches

Checkout and Rebase onto Current für Remote-Branches

Mit der Aktion Checkout und Rebase onto Current können Sie den ausgewählten Branch auschecken und ein Rebasing auf dem aktuell ausgecheckten Branch durchführen. Bisher war dies nur für lokale Branches möglich, aber in MPS 2021.3 können Sie die Aktion auch auf Remote-Branches anwenden.

Neues Changes-Toolfenster

Neues Changes-Toolfenster

In MPS 2021.3 zeigt die IDE die Unterschiede zwischen Commits in einem separaten Changes-Toolfenster links neben dem Editor an.

Neue Aktion Push All up to Here

Neue Aktion Push All up to Here

Diese Funktion bietet Ihnen die Möglichkeit, nur diejenigen Commits zu pushen, von denen Sie überzeugt sind – den Rest können Sie für später aufheben. Um diese Funktion zu verwenden, wählen Sie den Commit aus, bei dem Sie den Push-Vorgang anhalten möchten, klicken Sie mit der rechten Maustaste darauf, und wählen Sie im Kontextmenü die neue Aktion Push All up to Here aus.

Migrationsleitfaden 2021.3

Wie bei jedem Release haben wir einen Migrationsleitfaden für Sie erstellt, um einen reibungslosen Umstieg von einer älteren Version zu ermöglichen.