MPS の新機能

MPS 2019.2の新機能

列挙データ型

新しい列挙データ型宣言は、オプションのリストを宣言する簡潔な方法を提供します。各オプションは名前付き列挙メンバーで表現されます。オプションで、一部のメンバーのエディターのプレゼンテーションを変更し、プロパティーにメンバーが明示的に設定されていない場合に使用されるデフォルトのメンバーを選択することができます。さらに学習したい方に

クライアントスポンサー

エラーメッセージのカスタマイズ

しばらくの間、いくつかのMPSエラーメッセージをカスタマイズする可能性に対する要求がありました。有料のクライアントからのリクエストのおかげで、この機能に最高の優先順位を与えることができました。これで、エラー報告のすべての制約を変更できます。次のリリースでは、このレポートのカスタマイズを他の種類のエラーで利用できるようにする予定です。

エラーテキストのカスタマイズには、「フィードバック」という名前の新しいアスペクトを使用できます: さらに学習したい方に

ルールベースの制約言語

ルールベースの制約言語は、現在利用可能なcanBe *制約を将来の通常のMPS制約言語から置き換えるために作成されました。ルールベースの制約言語は実験的な機能であると考えているため、次のリリースで大幅に進化すると予想されます。さらに学習したい方に

ルート履歴

Gitメニューには、特定のルートに対するVCS変更の履歴を表示する新しいアクションが付属しています。このアクションは、エディターのコンテキストメニューから利用できます。さらに学習したい方に

全文検索

プロパティー値の全文検索の準備ができました。「編集」->「検索」->「プロジェクト内のテキストの検索」アクション(Ctrl+Alt+Shift+F)を使用すると、指定したテキストに一致するプロパティー値を持つノードを検索できます。

特定のエラーチェック

テスト言語の一般的な使用例の1つは、エラーメッセージまたは警告についてノードをチェックすることです。MPSのテストサブシステムは、同じノードに表示されるさまざまなエラーを区別できない場合がありました。これにより、誤解を招く動作が発生する可能性があります。ユーザーが対応するテスト注釈内で予期されるエラーを指定しても、このノードで報告される追加のエラーおよび警告はテスト違反として報告されません。さらに学習したい方に

パターンに定義されたルールを確認する

コンセプトのチェックルールを定義する場合、ルールはコンセプトのインスタンスであるすべてのノードに対して呼び出されます。

これで、スーパーコンセプトから継承したルールをオーバーライドする代わりに、オーバーライドするルールのリストを明示的に指定できます。オーバーライド機能を使用するすべてのチェックルールを確認し、オーバーライドするルールを決定することを強くお勧めします。さらに詳しく知る

型検査Facade API

このリリースの時点で、新しいファサードAPIは、型チェッククエリを実行する唯一のサポートされた方法です。

新しいAPI : jetbrains.mps.typechecking.TypecheckingFacadeおよび関連クラスを参照してください。

使用すべきではない API (既存) : パッケージjetbrains.mps.typesystem.*の階層は非推奨になりました。「型システム」アスペクトのコンテンツから自動的に生成されるコードを除き、この階層内でクラスを直接使用することはお勧めしません。

次のリリースで予定されている変更

以下は、型システムのサポートに関連して行われる変更の暫定計画です。型システムの実装とこの側面で使用される言語の責任を負った側面は、レガシーになります。時間とともに、言語とランタイムのサポートは別のプラグインに移行されます。

型システムアスペクトの「非型システム」部分を本質的に置き換える、導入される新しいアスペクト。従来の型システムの側面からチェック規則を抽出するための移行が提供されます。

新しい型チェックフレームワークとランタイムサポートが導入されます。これは、レガシーエンジンの全面的な書き換えを意味します。

バックグラウンドで作成

バックグラウンドでのプロセスが適切に機能するようにします。バックグラウンドメイク中のUIの応答性の改善に取り組んでいます。以前のバージョンを復元するために、これをすべて制御するための新しいUI設定、設定-> プロジェクト設定-> バックグラウンドで実行があります。

ランタイムとしてのJava 11

MPSはJDK 11で実行されるようになります。これは、スタブモデルをロードするメカニズムに影響します。JDK 11で再パッケージ化された一部のクラスとフィールドのまれな使用を除いて、プロジェクトのほとんどは移行を必要としません。

IntelliJ IDEAプラグインでは、MPSファセットを持つモジュールをJDKバージョン11に関連付ける必要があります。そうしないと、コード生成が失敗します。

BaseLanguage

BaseLanguageの改善は、このリリースの主なゴールの1つでした。バグからユーザビリティの課題に至るまで、BaseLanguagesに関連する多くの課題を修正しました。

新しいサンプル

コミュニティからのフィードバックに基づいて、XML生成用の新しいサンプルプロジェクトを追加しました。

BLコメントのスペルチェック

単一行コメント、Javadocテキスト、および文字列リテラルのスペルチェックがあります。

ローカルgit構成

マージドライバーの設定をグローバルからローカル(gitリポジトリごと)に変更したため、インストールされたMPSと同じ数のマージドライバーを使用できるようになりました。