Das ist neu in MPS 2020.1

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!

Je nach Listenposition unterschiedliche Trennzeichen verwenden

Je nach Listenposition unterschiedliche Trennzeichen verwenden

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.

Weitere Informationen

Light-Patterns

Light-Patterns

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.

Weitere Informationen

Tooltips

Tooltips

The editor extension of the Tooltips from mbeddr platform has been added to MPS. Für die mbeddr-Sprache wird auch eine Migration bereitgestellt.

Weitere Informationen

Menüs für Transformieren/Ersetzen: benannte und Standardmenüs zusammengeführt

Menüs für Transformieren/Ersetzen: benannte und Standardmenüs zusammengeführt

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.

Fehlererkennung für fehlerhafte Editoren

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.

Weitere Informationen

Vorhandenen Text überschreiben

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.

Weitere Informationen

Unnötige Spracherweiterungen eliminieren

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.

Weitere Informationen

Javadoc-Kommentare in Java-Stub-Modellen

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.

Weitere Informationen

Mehrzeilige Kommentare in der BaseLanguage

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.

Von Java inspirierte BaseLanguage-Verbesserungen

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.

Siehe Migration-Guide

Andere Verbesserungen

Nicht modale Commit-Oberfläche

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”.

Zen-Modus

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.

Git installieren, ohne die IDE zu verlassen

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.

Pfad für Konfigurationsdateien

Beachten Sie, dass sich in MPS 2020.1 der Pfad zu den Konfigurationsdateien geändert hat.

Weitere Informationen

JetBrains Mono als Standardschrift

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.

MPS bekommt Zugang zum Marketplace

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.