MPS 2021.1 bietet Unterstützung für Java-Annotationen, zahlreiche VCS-Verbesserungen, Apple-Silicon-Unterstützung und vieles mehr.
Die Schriftgröße in einem geöffneten Editorfenster kann jetzt sehr einfach angepasst werden, indem Sie mit gedrückter Strg/Cmd-Taste das Mausrad drehen. Die Änderung der Schriftgröße ist nicht dauerhaft. Wenn Sie die Datei erneut öffnen, wird der Text wieder in der Standardgröße angezeigt. Sie können diese Funktion unter Preferences | Editor | General mit folgender Einstellung ein- und ausschalten: Change font size with Ctrl/Cmd+Mouse Wheel.
Die Implementierung des Einrückungslayouts (indent layout) erfolgt in einigen wichtigen Fällen inkrementell. Dies verkürzt die Rendering-Zeit bei großen Modellen in Sprachen, die hauptsächlich das Einrückungslayout verwenden (z. B. BaseLanguage). Diese Funktion kann mit der VM-Option mps.indent_layout.disable_incremental deaktiviert werden.
Die Auswahl einer Editor-Schriftart, die Ihren Augen auch nach stundenlanger Betrachtung nicht zusetzt, ist von entscheidender Bedeutung. Die kürzlich hinzugefügten Typografie-Einstellungen erleichtern diese Auswahl und ermöglichen individuellere Einstellungen. In v2021.1 können Sie unter Preferences | Editor | Fonts die Dicke der verwendeten Normal- und Fettschrift optimieren.
Die Versionierungsunterstützung wurde um Verbesserungen hinsichtlich der Root-Annotation ergänzt. Zur Berechnung von Revisionsänderungen wird jetzt für die Root-Annotation ein neuer Algorithmus mit Bewegungsverfolgung verwendet. Die Farben für Zeilen/Zellen mit Annotationen werden nur anhand der Revisionen bestimmt, bei denen der Root geändert wurde. Die annotierten Zellen verfügen jetzt über eine spezielle Kontextmenügruppe, wenn die Annotation-Spalte geöffnet ist. Sie können auf jede annotierte Zelle Aktionen wie Copy Revision Number, Show Diff usw. anwenden.
Der Diff-Dialog ist für Merge-Commits im Git-Log aktiviert. Die Anzeige ist in drei Bereiche geteilt: In der Mitte wird das durch den Merge-Vorgang entstandene Modell angezeigt, während links und rechts die Modelle der beiden zusammengeführten Branches zu sehen sind.
Die Bildlaufsynchronisation im Diff-Dialog kann jetzt mit einer Schaltfläche ausgeschaltet werden.
Die Algorithmen für die Root-Annotation und den Root-/Knoten-Verlauf basierten zuvor auf der geordneten Liste der Dateirevisionen; es wurden jeweils die Root-Änderungen zwischen zwei benachbarten Revisionen berechnet. Diese Revisionen stammten jedoch bisweilen aus zwei verschiedenen Branches, und dann ergaben die resultierenden Änderungen keinen Sinn. Merge-Revisionen wurden ebenfalls nicht korrekt behandelt. Änderungen aus älteren Revisionsrunden wurden zum Teil fälschlicherweise der neueren Merge-Revision zugerechnet. Der Algorithmus berücksichtigt jetzt das Revisionsdiagramm bei der Bestimmung des Änderungsverlaufs.
Mit der neuen Aktion Save to Shelf können Sie Ihre Änderungen im Shelf speichern, während Sie sie auch in den lokalen Änderungen behalten. Um auf diese Aktion zuzugreifen, drücken Sie ⇧⌘A unter macOS (Strg+Umschalt+A unter Windows oder Linux) und geben Sie „Save to Shelf“ ein.
Sie können jetzt auf den Eingabeknoten eines LOOP-Makros mit einem LOOP.inputNode-Ausdruck verweisen. Dadurch entfällt die Notwendigkeit, ein VAR-Makro zu verwenden. Der Index der LOOP ist außerdem als LOOP.index in demselben Namensraum zugänglich und ersetzt die bisher verwendete benutzerdefinierte Kontextvariable.
Um die Erweiterbarkeit des Generierungsplans zu verbessern, können mit einem neuen Mechanismus Sprachen oder Generatoren inkludiert werden, die dem Plandesigner nicht bekannt sind. Mit der Anweisung transform kann der Sprachdesigner eine Sprache inkludieren, die auf eine bestimmte Sprache abzielt oder diese erweitert. Wenn wir sagen, dass Sprache B auf Sprache A „abzielt“, meinen wir damit, dass der Generator von Sprache B Konstrukte in der Sprache A erzeugt.
Wenn die entsprechende Option aktiv ist, prüfen kompilierte Vorlagen in MPS 2021.1, ob untergeordnete Elemente ordnungsgemäß in übergeordneten Knoten untergebracht sind.
Bei der Java-Kompilierung von MPS-Modulen hat sich eine Menge geändert. Dabei ging es uns um eines der meistvotierten Tickets: Unterstützung für die Annotation-Verarbeitung. Wir haben die Java-Compiler-Infrastruktur in MPS auf die Verwendung der javax.tools.JavaCompiler-APIs umgestellt. Auf diese Weise kann MPS jetzt jeden Compiler verwenden, der diese Standard-API implementiert. Ab Version 2021.1 verwendet MPS den für diese API konfigurierten Standardcompiler, mit der Option, den Eclipse Compiler for Java (ECJ) zu verwenden.
Bei der Erstellung eines neuen Projekts wird jetzt eine MPS-Basisversion (baseline version) gespeichert. Projektmigrationen von älteren MPS-Versionen als der Basisversion des Projekts werden nicht angewendet. Dies gibt Autoren die Flexibilität, Projektmigrationen eine bestimmte gewünschte Basisversion zuzuweisen. Diese kann in der Projektmigrationsoberfläche mit der neuen Methode „getBaselineVersion():int“ geändert werden.
Das Refactoring Method Signature bietet jetzt die Möglichkeit, für neue Argumente oder solche, deren Typ geändert wurde, Standardwerte vorzugeben. Wird ein entfernter Parameter weiterhin in der Methode verwendet, so wird eine neue lokale Variable eingeführt, damit die Referenz nicht verloren geht. Wenn der Aufruf einer Methode nicht deren Signatur entspricht, können Sie mit einer Intention-Aktion die Methodensignatur an den Aufruf anpassen.
Die lang.text-Sprache wurde um neue Fähigkeiten erweitert, die in direkten Verbesserungen für ein- und mehrzeilige Kommentare in der BaseLanguage resultieren.
Die Ausdrücke model.roots(), model.rootsIncludingImported() und model.nodesIncludingImported() unterstützen jetzt wie model.nodes() die Verwendung von #expression zur Spezifizierung von Konzepten.
Plugins informieren MPS mithilfe des Erweiterungspunkts com.intellij.mps.LanguageLibrary
über Module, zu denen sie beitragen. Erweiterungspunkte können jetzt optional ein Attribut hide="true"
angeben. Dadurch können die Module des Plugins mithilfe eines Musters gefiltert werden, die in com.intellij.mps.VisibleModuleMask
angegeben wird.
Mit der neuen integrierten Browser-Vorschau können Sie sich unkompliziert HTML-Dateien anzeigen lassen. Um die Vorschau zu öffnen, klicken Sie im Widget in der oberen rechten Ecke des Editors auf das Symbol mit dem MPS-Logo. Wenn Sie Änderungen am HTML-Code vornehmen oder die verknüpften CSS- und JavaScript-Dateien ändern, wird die Vorschau sofort aktualisiert.
MPS kann jetzt auf Macs mit M1-Chip verwendet werden. Um loszulegen, laden Sie das Installationsprogramm von JetBrains MPS für Apple Silicon direkt von unserer Website oder über die JetBrains Toolbox App herunter.
Der Dialog Import Settings, der bei jeder Installation einer neuen MPS-Version angezeigt wurde, wird ab MPS 2021.1 nur dann geöffnet, wenn die entsprechenden Einstellungen und Konfigurationen nicht vorhanden sind.
In dieser Version haben weitere UI-Elemente auf dem Begrüßungsbildschirm, in der Projektstruktur-Ansicht und im VCS-Protokoll Beschriftungen erhalten. Diese Elemente sowie die Randleistensymbole werden jetzt von Screenreadern korrekt vorgelesen. Wir arbeiten daran, die Barrierefreiheit auch auf macOS zu verbessern.