MPS 2021.2 bietet Rechtschreibprüfung, automatische Code-Completion-Anzeige, VCS-Verbesserungen und vieles mehr.
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.
Ä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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 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.
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: