MPS の新機能

MPS 2026.1 の新機能

MPS は、IntelliJ プラットフォーム 2026.1、JDK 25、Kotlin 2.3 を使用するようになりました。ビルド言語は推移的依存関係を獲得し、移行の再現性が向上し、Java スタブは大幅に品質が向上しました。バンドルされている Projectional Agent Toolkit プラグインにより、AI コーディングエージェントが MPS モデルを読み書きできるようになり、MPS 開発者および言語作成者にとって、数々の最先端の開発コンセプトが利用可能になります。

変更点の完全なリストを以下でご確認ください。

射影エージェントツールキット – AI コーディングエージェントが MPS モデルと直接連携できるようになりました

MPS には 射影剤ツールキットというプラグインが同梱されており、モデルコンテキストプロトコル(英語)を介して MPS の射影、モデル、言語ワークベンチを AI コーディングエージェントに公開します。Claude Code、OpenAI、Codex、JetBrains、Junie などのエージェント、その他の MCP 互換クライアントは、実行中の MPS インスタンスに接続し、開発者と同じように操作できます。つまり、モジュールやモデルを移動したり、射影エディターを介してノードを読み書きしたり、参照を解決したり、概念階層をインスペクションしたり、コードを生成したり、構成を実行したりできます。.mps ファイルを不透明な XML として扱う必要はもうありません。

射影剤ツールキットは、MPS プロジェクトのあらゆる側面を網羅する 12 種類のツールセットを提供します。

  • プロジェクト、モジュール、モデル – これらにより、エージェントはソリューション、言語、開発キットを列挙したり、モデルを開いて作成したり、依存関係を解決したりすることが可能になります。
  • 言語と概念 – これらにより、エージェントは概念階層、プロパティ、子要素、参照、継承などをインスペクションできるだけでなく、JSON 設計図から構造概念を実装することも可能になります。
  • ルートノードとノード – これらにより、エージェントはテキストレベルの編集ではなく、概念制約を考慮するノード認識操作を通じて、ノードの読み取り、作成、更新、移動、削除を行うことができます。
  • 参考文献と適用範囲 – これらにより、エージェントは参照リンクについて割り当て可能なターゲットを照会できるため、エージェントは初回から有効な参照先を選択できます。
  • 実行構成 – これらにより、エージェントはプロジェクト実行構成を一覧表示および実行して、変更をエンドツーエンドで検証できるようになります。

エージェントが可能な限り迅速に生産性を発揮できるよう、ツールキットには一連の スキルも同梱されています。これは、ツールに付属する、モデルを意識した集中的なプレイブックです。これらのプレイブックは、MPS 言語の構成方法、構造概念の実装方法、エディターの操作方法、BaseLanguage を JSON AST として記述する方法、および将来のセッションのために DSL 固有のメモリを記録する方法をエージェントに教えます。スキルは同じ MCP チャネルを通じて検出できるため、新しく接続したエージェントは、編集を開始する前に MPS に何を知っておくべきかを問い合わせることができます。

IntelliJ ベースの IDE で様々な AI Assistant と協働してきた経験は、言語や DSL の開発にも自然に拡張されます。エージェントは、新しい概念を実装し、エディターと制約を接続し、動作メソッドを追加し、DSL コードを作成、再生成し、結果をテストして実行することができます。これらすべてを MPS セマンティックモデル内で実行できます。言語設計者にとって、これは AI アシスタンスを単なるコード補完の便利なツールから、射影を理解する共同作業者へと変革します。

射影剤ツールキットは実験的な機能であり、将来的に API が変更される可能性があります。デフォルトでバンドルされ、有効になっています。組み込みの MCP サーバーを起動し、MCP 対応エージェントを MPS インスタンスに接続するだけで、ツールセットとスキルが自動的に表示されます。

詳細については、射影エージェントツールキットのドキュメントを参照してください。

IntelliJ プラットフォーム 2026.1、JDK 25、Kotlin 2.3 への移行

MPS 2026.1 は、IntelliJ プラットフォームの現行世代への移行を完了します。ランタイムは JDK 25 で、組み込みの Kotlin バージョンは 2.3.0 です。さらに、MPS は、Kotlin リポジトリから対応する 2.3.0 タグを持つ独自の kotlinx-metadata-klib / kotlin-metadata-jvm アーティファクトをビルドして提供するようになり、最後の公開版 kotlinx-metadata-klib:0.0.6 では提供できなくなった KLib ベースの Kotlin スタブのサポートが復活しました。

ICheckedNamePolicy を特定の自然言語と照合する機能

MPS は、Grazie が提供する IntelliJ プラットフォームの自然言語サポートを利用するようになりました。これにより、インテンション、アクション、ツールなどの ICheckedNamePolicy インスタンス内の文字列値が、特定の自然言語のルールに従って適切な大文字小文字になっているかどうかを確認できます。

MPS にお好みの言語の自然言語サポートをインストールできるようになりました。IDE は文字列で使用されている言語を検出し、個々の単語の頭文字が正しく大文字になっているかを確認します。また、言語検出機能をバイパスして、希望する言語を明示的に指定することもできます。

タイトルケースのデフォルトの大文字小文字ルールに加えて、MPS にはさらに 3 つのオプションがあります。

  • 文頭の格は、IntelliJ プラットフォームのルールに従います。
  • 継承され、最も近い祖先である ICheckedNamePolicy の大文字化ルールを使用する
  • 大文字表記のルールはありません

バイナリ演算を複数行に分割する機能

エディターでは、バイナリ操作を使用して長い行を分割できるようになりました。専用のインテンションアクションを使用すると、特定の BinaryOperation に対して、単一行レイアウトと複数行レイアウトを切り替えることができます。

新しいブールエディタースタイル: read-only-inspector

新しい read-only-inspector スタイルは、インスペクタ内のすべてのエディターセルに読み取り専用プロパティを適用します。このスタイルがメインエディターのセルに適用されると、このスタイルが適用されたセルが選択されたときに、インスペクション対象ノードのインスペクタは読み取り専用になります。新しいスタイルには、次のプロパティがあります。

  • デフォルトでは無効になっています。
  • このスタイルは、read-only スタイルと同様に、継承および上書きが可能です。
  • メインエディターのセルには影響しません。
  • このメカニズムによって設定された read-only スタイルは、インスペクターのエディターのセルツリーのさらに下の方にある任意のセルで上書きできます。

ビルド言語における推移的依存関係

ビルド言語では、推移的に到達可能なすべてのビルドスクリプトを dependencies にリストする必要がなくなりました。つまり、BuildB に依存するビルドスクリプト BuildA は、BuildC を明示的にリストすることなく、BuildB を介して BuildC に到達できるようになりました (BuildBBuildC に依存している場合)。ジェネレーターは、このような場合のために ${artifacts.BuildC} Ant プロパティを出力し、これらのプロパティは外部ビルドツール (Gradle、Maven など) から提供できます。

これにより、大規模なビルドを小規模なビルドに分割でき、すべてのユーザーに依存関係リストの更新を強制する必要がなくなります。例: 単一の platform ビルドスクリプトで、サブプロジェクト全体で使用される増え続ける外部ライブラリのセットをラップできます。

記録された依存関係による、より信頼性の高い移行

以前の移行コードは、移行時に収集された実際のモジュール依存関係と使用言語に基づいて適用する移行を決定していましたが、モジュール記述子に記録された依存関係スナップショットからバージョンを読み取っていました。この不一致により、移行がモジュールが最後に変更された時点とは異なる世界観を使用する可能性がありました。

バージョン 2026.1 では、移行メカニズムは、モジュール記述子に最後に変更された時点の依存関係と使用言語を常に使用するようになり、現在の状態は使用しなくなりました。それに伴い、移行チェッカーもリファクタリングされました。以前のように必要に応じて情報を再計算するのではなく、移行プロセス用にすでに収集された情報を再利用するようになりました。

Java スタブの改善

長期間存在していた Java スタブのバグ群が修正され、インポートされた .jar ファイルおよび Java ソースコードモデルルート用に生成される BaseLanguage スタブの精度が目に見えて向上しました。

  • MPS-33174(英語)(2021 年から公開) – InnerClasses 属性を持つクラスが、BaseLanguage スタブに正しく変換されるようになりました。シグネチャーの内部クラス情報とパラメーター化された所有者型が保持されるため、汎用外部クラスの内部クラスのフィールドとメソッドは、外部クラスに縮約されることなく、適切な型を表示するようになりました。
  • MPS-39375(英語) – 内部クラスの汎用メソッド内の型変数について、外部クラスの型変数を参照するメソッドは、実際の型変数の代わりに java.lang.Object を表示しなくなりました。
  • MPS-39007(英語) – 誤った Java の imports アノテーションが存在しますエラーは、Java ソーススタブモデルのすべてのルートで表示されなくなりました。
  • MPS-39565(英語) – Java ソースコードのスタブルートは、包含モジュールのプロパティが変更されても消滅しなくなったため、モジュールのプロパティが変更されても、プロジェクトコードからそれらのルートへの参照はそのまま維持されます。

近代化されたプロジェクトライフサイクル

MPSProject が従来の IntelliJ IDEA ProjectComponent からプロジェクトサービスに移行したため、MPS 対応機能は、MPSProject が利用可能になったり、利用できなくなったりすることを確実に通知される方法を必要とします。

このバージョンでは、MPSProject の起動およびシャットダウン処理を管理するための専用メカニズムが導入され、MPS がこれらの処理の順序付け、グループ化、順序、スレッド化を制御できるようになりました。これは、プラットフォームの ProjectActivity および MPSProjectActivity では提供されていなかった機能です。

動作原理: 実装者は、listenerClass とオプションの整数 priority を含む ProjectLifecycleListener.Bean を介して、jetbrains.mps.project.lifecycleListener 拡張ポイント(MPSCore.xml で宣言)に登録します。MPSProject 内の LifecycleEventDispatch.java は、以下のイベントを発生させることができます。

  • projectReady (non-blocking)
  • projectDiscarded (ブロッキング)
  • asyncProjectClosed (non-blocking)

Wayland がデフォルト

MPS は、対応する Linux システムにおいて、Wayland をデフォルトの表示プロトコルとして提供するようになりました。Wayland 対応環境で実行されている場合、MPS は X11 互換レイヤーに依存するのではなく、自動的にネイティブの Wayland バックエンドに切り替わり、最新の Linux デスクトップ標準に準拠します。

この移行により、システムとの全体的な統合性が向上し、Wayland コンポジタ全体での安定性が向上し、入力方法やドラッグ & ドロップが適切にサポートされ、特に HiDPI や分数スケーリング設定において、より一貫性のあるレンダリングが実現します。ユーザーエクスペリエンスは概ね従来どおりですが、Wayland のアーキテクチャに起因するいくつかの違い(ウィンドウの位置や装飾など)が感じられる場合があります。

多数のバグ修正

MPS 2026.1 には幅広いバグ修正が含まれています。解決された問題の完全なリストは、こちら(英語)でご覧いただけます。

プラットフォームのアップデート

UI の更新

JetBrains と MPS 2026.1 では、究極の快適性と人間工学に基づいた UI を引き続き最優先事項とし、作業スペースがコードと同じくらいアクセスしやすく、カスタマイズ可能であることを保証します。

長らく待望されていた、IDE テーマと OS の同期(英語)機能が Linux ユーザー向けに利用可能になりました。これにより、macOS および Windows と同等の機能を実現できます。 設定 | 外観 & 振る舞い | 外観でこの機能を有効にしてください。

キーボード操作に頼っている Windows ユーザーは、 Alt キーを押す(英語)コマンドを実行することで IDE のメインメニューをフォーカス表示できるようになりました。この変更により、スクリーンリーダーのユーザーにとってのアクセシビリティが向上します。

バージョン管理の更新

摩擦を軽減し、日々の業務をサポートするために、小さくても効果的な改善を継続的に行っています。

コミットツールウィンドウから、最近のコミットを直接修正(英語)できるようになりました。対話型リベースなどの面倒な手順はもう必要ありません。対象のコミットと必要な変更を選択して確認するだけで、残りの処理は IDE が自動的に行います。

Git ワークツリーに加えて、リモートのすべての変更を取り込む チェックアウトと更新(英語)アクションを導入することで、ブランチワークフローを改善しました。

さらに、変更の取得を自動化できるようになりました。別のプラグインは不要です。 設定 |Git リモートの変更を自動的に取得するを有効にしてください。

ターミナルの更新

  • コマンドを暗記するのはもうやめましょう。コマンドを積極的に発見しましょう。ターミナル補完機能を使えば、入力と同時に利用可能なサブコマンドやパラメーターを瞬時に確認できます。Git、Docker、kubectl といった複雑な CLI ツールを使っている場合でも、独自のカスタムスクリプトを使っている場合でも、この機能は有効なオプションをリアルタイムでインテリジェントに提案します。

    以前は Bash および Zsh シェル向けに導入されていた機能が、PowerShell でも利用可能になりました。

  • Esc の挙動(英語)を修正しました。以前はエディターにフォーカスが切り替わっていましたが、現在はシェルで処理されるようになったため、AI エージェントのワークフローが中断されることがなくなりました。また、 Shift+Enter は新しい行を挿入する(英語)では、複数行のプロンプトやコマンドを直接記述しやすくなりました。この動作は、 設定 詳細設定 ターミナルで無効にできます。

移行ガイド

メジャーリリースごとに、旧バージョンの MPS からの移行手順をご案内し、スムーズな移行を実現しています。最新の移行ガイドをよくご確認ください。