$CALL-SITE$
という新しいマクロが追加されました。このマクロを使用すると、SWITCH/CALL
マクロを持つノードを呼び出されたテンプレート内の目的の位置に挿入することができます。 この変更が加えられる前は、SWITCH/CALL
マクロが添付されたテンプレートノードは概して無視されていました。 今後は呼び出されたテンプレート/switch が「呼び出しサイトノード」の使用を試みた場合、そのノードが通常のテンプレートとして処理され、その結果が目的の位置に挿入可能な暗黙の引数として呼び出されたテンプレート/switch に提供されるようになりました。
Dynamic highlighting, a long-awaited feature, has arrived. この機能は、既存の Highlight Usages(使用箇所のハイライト表示)アクション(Ctrl/Cmd+Shift+F7)と非常に似ています。 ただし、動的ハイライトは入力中またはコード内を移動中に自動的に機能するという点が異なります。 ドキュメント編集時には、カーソル配下のノードを参照している箇所がほぼ瞬時にハイライトされます。 従来の Highlight Usages アクションを引き続き使用し、現在選択中のノードを「ピン留め」して他の部分に移動することもできます。 その場合でも、カーソル配下のノードは動的ハイライトによって引き続きハイライトされます。
この機能は、MPS エディターの設定にある Highlight selected node(選択中のノードをハイライト)チェックボックスでオンオフできます。
エディター関連のいくつかの改善に加えて、switch で同じステートメントに複数の case を使用できるようになりました。
Project ペインに新たなエラー、警告、メッセージの表示方法を導入しました。 エラーストリップを使用し、Project ペイン内のメッセージを整理するのに役立てることができます。 エラーストリップは、Logical View(論理ビュー)設定ボタンで無効にできます。
MPS により、ある特定のモジュールで特定のモジュールファセットを使用することが強制されなくなりました。 あるモジュールに関連付けられたファセットはモジュール記述子ファイル内に記録されます。今後はこのファイルが最終的な情報源になります。 過去のリリースではすでに Tests ファセットを完全にオプション化していましたが、今回は最後の一つである Java の強制を廃止しました。 ただし、Language モジュールのプロパティで Java モジュールファセットのチェックを外すと、同言語がクラスロードの仕組みから除外され、完全に異なる結果を生むことになりますのでご注意ください。 この変更は、Java 以外のターゲット言語をさりげなくサポートするために行いました。
古いルートアノテーションアルゴリズムでは、モデルテキストファイルから取得したアノテーション結果を使用していました。 これはテキスト永続化モデルのみに機能していましたが、大部分のケースでは正しいとは限りませんでした。 新しいアプローチでは、さまざまなリビジョンのモデルを比較することでアノテーションを構成しています。
2 つのモデル間の変更を計算する従来のアルゴリズムでは、特定の種類の変更を検出できていませんでした。 ノードの移動が 2 つの異なる変更(挿入および削除)として検出されていました。 今回のバージョンでは、ノードの移動を 1 つの移動として表示できるようになりました。 また、移動した部分の内部変更も検出できるようになりました。
ウェルカム画面のデザインを更新しました。 プロジェクトの選択画面のほか、ニーズに応じて IDE をカスタマイズできる各種のダイアログも追加しました。 また、Projects ページのスペースが大きくなり、より多くのプロジェクトを表示できるようになったことは特筆すべきです。 さらに、検索フィールドから目的のプロジェクトを検索しやすくなりました。 Customization ページでは、カラーテーマ、IDE のフォント、インポートアクション、共有設定などの主なインターフェース設定を行うことができます。
VCS メニューの名前が、現在使用中のバージョン管理システムに合わせて変更されました。 プロジェクトのバージョン管理に最も役立つアクションを確保することで、メニューをより簡潔に発見しやすくしました。 主な Git 機能にアクセスしやすくなりました。今後はサブメニューには表示されません。 例えば、プロジェクトで Git のみを使用している場合、VCS メニューはこのように表示されます。
使用頻度の高い 2 つのボタン(Commit と Commit and Push…)を Commit 画面にわかりやすく表示するようにしました。 変更をコミットした後、即座にリモートリポジトリにプッシュできるようになりました。今後は、ドロップダウンリストをスクロールして Commit and Push ボタンまで移動する必要はありません。
このリリースでは、ブランチに関する若干の機能強化を行っています。 IDE が新しいブランチの名前に使用できない文字を自動的に訂正するようになりました。また、現在のブランチに関連するすべてのアクションを表示できるようになりました。
大規模なプロジェクトで作業する際には、複数のタブを開くのが便利です。 MPS 2020.3 では、タブを任意の位置にドラッグアンドドロップしてメインのエディター画面を上下または左右に分割できます。 タブをドラッグする際には、エディター内のドロップ可能な場所がハイライト表示されます。 IDE はタブバーの先頭にピン留めしたタブを表示します。