MPS 2020.3の新機能

MPS 2020.3 には新しいジェネレーターマクロ、使用箇所の動的ハイライト表示、新しいデザインのウェルカム画面、その他多数の新機能が盛り込まれています

新しいジェネレーターマクロ

新しいジェネレーターマクロ

$CALL-SITE$ という新しいマクロが追加されました。このマクロを使用すると、SWITCH/CALL マクロを持つノードを呼び出されたテンプレート内の目的の位置に挿入することができます。 この変更が加えられる前は、SWITCH/CALL マクロが添付されたテンプレートノードは概して無視されていました。 今後は呼び出されたテンプレート/switch が「呼び出しサイトノード」の使用を試みた場合、そのノードが通常のテンプレートとして処理され、その結果が目的の位置に挿入可能な暗黙の引数として呼び出されたテンプレート/switch に提供されるようになりました。

エディター内での使用箇所の動的ハイライト表示

エディター内での使用箇所の動的ハイライト表示

待望の動的ハイライトの機能が実装されました。 この機能は、既存の Highlight Usages(使用箇所のハイライト表示)アクション(Ctrl/Cmd+Shift+F7)と非常に似ています。 ただし、動的ハイライトは入力中またはコード内を移動中に自動的に機能するという点が異なります。 ドキュメント編集時には、カーソル配下のノードを参照している箇所がほぼ瞬時にハイライトされます。 従来の Highlight Usages アクションを引き続き使用し、現在選択中のノードを「ピン留め」して他の部分に移動することもできます。 その場合でも、カーソル配下のノードは動的ハイライトによって引き続きハイライトされます。

この機能は、MPS エディターの設定にある Highlight selected node(選択中のノードをハイライト)チェックボックスでオンオフできます。

BaseLanguage の switch ステートメントを改善

BaseLanguage の switch ステートメントを改善

エディター関連のいくつかの改善に加えて、switch で同じステートメントに複数の case を使用できるようになりました。

Project ペインのエラーストリップ

Project ペインのエラーストリップ

Project ペインに新たなエラー、警告、メッセージの表示方法を導入しました。 エラーストリップを使用し、Project ペイン内のメッセージを整理するのに役立てることができます。 エラーストリップは、Logical View(論理ビュー)設定ボタンで無効にできます。

モジュールファセットの処理方法を変更

MPS により、ある特定のモジュールで特定のモジュールファセットを使用することが強制されなくなりました。 あるモジュールに関連付けられたファセットはモジュール記述子ファイル内に記録されます。今後はこのファイルが最終的な情報源になります。 過去のリリースではすでに Tests ファセットを完全にオプション化していましたが、今回は最後の一つである Java の強制を廃止しました。 ただし、Language モジュールのプロパティで Java モジュールファセットのチェックを外すと、同言語がクラスロードの仕組みから除外され、完全に異なる結果を生むことになりますのでご注意ください。 この変更は、Java 以外のターゲット言語をさりげなくサポートするために行いました。

VCS のルートアノテーションを改善

VCS のルートアノテーションを改善

古いルートアノテーションアルゴリズムでは、モデルテキストファイルから取得したアノテーション結果を使用していました。 これはテキスト永続化モデルのみに機能していましたが、大部分のケースでは正しいとは限りませんでした。 新しいアプローチでは、さまざまなリビジョンのモデルを比較することでアノテーションを構成しています。

詳細情報

Diff ダイアログウィンドウでの移動ノードの追跡

Diff ダイアログウィンドウでの移動ノードの追跡

2 つのモデル間の変更を計算する従来のアルゴリズムでは、特定の種類の変更を検出できていませんでした。 ノードの移動が 2 つの異なる変更(挿入および削除)として検出されていました。 今回のバージョンでは、ノードの移動を 1 つの移動として表示できるようになりました。 また、移動した部分の内部変更も検出できるようになりました。

詳細情報

新しいウェルカム画面

新しいウェルカム画面

ウェルカム画面のデザインを更新しました。 プロジェクトの選択画面のほか、ニーズに応じて IDE をカスタマイズできる各種のダイアログも追加しました。 また、Projects ページのスペースが大きくなり、より多くのプロジェクトを表示できるようになったことは特筆すべきです。 さらに、検索フィールドから目的のプロジェクトを検索しやすくなりました。 Customization ページでは、カラーテーマ、IDE のフォント、インポートアクション、共有設定などの主なインターフェース設定を行うことができます。

その他の改善

VCS メニューの並べ替え

VCS メニューの並べ替え

VCS メニューの名前が、現在使用中のバージョン管理システムに合わせて変更されました。 プロジェクトのバージョン管理に最も役立つアクションを確保することで、メニューをより簡潔に発見しやすくしました。 主な Git 機能にアクセスしやすくなりました。今後はサブメニューには表示されません。 例えば、プロジェクトで Git のみを使用している場合、VCS メニューはこのように表示されます。

Commit and Push ボタン

使用頻度の高い 2 つのボタン(CommitCommit and Push…)を Commit 画面にわかりやすく表示するようにしました。 変更をコミットした後、即座にリモートリポジトリにプッシュできるようになりました。今後は、ドロップダウンリストをスクロールして Commit and Push ボタンまで移動する必要はありません。

ブランチに関する改善

このリリースでは、ブランチに関する若干の機能強化を行っています。 IDE が新しいブランチの名前に使用できない文字を自動的に訂正するようになりました。また、現在のブランチに関連するすべてのアクションを表示できるようになりました。

タブのドラッグアンドドロップによるエディターの分割

大規模なプロジェクトで作業する際には、複数のタブを開くのが便利です。 MPS 2020.3 では、タブを任意の位置にドラッグアンドドロップしてメインのエディター画面を上下または左右に分割できます。 タブをドラッグする際には、エディター内のドロップ可能な場所がハイライト表示されます。 IDE はタブバーの先頭にピン留めしたタブを表示します。