エディタ
カスタムスタイルと補完項目の優先順位
言語設計者は、補完メニュー項目のスタイルと優先順位を設定できます。 背景とテキストの色、太字と斜体の書式を変更したり、アイテムを非表示にすることもできます。 この機能は実験的なものであり、将来、設計が変更される可能性があることに注意してください。 詳細はこちら。
ジェネレータ言語
新しいVARマクロに導入された自動型推論
ジェネレータ言語のVARマクロで、1つのマクロに複数の変数宣言をサポートすることが可能になりました。 オーバーライドされない限り、宣言クエリから型が推定されます。
プラグインのサポート
マイグレーションAntタスクからのMPSプラグイン利用
プロジェクトのマイグレーションにプラグインが必要な場合は、antタスクから利用できるようになりました。 対応するプラグインとその依存物が有効になります。 また、この機能はお客様からのサポート依頼に応じて2018.3.5に統合されています。
「run code from solution」ビルドスクリプト命令におけるプラグイン展開サポート
「run code from solution」命令を使用すると、コードを実行するMPSインスタンスでプラグインを有効化できます。 プラグインの依存関係も含められます。 この機能は、お客様からのサポート依頼に応じて2018.3.5に統合されています
IDEの改善
カスタムUIテーマの作成
その日の気分を彩りましょう! IntelliJプラットフォームがすでにこのクールな機能を導入しており、MPSはそれをベースにしているので、IDEのUIテーマもカスタマイズできます。
新しい定義済みテーマをプラグインとしてインポートするか、IntelliJ IDEAを使用して独自のテーマを最初から作成できます。 新しいCyan LightテーマとDark Purpleテーマを試してみてください。
JUnitの実行構成での配備プラグイン指定
MPSインスタンスの実行構成と同様に、テスト実行時に配備するIntelliJ IDEAプラグインのリストを指定できるようになりました。 起動前タスクである 「Assemble Plugins」 は、JUnitの実行構成でも使用できます。 デプロイされるプラグインが自動的にビルドされ、アーティファクトがsettingsディレクトリにコピーされます。
ProjectPaneのソート
ChildComparatorProviderのコントリビューションを管理するTreeNodeSortServiceが追加され、ProjectPaneツリーでMPSTreeNodeの子ノードを完全に制御できるようになりました。 これで、プラグインのアプリケーションまたはプロジェクトパーツからプロバイダを登録/登録解除できるようになります。
受信コミットと送信コミットの表示
このIDEは、ブランチポップアップで個々のブランチに対して受信および送信コミットが利用可能かどうかを示すようになりました。 Preferences/Settings | Version Control | GitのBranchesポップアップで、新しい 「Mark Branches that have incoming/outgoing commit in Branches popup」 オプションを有効にしてください。
BaseLanguage
baseLanguageインタフェースの静的メソッド
MPSでは、インタフェースに静的メソッドを作成できるようになりました。
その他
ConfluenceからHelp Centerへ!
従来より、ConfluenceがMPSドキュメントホームでした。 しかし、今こそ成長して自分の場所に移動する時です。 すべてのドキュメントをHelp Centerに移行しています。ユーザーズガイドとクイックチュートリアルには既にアクセス可能です。 今後のリリースでは、より多くの文書が改善されます。
スタブメソッドのシグネチャ
メソッドの戻り型は、Javaのスタブモデルで作成されたMPSノードIDから削除されました。 今後、メソッドの識別には、Java言語仕様で定義された真のメソッド・シグネチャが使用されます。 新しいバージョンのライブラリで戻り型が変更された場合、サブモデルからメソッドを参照してすべてのモデルを再保存する作業は必要ありません。 自動マイグレーションでは、すべてのMPSモデルが再保存され、スタブモデルのメソッドへの既存の参照がすべて修正されます。
「Compile in MPS」チェックボックスの新しい意味
モジュールプロパティの「Compile in MPS」チェックボックスが選択されていない場合、コードコンパイルを実行するためにIntelliJ IDEAインスタンスが接続されていることを意味しなくなります。 このチェックボックスは、「MPSでコンパイルするか、まったくコンパイルしないかのどちらか」と考えることができます。 .
MPSの自動的な言語集約表示
構造アスペクトで、集約によって組み込まれる言語(つまり、子ロールでの外部概念の使用)が表示できるようになりました。 言語集約は編集中に自動的に行われ、モデルへの明示的インポートを行う必要はなくなりました