Das ist neu in MPS 2024.3

In MPS 2024.3 haben wir die Bedienoberfläche verbessert, viele Komponenten intern überarbeitet und TextGen mit Binärunterstützung ausgestattet. Zu den weiteren Neuerungen zählen eine erweiterte Icon-Unterstützung und zahlreiche Plattform-Updates.

Im Folgenden stellen wir Ihnen die Verbesserungen im Detail vor.

Stammelemente für logische Ansicht

Hauptordner für Übergangs- und Checkpoint-Modelle

Das Toolfenster ProjectView enthält jetzt drei Hauptordner, die eine bessere Projektstrukturierung ermöglichen:

  • Projektname
  • Modules Pool
  • Checkpoints and Transient Models

Der Ordner Checkpoints and Transient Models wird immer unterhalb des Modules Pool angezeigt und ist leer, wenn keine Übergangs- oder Checkpoint-Modelle vorhanden sind. Diese Modelle werden in diesem Ordner angezeigt und nicht wie bisher auf der obersten Ebene.

Als Nebeneffekt kann sich das Toolfenster ProjectView dank dem neuen Ordner Checkpoints and Transient Models den ein- oder ausgeklappten Zustand der Projektstruktur-Unterbäume über MPS-Neustarts hinweg merken.

Vorschau aktivieren

Option zum Aktivieren des Vorschau-Tabs

Die folgenden Optionen zum Aktivieren/Deaktivieren des von der IntelliJ-Plattform bereitgestellten Preview-Tabs werden jetzt von MPS ausgewertet, sodass das Editor-Verhalten mit den anderen JetBrains-Tools übereinstimmt:

  • Settings | Editor | General | Editor Tabs | Opening Policy | Enable Preview Tab
  • Logical View | Behavior | Enable Preview Tab
Aktualisierte Dialoggestaltung für Tooltips 2

launchtests: Option für Bericht-Verzeichnispfad

In Build-Skripten wurde eine zusätzliche Option reports dir dem Optionsabschnitt einer test configuration hinzugefügt. Benutzer*innen können so das Ausgabeverzeichnis angeben, in dem die generierten JUnit-Testberichte gespeichert werden sollen.

Inspector

Bedingungssteuerung für die Anwendbarkeit von Quick-Fixes

Ein neuer Abschnitt namens applicable wurde zu den Quick-Fix-Definitionen hinzugefügt, damit Sie die Anwendbarkeit von Quick-Fixes steuern können. Der Standardwert <always> bedeutet eine uneingeschränkte Anwendbarkeit.

Handhabung von Icons

Icons und Bilder, die einen relativen Pfad zum Modul verwenden, werden bei der Generierung nicht mehr neben die Orte ihrer jeweiligen Verwendung kopiert. Stattdessen werden sie einmalig als Bilddateien in das Distributionsmodul kopiert und stehen an diesem einheitlichen Ort zur Verwendung bereit. Dies hat zwei unmittelbare Vorteile: Einerseits Einsparung von Speicherplatz durch Vermeidung der Duplizierung von Bilddateien und andererseits die Möglichkeit, sowohl vom Distributions- als auch vom Quellmodul aus auf die Bilder zuzugreifen.

Konstanten-Icons

Konstanten-Icons

Zusätzlich zu den bestehenden Konzepten TextIcon und FileIcon gibt es jetzt ein neues Konzept ConstantFieldIcon. Es ermöglicht die Angabe eines Icons durch eine Referenz auf eine konkrete Deklaration eines statischen Felds, die eine Instanz von javax.swing.Icon enthält.

Binäre TextGen-Produktion

Inspiriert durch die Notwendigkeit einer besseren Handhabung von Icon-Dateien haben wir eine neue Methode eingeführt, um bei der Textgenerierung anstelle von Text einen binären Inhalt auszugeben. Die neue API besteht aus einer write-Operation, die Daten direkt als Instanzen von byte[] manipuliert.

Abkehr von ProjectComponent bei den Toolfenstern

Alle Toolfenster wie Inspector, HierarchyView und Usages wurden überarbeitet und folgen nicht mehr dem als veraltet deklarierten Mechanismus der IntelliJ-Plattform-Projektkomponenten (ProjectComponent). Die API-Änderungen sind minimal, aber bei einigen Toolfenstern hat sich die Art und Weise geändert, wie sie aus dem Code bezogen werden:

  • Die Methode Project.getComponent() gibt kein Toolfenster mehr zurück.
  • Tools, die als MPS-Toolkonzept implementiert sind, können über com.intellij.openapi.project.Project.tool <ToolConcept> bezogen werden.
  • Tools, die häufig in Java verwendet werden, stellen eine statische getInstance()-Methode bereit:
    • UsagesViewTool.getInstance()
    • InspectorTool.getInstance()
  • Das Inspector-Tool ist traditionell auch über EditorContext.inspectorTool() verfügbar.

IntelliJ-Plattform-Komponenten und -Services

Neben den Toolfenstern wurde auch der überwiegende Teil der MPS-Kernfunktionalität überarbeitet, um ApplicationComponent und ProjectComponent aus IntelliJ IDEA nicht zu verwenden.

Beim Composing der gesamten Anwendung hat MPS früher vielfach auf die Instrumente der IntelliJ-Plattform zurückgegriffen. Jetzt wurden die meisten Legacy-Komponenten refaktoriert, um moderne MPS- oder IntelliJ-IDEA-APIs zu verwenden (z. B. die Services und Erweiterungspunkte von IntelliJ IDEA für Anwendungen/Projekte, die CoreComponents und Erweiterungen von MPS usw.). Die wenigen verbleibenden Komponenten will das MPS-Team in der nächsten Version komplett entfernen.

Die meisten Benutzer*innen werden wahrscheinlich keinen Unterschied bemerken – abgesehen von kürzeren Startzeiten.

Bitte konsultieren Sie den Migrationsleitfaden, wenn Ihr Code eine Plattformkomponente nicht finden kann, weil er eine veraltete Abrufmethode verwendet.

Wechsel zur neuen UI

MPS verwendet jetzt die neue Bedienoberfläche. Die alte UI-Version kann durch Installation des Plugins Classic UI aktiviert werden.

Zahlreiche Fehlerkorrekturen

Wie üblich behebt dieser Build eine Reihe von Fehlern. Eine vollständige Liste aller behobenen Probleme finden Sie hier.

Plattform-Updates

Wechsel zu JBR21

Wir stellen von JetBrains Runtime 17 (JBR17) auf JetBrains Runtime 21 (JBR21) um. Ab IntelliJ IDEA 2024.2 werden alle IDE-Updates mit JBR21 ausgeliefert, das verbesserte Sicherheit und Leistung sowie Wayland-Rendering-Unterstützung für Linux bietet.

Automatische Erkennung von Proxy-Einstellungen standardmäßig für neue Benutzer*innen aktiviert

IntelliJ IDEA erkennt jetzt automatisch die Proxy-Einstellungen Ihres Systems und verwendet sie standardmäßig, um eine reibungslose Interaktion mit externen Ressourcen und Diensten zu ermöglichen.

Verbesserter Dialog zur Anpassung der Hauptsymbolleiste

Wir haben Layout und Verhalten der Bedienelemente im Dialog Customize Main Toolbar intuitiver gestaltet und besser strukturiert. Es ist jetzt einfacher, in der Hauptsymbolleiste Aktionen zu finden, hinzuzufügen und zu löschen.

Erhöhtes Standardlimit für Tabs

Wir haben das Standardlimit für Editor-Tabs auf 30 erhöht. Dies bedeutet, dass jetzt mehr Tabs offen bleiben können, bevor die IDE beginnt, die am längsten nicht genutzten Tabs zu schließen. Sie können dieses Verhalten unter Settings | Editor | General | Editor Tabs steuern.

Mathematische Syntax in Markdown-Dateien unterstützt

IntelliJ IDEA kann jetzt mathematische Ausdrücke in Markdown-Dateien darstellen. Bei der Arbeit mit Markdown können Sie mit $ mathematische Ausdrücke und mit $$ Codeblöcke mit mathematischem Inhalt einfügen.

Tags im Version Control-Widget

Tags haben im Version Control-Widget einen eigenen Knoten bekommen, damit Sie sie leichter überblicken können. Der Knoten wird standardmäßig angezeigt, aber wenn Sie ihn ausblenden möchten, klicken Sie einfach auf das Zahnradsymbol und deaktivieren Sie die Option Show Tags.

Verbesserte Nutzungserfahrung für Log-Toolfenster

Alle Einstellungen im Zusammenhang mit dem Log-Toolfenster wurden auf einer eigenen Einstellungsseite zusammengefasst, auf die Sie entweder unter Settings/Preferences | Version Control | Log oder über ein neues Dropdown-Menü in der Symbolleiste des Log-Toolfensters zugreifen können.

Branchname auf Begrüßungsbildschirm

Der Begrüßungsbildschirm zeigt jetzt den Branchnamen an, damit Sie beim Umgang mit mehreren Projektversionen den Überblick behalten und unkompliziert zwischen Arbeitsverzeichnissen wechseln können.

Neue Optionen First Parent und No Merges für Diagrammdarstellung

Wir haben neue Git-Optionen eingeführt, um die Anzeige von Branch-Verläufen zu vereinfachen. Mit der Option First Parent können Sie sich auf Mainline-Änderungen konzentrieren, indem Sie einzelne Merge-bedingte Commits ausblenden. Alternativ können Sie mit der Option No Merges Merge-Commits ganz herausfiltern. Beide Optionen sind jetzt unter dem Symbol Graph Options im Git-Toolfenster verfügbar, sodass Sie Änderungen in Ihren Branches leichter verfolgen können.

Verbesserungen für das neue Terminal
Beta

Das neue Terminal bietet jetzt eine verbesserte Befehlsverarbeitung, und die Ausrichtung der Bedienoberfläche wurde optimiert, um eine reibungslosere und intuitivere Arbeitserfahrung zu ermöglichen. Das Terminal ist jetzt reaktionsschneller und verarbeitet Eingaben schneller. Sie können jetzt reibungslos zwischen Sitzungen wechseln, wobei der Status für jeden Tab konsistent beibehalten wird, um einen unterbrechungsfreien Arbeitsablauf zu gewährleisten. Die Auto-Completion greift schneller auf Befehlsnamen, Flags und Pfade zu und reduziert so die Notwendigkeit manuelle Eingaben. Außerdem haben wir weitere Anpassungsoptionen eingeführt, unter anderem für Eingabeaufforderungsstile, Sitzungsnamen und Umgebungsvariablen, sodass Sie jetzt mehr Kontrolle über Ihre Terminalumgebung haben.

Migrationsleitfaden

Für jede Hauptversion bieten wir eine Anleitung für die Migration von älteren MPS-Versionen, um einen reibungslosen Umstieg zu gewährleisten. Bitte lesen Sie diese sorgfältig durch.