MPS の新機能

MPS 2019.3の新機能

Quick Definition Action

クイック定義アクション

クイック定義は、IntelliJ IDEAの対応するものに似ています。ノードをクリックしてCtrl-Shift-Iを押し続けると、ノードの定義を含むポップアップが表示されます。このポップアップでは、ナビゲートし、他のノードを選択して、検索アクションを実行できます。この方法では、ノードを一目見たいときに毎回新しいタブを開く必要はありません。さらに学習したい方に

Model unloading

モデルのアンロード

すべてのモデルをメモリから明示的に削除することにより、メモリ消費を改善できるようになりました。メモリインジケーターをクリックするか、レジストリアクションでスケジュールされたクリーンアップパラメーター(秒単位)を設定できます。現時点では、この機能は実験的であり、今後のリリースで改善する予定です。さらに学習したい方に

Standalone generator modules

スタンドアロンジェネレーターモジュールと言語ごとの複数のジェネレーター

1つの言語に対して複数のジェネレーターを作成し、(以前のバージョンのように)言語内でホストするか、通常のトップレベルモジュールとして言語の隣に追加できます。ジェネレーター計画を使用すると、複数のジェネレーターを最大限に活用できます。移行を支援するために、明示的な生成計画なしで、言語ジェネレータの1つのみがモデルに引き続き関与します。新しいジェネレーターは、言語コンテキストメニューから作成できます。次のダイアログには、スタンドアロンにするために使用できる新しいチェックボックスがあります。

Concept and Interface conversion

コンセプトとインターフェースの変換

コンセプトをインターフェースコンセプトに、またはその逆に変換する新しいインテンションを追加しました。これは、言語構造を作成するときに使用でき、使用箇所は変更しません。

Create from usage

使用から作成

コードの使用から概念、メソッド、およびクラスを作成できるようになりました。インテンションは、新しいステートメント、式のメソッド、および子/参照ロールと拡張/実装の概念とインターフェースでクラスを作成できます。

Generating valid java identifiers

INamedConceptsから有効なjava識別子を生成する

新しいジェネレーターステートメントを使用すると、INamedConceptから有効なJava識別子を生成できます。これにより、無効なシンボルを削除し、大文字にし、必要に応じてプレフィックスを追加することにより、一意の名前が作成されます。

使用箇所の検索: ファインダーの作成時に任意の検索結果を報告する新しいステートメント

以前のMPSバージョンでは、ファインダー上の結果追加ステートメントはノード<> -based検索結果に対してのみ許可されていました。ここで生の結果追加すると、言語デザイナーは使用箇所の検索ビューで視覚化できる結果を表示できます。

修正事項

生成プログラム: 動的参照警告を制御する

MPSジェネレーターは、動的参照を解決しようとしたが失敗すると警告を発行します。これにより、すべてのジェネレーターがラベルマッピングを使用した厳密な参照構築アプローチに準拠していないという事実を考えると、多くの警告が発生します。そのため、警告を表示するかどうかを制御する新しい設定を追加しました。さらに学習したい方に

クライアントスポンサー

JavaStubsの読み込みパフォーマンスが改善されました

特に大規模で強く接続されたjarのセットから、スタブモデルをロードするときのパフォーマンスが大幅に向上しました。ターゲットプロジェクトでの読み込み時間は、2019.2よりも2〜3倍速くなりました(18秒から6秒まで)。このブーストは、MPS 2019.1およびMPS 2019.2にもバックポートされています。

ビルド言語: 明示的なモデルの根

MPSは、特定のファイルセットのみをモデル、つまり*.mpsと*.mpsrとして処理するために使用されていましたが、カスタムモデルの永続性ではファイル名が異なります。モジュールのビルド時に必要なすべてのモデルファイルが確実にバンドルされるようにするために、カスタムスクリプト名パターンを容易にするビルドスクリプト内のモジュールの明示的なモデルルート宣言があります。

ドキュメント:

新しいビルドソリューションウィザードのカスタム永続性サンプルとドキュメントは更新されました。Mathサンプルの生成時エラーとドキュメントページのリンク切れが修正されました。いくつかのダイアログとツールウィンドウも修正されました。

基本言語:

2進および8進リテラルがサポートされるようになり、Javadocの型パラメーターは正しく処理されます。他の多くの課題(英語)も修正されます。

モジュール/モデルIDオブジェクトを更新するためのクイックフィックス

MPSは、古い名前を検出し、SModel言語からのオブジェクトの最新の名前にするためのクイックフィックスを提供します。さらに学習したい方に

モジュールファセットストーリーの更新

「テスト」モジュールファセットにより、言語設計者は完全に自由になり、MPSは言語モジュールにファセットが存在することを要求しなくなりました。さらに学習したい方に

囲む...

複数のノードが選択されている場合、囲む…アクションが使用可能になりました。以前は、単一のノードを含む選択に対してのみ有効でした。

ルート履歴ダイアログに影響ファイルのアクションを表示

ルート履歴のリビジョンについては、同じリビジョンで変更された他のファイルを見ることができます。

ルートごとの永続性のモデルのルート履歴

2019.2で導入されたルート履歴の表示アクションは、単一ファイルに保存されているモデルのルートで使用できます。現在、ルートごとの永続性のモデルもサポートされています。

お気に入りビューの更新

MPSは、よく管理されたIntelliJプラットフォームのお気に入りツールを統合します。さらに学習したい方に

メタ言語スタイリング

すべてのメタ言語は、特に、キーボードナビゲーション、エディターでのプレースホルダーセルの動作、および「新しいルート」の外観に関して、同じスタイルと編集エクスペリエンスを提供します。