MPS 2020.1 bietet Verbesserungen für den Editor, die Light-Mustersprache, Javadocs für Stub-Modelle, Verbesserungen für BaseLanguage und viele neue Funktionen!
Beim Bearbeiten von Knoten mit der Kardinalität (0,n) oder (1,n) gab es bisher schon die Möglichkeit, durch Implementieren einer Trennzeichen-Abfragefunktion ein benutzerdefiniertes Trennzeichen zwischen den Werten zu verwenden. Diese Funktion wurde jetzt erweitert: Die Abfragefunktion nimmt mehr Argumente (prevNode und nextNode) entgegen, sodass für jedes Wertepaar ein benutzerdefiniertes Trennzeichen definiert werden kann. Im folgenden Screenshot werden »and« bzw. »,« als Trennzeichen verwendet.
Mithilfe der Pattern-Sprache können Strukturmuster definiert und ihnen Knoten zugeordnet werden. Dabei werden reguläre Konzepteditoren verwendet, in denen das Pattern ähnlich dargestellt wird wie die Knoten, die es akzeptiert. Bei einigen komplexen Editoren, die nicht genau der Konzeptstruktur entsprechen, kann es jedoch praktischer sein, Light-Patterns (Pattern-Builder) zu verwenden, welche die erforderliche Struktur wörtlich beschreiben.
The editor extension of the Tooltips from mbeddr platform has been added to MPS. Für die mbeddr-Sprache wird auch eine Migration bereitgestellt.
Diese Verbesserung vereinfacht die Transformation- und Substitution-Menüs, indem die speziellen Konzepte für benannte (SubstituteMenu_Named) und Standard-Editormenüs (SubstituteMenu_Default) entfernt werden. Beide Konzepte wurden mit ihrem jeweiligen übergeordneten Element (SubstituteMenu) zusammengeführt. Der Menütyp wird jetzt im Menüeditor ausgewählt. Die Transformation-Menüs wurden auf dieselbe Art und Weise refaktoriert.
Wenn Code im Editoraspekt einer Sprache eine Ausnahme auslöst, wird der Standardeditor für die entsprechende Zelle eines in der Sprache geschriebenen Modells aufgerufen. Ab 2020.1 wird im Messages-Toolfenster ein Fehler angezeigt, wenn eine solche fehlerhafte Zelle im Editor geöffnet wird. Sie können den Stack-Trace des Fehlers abrufen und von dort zur problematischen Zelle navigieren.
Das Überschreiben von vorhandenem Text ist eine neue Funktion, mit der sich der projizierende Editor eher wie ein Texteditor anfühlt. Wenn beim Tippen in einer Textzelle das gerade eingegebene Zeichen bereits an der Cursorposition vorhanden ist, wird der Cursor so weiterbewegt, als hätten Sie das vorhandene Zeichen überschrieben. Diese Funktion wird nur ausgelöst, wenn der Tastenanschlag nicht ordnungsgemäß verarbeitet werden kann und andernfalls ignoriert würde (z. B. in konstanten Zellen) oder wenn er zu einem ungültigen Zelleninhalt führen würde.
Diese Funktion ist standardmäßig aktiviert und kann unter Settings / Editor / General
deaktiviert werden.
Der Generator erkennt jetzt Editorerweiterungen für andere Sprachen und generiert Code, der die Abhängigkeit explizit manifestiert. Dies bedeutet, dass sich die Sprachdesigner nicht um diese spezielle Abhängigkeit zwischen den Sprachen kümmern müssen. Die Aktivierung von Editorerweiterungen setzt nicht länger eine 'extends'-Abhängigkeit zwischen den Sprachmodulen voraus.
Mit einem neuen Mechanismus kann eine Zip-Datei angegeben werden, die neben dem Jar-Paket einer Bibliothek auch die Quelldateien der Bibliothek enthält. MPS kann jetzt Javadocs aus den Quelldateien extrahieren und sie zusammen mit Informationen aus den Klassendateien anzeigen.
Die Funktionalität von SingleLineComment wurde geringfügig erweitert, und das neu in der BaseLanguage eingeführte Konzept MultiLineComment ermöglicht Kommentare zwischen /* … */
– wie bei Java.
Die BaseLanguage enthält jetzt try-with-resources, catch für mehrere Ausnahmen, Typinferenz für lokale Variablen sowie default- und private-Bezeichner für Schnittstellenmethoden. Zugunsten der Kompatibilität mit Build-Prozessen, die eine bestimmte Java-Sprachstufe erfordern, kann jede Lösung so konfiguriert werden, dass Sprachmerkmale, die nicht mit der entsprechenden Sprachstufe kompatibel sind, untersagt werden. Mit Ausnahme von local variable type inference, das j.m.baseLanguage.varVariable
voraussetzt, erfordern diese Funktionen keine zusätzlichen Sprachimporte.
Um den Commit-Flow zu optimieren, haben wir ein neues Commit-Toolfenster konzipiert, das Sie bei allen Commit-bezogenen Aufgaben unterstützt. Das Toolfenster bietet mehr Platz für die Liste der geänderten Dateien und die Diff-Anzeige, und Sie können einem Commit jederzeit Änderungen hinzufügen, Commit-Nachrichten iterativ verfassen und auswählen, welche Änderungen im Staged-Bereich in welchen Commit übernommen werden sollen.
Es ist standardmäßig nicht aktiviert. Wenn Sie es ausprobieren möchten, wählen Sie unter Preferences/Settings | Version Control | Commit
die Option "Use non-modal commit interface”.
In diesem neuen Modus können Sie sich auf Ihren Code konzentrieren, da die Vollbildansicht und der Distraction Free Mode kombiniert werden. Probieren Sie den Zen-Modus unter View | Appearance | Enter Zen Mode
aus.
Sie müssen Git nicht mehr manuell vorinstallieren. Wenn Sie ein bestehendes Git-Repository klonen, sucht die IDE nach der Git-Programmdatei auf Ihrem Computer. Wird sie nicht gefunden, bietet die IDE an, Git herunterzuladen und für Sie einzurichten.
Beachten Sie, dass sich in MPS 2020.1 der Pfad zu den Konfigurationsdateien geändert hat.
MPS verwendet jetzt standardmäßig die brandneue Schriftart JetBrains Mono (unter Preferences / Settings | Editor | Font
können Sie die Einstellung ändern). Details zu unserer neuen entwicklerfreundlichen Schriftart finden Sie auf unserer Webseite.
JetBrains Plugin Marketplace is now available in MPS. Dies eröffnet Ihnen zahlreiche neue Möglichkeiten – so können Sie zum Beispiel Ihre Plugins kommerziell anbieten.