MPS 2026.1の新機能

MPS が IntelliJ Platform 2026.1、JDK 25、および Kotlin 2.3 を使用するようになりました。 Build Language に推移的依存関係が加わり、移行の再現性が高まり、Java スタブの品質が大幅に更新されています。 バンドルの Projectional Agent Toolkit プラグインを使用すると、AI コーディングエージェントで MPS モデルの読み書きが可能になるため、MPS 開発者や言語開発者が最先端の開発概念を利用できるようになります。

すべての変更点を以下に掲載しています。

Projectional Agent Toolkit – AI コーディングエージェントと MPS モデルを直接連携できるようになりました

MPS には Model Context Protocol を介して AI コーディングエージェントに MPS のプロジェクション、モデル、および言語ワークベンチを公開する Projectional Agent Toolkit プラグインが付属しています。 Claude Code、OpenAI Codex、JetBrains Junie などのエージェントやその他の MCP 互換クライアントは動作中の MPS インスタンスに接続し、開発者と同じようにモジュールとモデルの操作、プロジェクションエディターを介したノードの読み取りと編集、参照の解決、概念階層の検査、コードの生成、および構成の実行を行うことができます。 .mps ファイルを不明瞭な XML として処理する必要はなくなりました。

Projectional Agent Toolkit は MPS プロジェクトに全面的に対応する複数のツールセットを備えています。

  • プロジェクト、モジュール、モデル - これらはエージェントによるソリューション、言語、devkit を列挙し、モデルを開いて作成し、依存関係を解決することを可能にするものです。
  • 言語、コンセプト - これらはエージェントが概念階層、プロパティ、子要素、参照、および継承を検査し、JSON ブループリントから構造概念を実装可能にするものです。
  • ルートノード、ノード - これらはエージェントがテキストレベルの編集ではなく、概念の制約を尊重するノード認識操作を介してノードの読み取り、作成、更新、移動、および削除を行うことを可能にするものです。
  • 参照、スコープ - これらはエージェントが割り当て可能なターゲットに対して参照リンクをクエリし、エージェントが最初から有効な参照先を選択できるようにするものです。
  • 実行構成 - これはエージェントがプロジェクト実行構成のリストアップと実行を行い、変更を最初から最後まで検証できるようにするものです。

エージェントが可能な限り迅速に生産性を発揮できるようにするため、ツールキットにはスキル一式(ツールに付属する特定の目的に特化したモデル認識型プレイブック)もバンドルされています。 これらは MPS 言語の構成、構造概念の実装方法、エディターとの連携方法、JSON AST 形式での BaseLanguage の記述方法、DSL 固有のメモリを後続のセッション用に記録する方法をエージェントに指示します。 スキルは同じ MCP チャンネルを介して検出可能であるため、新しく接続されたエージェントは編集を開始する前に知っておくべきことを MPS に問い合わせることができます。

IntelliJ ベース IDE 組み込みの各種 AI アシスタントと同じ使用感が言語と DSL 開発にも必然的に適用されました。エージェントは新しい概念の実装、エディターと制約の関連付け、behavior メソッドの追加、DSL コードの作成、その再生成、結果のテストと実行のすべてを MPS セマンティックモデル内で行えます。 これにより、AI 支援機能は言語設計者にとって便利なコード補完機能からプロジェクションを理解する協働作業者へと変わりました。

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

詳細については、Projectional Agent Toolkit ドキュメントをご覧ください。

IntelliJ Platform 2026.1、JDK 25、および Kotlin 2.3 への移行

MPS 2026.1 をもって IntelliJ Platform の最新世代への移行が完了します。 ランタイムは 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 Platform の自然言語サポートを利用するようになりました。 そのため、ICheckedNamePolicy のインスタンス内のインテンション、アクション、ツールといった文字列値が特定の自然言語のルールに従って適切に大文字が使用されているかどうかを確認することができます。

希望する言語の自然言語サポートを MPS にインストールし、IDE で文字列に使用されている言語を検出して単語ごとに適切に大文字が使用されているかどうかを検証できるようになりました。 また、言語検出の仕組みを通さずに希望する言語を明示的に指定することも可能です。

MPS ではデフォルトの Title-case(タイトルケース)の大文字化ルールに加えて、以下の 3 つのオプションも提供されています。

  • Sentence-case(センテンスケース): IntelliJ Platform のルールに従います。
  • Inherited(継承): 最も近い上位の ICheckedNamePolicy 大文字化ルールを使用します。
  • No capitalization rules(大文字化ルールなし)

二項演算を複数行に分割する機能

エディター内で二項演算を含む長い行を分割できるようになりました。 専用のインテンションアクションを使用することで、特定の BinaryOperation のレイアウトを単一行または複数行に切り替えることができます。

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

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

  • デフォルトで無効化されています。
  • このスタイルは read-only スタイルと同様に継承可能かつオーバーライド可能です。
  • メインエディターのセルには有効ではありません。
  • この仕組みで設定された read-only はインスペクターのエディターセルツリーのさらに下にあるセルでオーバーライドできます。

Build Language 内の遷移的依存関係

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

これにより、すべてのユーザーに依存関係リストの更新を要求することなく大きなビルドをより小さなビルドに分割できるようにしています。 たとえば、サブプロジェクト全体で使用されており、増え続けている外部ライブラリ一式を 1 つの platform ビルドスクリプトでラップすることが可能です。

記録済みの依存関係を介した移行の信頼性強化

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

バージョン 2026.1 の移行の仕組みでは現時点で観察される状態ではなく、最後に変更された時点でモジュール記述子に記録された依存関係と使用言語が一貫して使用されるようになっています。 移行チェッカーもそれに合わせてリファクタリングされ、 移行プロセスで必要となった情報をその時点で再計算するのではなく、すでに収集されている情報を再利用するようになっています。

Java スタブの改善

長期にわたって未解決となっていた Java スタブ関連の一連のバグが修正され、インポートされた .jar ファイルと Java Sources モデルのルートに対して生成される BaseLanguage スタブの正確性が目に見えて改善されました。

  • MPS-33174(2021 年より未解決)- InnerClasses 属性のあるクラスが BaseLanguage スタブに正しく変換されるようになりました。 シグネチャーの内部クラスの情報とパラメーター化されたオーナーの型が保持され、外部ジェネリクスクラスの内部クラスのフィールドとメソッドが外部クラスに折りたたまれるのではなく、適切な型を表示するようになりました。
  • MPS-39375 – 内部クラスのジェネリクスメソッドの型変数で、外部クラスの型変数を参照するメソッドが実際の型変数の代わりに java.lang.Object を表示しなくなりました。
  • MPS-39007 – Java Source スタブモデルのすべてのルートで「Java imports annotation is present」という誤ったエラーが表示されなくなりました。
  • MPS-39565 – 含んでいるモジュールのプロパティが変更されても Java Source スタブのルートが消滅することがなくなり、モジュールのプロパティが変更されてもプロジェクトコードからそのルートへの参照がそのまま維持されるようになりました。

プロジェクトライフサイクルのモダン化

MPSProject が IntelliJ IDEA の従来の ProjectComponent からプロジェクトサービスに移行したことにより、MPS を認識する機能に MPSProject の使用可否に関する通知を確実に得る方法が必要になりました。

このバージョンでは MPSProject の起動および停止アクティビティを管理する専用の仕組みが導入され、MPS がそれらのアクティビティのシーケンス、グループ化、順序付け、およびスレッド化を制御できるようになりました。 これは、プラットフォームの ProjectActivityMPSProjectActivity では提供できなかった仕組みです。

仕組み: 実装側は listenerClass とオプションの priority 整数値を使用する ProjectLifecycleListener.Bean を介して jetbrains.mps.project.lifecycleListener 拡張ポイント(MPSCore.xml で宣言)に登録します。 MPSProject 内の LifecycleEventDispatch.java は以下の項目を発行できます。

  • projectReady(ノンブロッキング)
  • projectDiscarded(ブロッキング)
  • asyncProjectClosed(ノンブロッキング)

Wayland のデフォルト提供

MPS がサポート対象の Linux システムで Wayland をデフォルトのディスプレイプロトコルとして提供するようになりました。 Wayland 対応環境で MPS を実行すると、X11 互換性レイヤーを使用する代わりに自動的にネイティブの Wayland バックエンドに切り替わります。これにより、モダンな Linux デスクトップ標準に準拠することができます。

この移行によってシステムとの全体的な統合が改善され、特に HiDPI およびフラクショナルスケーリング環境で Wayland コンポジタ全体の安定性の向上、入力メソッドとドラッグアンドドロップの適切なサポート、およびより一貫したレンダリングが得られます。 ユーザーエクスペリエンスは概して従来と変わりありませんが、Wayland のアーキテクチャによる若干の違い(ウィンドウの配置や外観など)に気付くかもしれません。

多数のバグ修正

MPS 2026.1 には広範なバグ修正が含まれています。 解決された課題の完全なリストは、こちらでご覧ください。

プラットフォーム関連の更新

UI の更新

JetBranis MPS 2026.1 では引き続き究極の快適性と人工工学に基づく UI を最優先とすることで、ワークスペースでもコードと同じようなアクセス性とカスタマイズ性を確保できるようにしています。

長く待ち望まれていた IDE のテーマを OS と同期する機能が Linux ユーザーにも提供され、macOS と Windows と同等の機能が実装されるようになりました。 この機能は、Settings(設定)| Appearance & Behavior(外観 & 振る舞い)| Appearance(外観)で有効化できます。

キーボードを使用する Windows ユーザーが Alt キーを押して IDE のメインメニューにフォーカスを移動できるようになりました。 この変更により、スクリーンリーダーユーザーのアクセシビリティが改善しています。

バージョン管理に関する更新

JetBrains は小さいながらも効果の大きな改善に継続的に取り組むことで、手間を軽減しながら日々のワークフローをサポートしています。

Commit(コミット)ツールウィンドウから直接最近のコミットを修正できるようになりました。対話型のリベースを伴う大がかりな作業は必要ありません。 対象のコミットを選択して必要な変更を行って確定するだけで、IDE が残りの処理を行います。

Git ワークツリーに加えて、すべてのリモート変更をプルする Checkout & Update(チェックアウトと更新)アクションを導入によってブランチのワークフローも改善しました。

さらに、変更のフェッチを自動化できるようになりました。個別のプラグインは必要ありません。 Settings(設定)| GitFetch remote changes automatically(リモートでの変更を自動でフェッチする)を有効化してください。

ターミナルに関する更新

  • コマンドを記憶するのではなく、 発見できるようになります。 ターミナル内での補完により、入力の途中で使用可能なサブコマンドとパラメーターをすぐに調べることができます。 この機能は、Git、Docker、kubectl などの複雑な CLI ツールを使用している場合や独自のスクリプトを使用している場合に有効なオプションをリアルタイムでインテリジェントに提案します。

    従来は Bash シェルと Zsh シェルに導入されていた機能ですが、PowerShell でも使用できるようになりました。

  • Esc の動作を修正しました。エディターにフォーカスを切り替えることなくシェルで処理されるようになったため、AI エージェントのワークフローが中断されることはありません。 また、Shift+Enter で改行を挿入できるようになったため、複数行にまたがるプロンプトやコマンドを直接書き込みやすくなりました。 この動作は、Settings(設定)| Advanced Settings(詳細設定)| Terminal(ターミナル)で無効化できます。

移行ガイド

各メジャーリリースでは、旧バージョンの MPS から円滑に移行するための手順が用意されています。 更新された移行ガイドをよくご確認ください。