MPS 2018.2の新機能

ジェネレータのテスト

既存のノードとエディタテスト一式に加えて、ジェネレータをテストするための新しい方法を実装しました。 その目的は、ジェネレータまたはジェネレータ一式に確実に作業を実施させることです。 IDEではインプロセスおよびアウトプロセス実行モードの両方と、MPS Antビルドスクリプトからの実行がサポートされています。

生成計画でのフォーク

生成計画に新しいステートメントが実装されました。別の生成プランをフォークして、変換シーケンスを指定ポイントで分岐することができます。 参照先のプランは、分岐された時点の状態でモデルを受け取り、通常の変換として続行されます。 この例では、まずcrossmodel.entityジェネレータを持つ入力モデルを変換して状態を記録し、それからcrossmodel.property#prop2classジェネレータで処理を続け、最終的に出力モデル#1を取得します。 その後、crossmodel.property#prop2xmlジェネレータが記録されたモデルを変換して出力モデル#2を取得します。 'then' はコントラクトではありませんので、ご注意ください。ブランチが特定の順番で処理されるという保証はありません。ただし、初期計画のものである 'primary' ブランチは互換性や移行を目的として、古いAPI(GenerationStatus#getOutputModel)を介して取得できる 'first and only' 出力モデルを提供します。

生成テストでのフォーク

ジェネレータのテストはforkステートメントを含む生成計画をサポートし、すべての出力モデルを提供された参照モデルと一致させます。

新しいVCSアスペクト

新しいVCS言語アスペクトを導入しました。 コンセプトの宣言に注釈を書くのではなく、その言語アスペクトを作成できるようになりました。 アスペクトは特定のランタイムコードに生成されます。 VCSアスペクトはMergeHints注釈に置き換わり、移行が含まれています。

GitHubプラグイン

GitHubプラグインが実装されました。 「VCS -> Checkout from Version Control -> Git -> Log in to GitHub...」からログインできます。

移行に関する通知

移行に関する通知を実装し、状況を把握しやすくなりました。プロジェクトが何らの理由で読み込めなかった言語に依存している場合や、移行が延期された場合に通知されるようになりました。