MPS 2025.3 führt eine umfassende Überarbeitung der JavaDoc-Sprache, grundlegend geänderte Generierungspläne und ein umfangreiches Update des reflektiven Editors ein. Zu den weiteren Neuerungen gehören Tastaturaktionen in der Logical-Ansicht sowie die Möglichkeit, mit TextIcon visuell unterschiedliche Varianten für helle und dunkle Designs anzubieten.
Die vollständige Liste der Änderungen finden Sie weiter unten.
Die JavaDoc-Sprache wurde vollständig auf jetbrains.mps.lang.text für die Textrepräsentation und -bearbeitung migriert. Diese Änderung sollte nur minimale Auswirkungen auf die allgemeine Nutzungserfahrung haben. Sie behebt jedoch zahlreiche Probleme:
jetbrains.mps.lang.text verwenden, beispielsweise BaseLanguage-Kommentare oder Struktursprache-Dokumentationen. Weitere Informationen zur Textbearbeitung finden Sie auf der Seite des Documentation-Facets. jetbrains.mps.lang.text verwendet wird, kopiert und eingefügt werden. Auch einfacher Text kann kopiert und eingefügt werden. Nebenbei wurden mehrere Probleme in Bezug auf die JavaDoc-Sprache gelöst:
jetbrains.mps.lang.text anstelle von String-Eigenschaften verwendet. Dadurch stehen innerhalb von Block-Tags dieselben Funktionen zum Bearbeiten, Kopieren, Einfügen und Formatieren zur Verfügung. {@literal ...} eingeführt. CodeSnippet löst lokale Variablen korrekt auf. NodeWrapper führt für die enthaltenen Knoten eine korrekte Textgenerierung durch. Zusätzlich zu den bestehenden Aktionen Paste as Java Statement und Paste as Class Content unterstützt die überarbeitete JavaDoc-Sprache eine neue Aktion, die das einfache Einfügen von JavaDoc-Codetext in die BaseLanguage ermöglicht. Diese neue Aktion gewährleistet in erster Linie das korrekte Parsen Ihres JavaDoc-Codes in JavaDoc-Textzeilen, -Block-Tags und -Inline-Tags, inklusive der Auflösung eventueller Referenzen (z. B. in @param- oder {@link }-Tags).
Die neue Aktion Paste as JavaDoc parst den Text aus der Zwischenablage und fügt ihn in einen JavaDoc-Kommentar an der aktuellen Cursorposition ein. Wenn sich der Cursor nicht in einem vorhandenen JavaDoc-Kommentar befindet, hängt die Aktion die geparsten JavaDoc-Elemente an das JavaDoc der nachfolgenden Feld-, Methoden- oder Klassendefinition an, wobei für diese bei Bedarf eine neue JavaDoc-Datei angelegt wird.
Wir haben wesentliche Verbesserungen an Generierungsplänen vorgenommen, um die Nutzungserfahrung bei komplexen Modelltransformationen zu optimieren. Ein neues Konzept namens PlanContribution ersetzt vollständig die experimentelle Funktion fork as, die wir in Version 2024.1 eingeführt haben.
Darüber hinaus haben wir einen Mechanismus eingeführt, mit dem das Modell eines Branches (der aus einem Plan oder einer Plan-Contribution stammt) mit zusätzlichen Attributen versehen werden kann. Ein möglicher Anwendungsfall hierfür ist, wenn der Sprach- bzw. Plan-Designer mit benutzerdefinierten Modellattributen das Ergebnis eines bestimmten Branches für die weitere Verarbeitung kennzeichnen möchte. Ein Attribut, das von MPS selbst verwendet wird, ist targetFacet (siehe das Modell jetbrains.mps.generator.extensions.common), das <mps.make> mitteilt, welches GenerationTargetFacet/ModuleFacet beim Festlegen eines geeigneten Ausgabeortes für ein Modell zu konsultieren ist.
Sowohl der fork-Schritt als auch ein PlanContribution in einem Generierungsplan können in Abhängigkeit von Bedingungen aktiviert werden. Damit ist es möglich, bestimmte Branches eines Plans nur bei Erfüllung bestimmter Kriterien zu aktivieren. Derzeit enthält MPS eine Bedingungsanweisung, die die Werte bestimmter Planparameter prüft. Wir beabsichtigen, die Anweisungen um die Unterstützung logischer Operationen (and/or) sowie anderer potenzieller Operationen zu erweitern, wobei eine strenge Interpretation von Generierungsplänen beibehalten wird (d. h. kein BaseLanguage-Code in Plänen).
Sprachdesigner können benutzerdefinierte ParameterDeclaration-Klassen bereitstellen. Die Werte dieser Parameter können über einen PlanParameterContributor-Erweiterungspunkt bereitgestellt werden. MPS bringt einige vordefinierte Parameter mit, die sofort einsatzbereit sind – ausführliche Informationen hierzu finden Sie im Modell jetbrains.mps.generator.extensions.common.
Die TextIcon-Ebenen können nun so konfiguriert werden, dass sie nur für das helle oder dunkle oder für beide Farbschemata gelten sollen. Darüber hinaus können die Farbliterale in TextIcon-Definitionen unterschiedliche Werte für helle und dunkle Farbschemata angeben.
Der reflektive (Standard-)Editor hat ein neues Erscheinungsbild bekommen. Der schreibgeschützte Standardeditor wurde mit dem reflektiven Editor zusammengeführt, sodass es nun keine Verwirrungen mehr aufgrund der Existenz zweier Editoren gibt.
Der Ablauf für die tastaturbasierte Erstellung neuer Elemente im Logical-Bereich der Project-Ansicht wurde erheblich verbessert. Neue Module, Modelle und Knoten können nun ohne Verwendung einer Maus angelegt werden.
Beim Hervorheben der Verwendungen des Knotens unter dem Cursor werden jetzt nur noch Referenzen hervorgehoben, die tatsächlich im Editor sichtbar sind. Verwendungen in Knoten, die im Knoteneditor nicht angezeigt werden, werden nicht hervorgehoben.
MPS 2025.3 enthält zahlreiche Fehlerkorrekturen. Die vollständige Liste der Fehlerkorrekturren finden Sie hier.
Die neuen Islands-Designs befinden sich im Installationsumfang von MPS 2025.3 und sind standardmäßig aktiviert.
Für jede Hauptversion bieten wir eine Anleitung für die Migration von älteren MPS-Versionen, um einen reibungslosen Umstieg zu gewährleisten. Bitte überprüfen Sie sie sorgfältig im aktualisierten Migrationsleitfaden.