制約言語の不備を解消するため、制約ルール言語が作られました。 このリリースでは制約ルールがさらに前進し、言語のユーザビリティが改善されています。
MPS モジュールには、言語を色々と試すためのサンドボックスから、MPS または IntelliJ IDEA プラットフォームの動作を変更するためのアクティブなプラグインコードまで、さまざまな目的があります。 MPS 2022.3 では、これらすべてを 1 つのカテゴリで導入しました。 ソリューションモジュールの Java Facet(Java ファセット)ページが改修され、すべての関連する設定を集約し、一般的なシナリオを特定して、言語デザイナーとユーザーがモジュールの意図した用途を簡単に認識できるようになりました。 IDE プラグインモジュールファセットが非推奨となり、今後は使用されなくなりました。 ソリューションモジュールのみの設定を公開しました。言語モジュールとジェネレーターモジュールの両方で同じ方法を採用していますが、これらの設定は暗黙的に構成されています。 詳細はこちらを参照してください。
MPS にはエコシステムに価値をもたらす活発なコミュニティが常に存在しており、JetBrains は製品の機能を強化する外部ライブラリの使用をユーザーに常に推奨してきました。 Third-party libraries, such as MPS Extensions, have been key to improving the user experience for products built with MPS. サードパーティライブラリはコミュニティに多くのメリットをもたらしますが、MPS のバージョンをアップデートするのにサードパーティライブラリの移行を待たなければならないという大きな欠点があります。 よりスムーズに製品の最新バージョンへ移行できるように、JetBrains の公式パートナーであり MPS 拡張機能の主管理者である itemis と協力し、リリースを同期させることに取り組んでいます。
言語デザイナーが何度も使用されるコードを定義ルートノード内のヘルパーメソッドに抽出することで、その量を減らせるようになりました。 これらの追加メソッドは以下の場所で定義できます。
インテンションは、execute メソッドで使用される isApplicable メソッドで計算される値を保持するための追加フィールドにも使用できます。
コンパイル済みの Kotlin/JVM ライブラリからスタブをインポートできるようになりました。これまでは、Kotlin/Common ライブラリしかインポートできませんでした。 この改善に伴い、モジュールオプションの Kotlin JVM モデルルートを通じて JVM(Java、Kotlin、または混合)にコンパイルされたライブラリを使用することができます。 詳細はこちらを参照してください。
この新しいバージョンの MPS には、複数の軽微な変更と改善が取り込まれています。
this
式からラベル(this@SomeClass
など)を正しく参照できるようになりました。 $kotlinc_home
マクロを要求するようになりました。 セルの右側に左丸括弧を入力して変換を使用することで、特定の呼び出しのコンストラクター呼び出しを作成できるようになりました。 これは、この演算をサポートするすべての Kotlin 型に機能します(この機能はユーザー型に拡張可能です)。また、関数型インターフェース型からラムダを作成する場合など、特定の型のデフォルト式の作成が簡単になります。
スコープ内の拡張関数がスコープ内の互換性のあるメソッドを除外しないように変更されました。 これには、現在のタイプのシステム実装のパフォーマンスが原因で適用できない項目がスコープ内に含まれてしまう難点があります。
適用できない関数が選択された場合、参照は、関数参照の自動解決によって修正されます。
新しいインテンションは MPSStartupScript ノートを更新し、VM オプションと classpath 値を現在の MPS 値に設定します。 MPS VM オプションと claspath の値は新しいリリースごとに変化します。 以前はユーザーがスタンドアロン型 IDE のビルドプロジェクトを手動で更新する必要がありました。
各メジャーリリースでは、旧バージョンの MPS から円滑に移行できるような移行手順を準備しています。 必要な手順をよく確認してください。