Das ist neu in MPS 2021.2

MPS 2021.2 bietet Rechtschreibprüfung, automatische Code-Completion-Anzeige, VCS-Verbesserungen und vieles mehr.

Automatische Anzeige der Code-Completion

Das Code-Completion-Popup, das bisher durch Drücken von Strg/Cmd+Leertaste aufgerufen wurde, wird jetzt automatisch angezeigt, nachdem Sie mit der Eingabe aufgehört haben. Die Verzögerung beträgt standardmäßig eine halbe Sekunde. Bei Bedarf kann die Completion weiterhin auch manuell aufgerufen werden. Mehr erfahren.

VCS-Diffs mit Verbesserungen bei Umschließungen

VCS-Diffs mit Verbesserungen bei Umschließungen

Änderungen, die Umschließungen betreffen, werden jetzt viel flexibler gehandhabt. Änderungen, die Umschließungen hinzufügen oder entfernen, können jetzt unabhängige interne Änderungen enthalten. Außerdem können mehrere Änderungen, die Umschließungen hinzufügen oder entfernen, nebeneinander stehen. Interne Verschiebungen werden jetzt innerhalb von Knoten mit geänderten IDs erkannt.

Verbesserte Anzeige von geänderten Knotenattributen

Verbesserte Anzeige von geänderten Knotenattributen

Editorzellen für Attribute wurden bisher im Diff-Dialog nicht korrekt hervorgehoben. In der Regel wurde beim Hinzufügen oder Löschen eines Attributs der gesamte Knoten und nicht nur das Attribut hervorgehoben.

Allgemeine Rechtschreibprüfung

Allgemeine Rechtschreibprüfung

Die MPS-Funktionalität zur Verwendung der IntelliJ-IDEA-Rechtschreibprüfung für Kommentare und Zeichenfolgeliterale wurde erweitert. Jetzt können Sie jeden Text prüfen, der in einer Label-Zelle angezeigt werden kann. Um anzugeben, dass der Text einer Zelle gemäß den unter Preferences/Settings vorgenommenen Einstellungen geprüft werden soll, müssen Sie in der Editordeklaration nur den Stil spellcheck auf die Zelle anwenden.

Vergessen Sie bei Rich-Client-Plattformen (RCP) nicht, das Plugin jetbrains.mps.editor.spellcheck in die Distribution aufzunehmen.

Projektversion für Migrationen

Projektversion für Migrationen

Wir haben uns mit dem Szenario befasst, in dem mit einer älteren MPS-Version auf ein Projekt zugegriffen wird, das auf eine neuere MPS-Version migriert wurde. Das Migration-Subsystem erfasst jetzt die MPS-Plattformversion beim Anwenden von Migrationen und warnt Sie, wenn ein Projekt, das Sie öffnen möchten, auf eine neuere Version migriert wurde. Dadurch wird die unbeabsichtigte Beschädigung von Modellen verhindert.

Optimierter Referenz-Scope

Es gibt einen Mechanismus für die gemeinsame Nutzung ausgewerteter Scope-Elemente beim Lesen eines einzelnen Modells. In j.m.lang.constraints wurden neue Ausdrücke zur gemeinsamen Nutzung von Scopes eingeführt: for model [factory, key], visible roots [concept] und visible nodes [concept] als Ersatz für new ModelPlusImportedScope(model, rootsOnly, concept). Die neuen Ausdrücke werden verwendet, um den Scope eines Modells im Cache zu speichern, damit er nur einmal erfasst und berechnet werden muss.

Keine Einschränkungen beim Ändern von Knoten

Entwickler*innen von Erweiterungen müssen beim Schreiben von Code, der mit MPS-Modellen arbeitet, festlegen, welche Zugriffsart gewährt werden soll. Bei SNode-Operationen (z. B. setProperty(), addChild() usw.) konnte nur Befehlszugriff gewährt werden, auch wenn keine UI-Interaktion stattfand. Diese Einschränkung wurde nun aufgehoben, und jeder Code, der über Schreibzugriff auf das Modell verfügt, kann jetzt Knoten ändern.

Tooltip-Radar

Tooltip-Radar

Das Tooltip-Feature verfügt jetzt über eine Funktion namens Radar. Diese zeigt an, welche Zellen Tooltips haben. Zum Aktivieren des Tooltip-Radars halten Sie die Strg-Taste gedrückt.

Diamant-Operator

In der baseLanguage kann jetzt der Diamant-Operator von Java auf Konstruktoren angewendet werden, um generische Parameter aus dem Kontext abzuleiten. Der Diamant-Operator ist bei neu geschriebenem Code standardmäßig aktiviert. Um den Operator für Ihre bestehenden Konstruktoren zu aktivieren, entfernen Sie die vorhandenen Typparameter und setzen Sie im Inspektor infer type parameters auf true, oder geben Sie <> erneut ein und entfernen Sie den leeren Parameter.

Verbesserung bei baseLanguage-Eigenschaften

Eigenschaften in der baseLanguage werden jetzt bei der Typprüfung korrekt berücksichtigt. Wenn eine Eigenschaft Schnittstellen- oder abstrakte Methoden erbt, erfolgt keine Fehlermeldung aufgrund einer nicht implementierten Methode. Wenn eine Eigenschaft mit einem generischen Typ definiert ist, wird beim Zugriff auf die Eigenschaft über eine Instanz der richtige Typ verwendet.

Beachten Sie, dass der Setter für eine Eigenschaft vom Typ T ein Objekt vom Typ T statt void zurückgibt.

Einheitliche Diff-Anzeige

Einheitliche Diff-Anzeige

MPS zeigt jetzt die Unterschiede zwischen der ursprünglichen und der geänderten Dateiversion im Editor-Tab an. Unabhängig davon, wie Sie die Aktion Show Diff aufrufen, öffnet die IDE die Diff-Anzeige standardmäßig im Editor.

Wenn Sie die Änderungen lieber in einem separaten Fenster betrachten möchten, können Sie die gewünschte Datei mit der Maus aus dem Editor herausziehen. Die IDE merkt sich diese Präferenz und öffnet zukünftige Diffs in einem separaten Fenster.

Andere Verbesserungen

Neue Navigationsmöglichkeit in den Einstellungen

Neue Navigationsmöglichkeit in den Einstellungen

Neu hinzugefügte Pfeile in der oberen rechten Ecke des Fensters Preferences/Settings ermöglichen eine einfache Navigation zwischen den Abschnitten. Mit diesen Pfeilen können Sie zwischen den Abschnitten hin und her springen.

Toolfenster ziehen und ablegen

Toolfenster können jetzt einfach mit der Maus im IDE-Hauptfenster verschoben oder in ein separates Fenster verwandelt werden. Durch Anklicken und Halten der Titelleiste können Sie das Toolfenster ziehen und an einer beliebigen markierten Stelle ablegen.

Integrierte HTML-Vorschau

Terminal-Verbesserungen

Die Form des Cursorsymbols im integrierten Terminal kann jetzt über neue Optionen eingestellt werden. Darüber hinaus bietet das Terminal jetzt erweiterte Unterstützung für Tastenkürzel, indem die Taste Option (⌥) als Meta-Taste verwendet werden kann. Damit können Sie zum Beispiel die folgenden Tastenkürzel nutzen:

  • ⌥+F – zum nächsten Wort springen
  • ⌥+B – ein Wort zurückspringen
  • ⌥+D – nächstes Wort löschen