MPS 2021.3 bietet Coderules, experimentelle Kotlin-Unterstützung, Java-Lambdas, eine Reihe von VCS-Verbesserungen und vieles mehr.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Aus kompatiblen MPS-Closures werden jetzt Lambda-Ausdrücke in Java generiert. Eine Inkompatibilität tritt bei der Verwendung der folgenden Elemente auf:
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.
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)
.
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.
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.
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.
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.
In MPS 2021.3 zeigt die IDE die Unterschiede zwischen Commits in einem separaten Changes-Toolfenster links neben dem Editor an.
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.
Wie bei jedem Release haben wir einen Migrationsleitfaden für Sie erstellt, um einen reibungslosen Umstieg von einer älteren Version zu ermöglichen.