MPS の新機能

MPS 2025.3 の新機能

MPS 2025.3 では、JavaDoc 言語の大幅な改善、ジェネレータープランの大幅な変更、リフレクティブエディターのメジャーアップデートが導入されています。また、 論理ビューでのキーボード操作が可能になり、TextIcon ではライトテーマとダークテーマの視覚的に異なるバリエーションを提供できるようになりました。

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

JavaDoc 言語の全面的な見直し

JavaDoc 言語は、テキスト表現と編集に jetbrains.mps.lang.text 言語を使用するよう完全に移行されます。この変更によるユーザーエクスペリエンス全体への影響は最小限に抑えられると予想されますが、多くの問題が修正されます。

  • 編集エクスペリエンスは、BaseLanguage コメントや構造化言語ドキュメントなど、jetbrains.mps.lang.text を使用する他の MPS 言語と一貫性が保たれています。テキスト編集の詳細については、ドキュメントファセットページを参照してください。
  • JavaDoc、BaseLanguage コメント、言語ドキュメントコメント、その他 jetbrains.mps.lang.text が使用されている場所間でテキストをコピー & ペーストできます。プレーンテキストのコピー & ペーストも可能です。
  • テキストに太字や斜体などのスタイルを追加できるようになりました。このスタイルは、生成される Java ソースファイル内で HTML タグとして生成されます。

これまでに、JavaDoc 言語に関連するいくつかの問題が解決されてきました。

  • ブロックタグの説明は、文字列プロパティの代わりに jetbrains.mps.lang.text を使用するように変更されたため、ブロックタグ内でも同じ編集 / コピー / 貼り付け / スタイル機能が利用できるようになります。
  • ブロックタグは複数行の説明をサポートするようになりました。
  • ブロックタグ インラインタグの両方が Java ソースから正しく解析されるようになりました。
  • Java 言語仕様の規定に従って、新しい {@literal ...} インラインタグが追加されました。
  • CodeSnippet 内のコードはローカル変数を正しく解決します。
  • NodeWrapper は含まれているノードを正しくテキスト生成します。

BaseLanguage で利用可能な JavaDoc として貼り付けアクション

既存の Java ステートメントとして貼り付けおよび クラスコンテンツとして貼り付けアクションに加えて、再設計された JavaDoc 言語では、テキスト形式の JavaDoc コードを BaseLanguage に簡単に貼り付けることができる新しいアクションをサポートしています。最も重要なのは、この新しいアクションにより、JavaDoc コードが JavaDoc テキスト行、ブロックタグ、インラインタグに 適切に解析され、潜在的な参照解決(例: @param タグや {@link } タグ)も確実に処理されることです。

この新しい JavaDoc として貼り付けアクションは、クリップボードからテキストを解析し、現在のカーソル位置に JavaDoc コメントを貼り付けます。カーソルが既存の JavaDoc コメント内にない場合、このアクションは解析された JavaDoc 要素を後続のフィールド / メソッド / クラス定義の JavaDoc に添付し、必要に応じてそれらの要素用の新しい JavaDoc ファイルを作成します。

生成計画への寄付

ジェネレータープランに大幅な改善を加え、複雑なモデル変換におけるユーザーエクスペリエンスを向上させました。PlanContribution という新しい概念は、2024.1 で導入された実験的な fork as 機能に取って代わり、完全に置き換えられます。

さらに、ブランチ(プランまたはプランコントリビュートから生成されたブランチ)のモデルを、追加のモデル属性で示すメカニズムも追加しました。このメカニズムの潜在的なユースケースとしては、言語 / プラン設計者が、特定のブランチの結果を特定し、さらに処理するためにカスタムモデル属性を追加したい場合などが挙げられます。MPS 自体が使用する属性の一つに targetFacetjetbrains.mps.generator.extensions.common モデル参照)があり、これはモデルの適切な出力先を決定する際に <mps.make> がどの GenerationTargetFacet/ModuleFacet を参照するかを指示します。

ジェネレータープランによる条件付きフォーク

ジェネレータープラン内の fork ステップと PlanContribution はどちらも条件付きアクティベーションをサポートしています。これにより、特定の条件が満たされた場合にのみ、プラン内の特定のブランチをアクティベートすることが可能になりました。現在、MPS には、指定された plan parameters の値をチェックする条件文が付属しています。ジェネレータープランの厳密な解釈(つまり、プラン内に BaseLanguage コードがない)を維持しながら、最終的には文を拡張し、論理演算(and/or)やその他の潜在的な演算をサポートする予定です。

言語設計者はカスタム ParameterDeclaration クラスを提供できます。これらのパラメーターの値は、PlanParameterContributor 拡張ポイントを使用して提供できます。MPS には、すぐに使用できるいくつかの定義済みパラメーターが付属しています。詳細については、jetbrains.mps.generator.extensions.common モデルを参照してください。

明るい TextIcon と暗い TextIcon のオプション

TextIcon のレイヤーは、ライトテーマとダークテーマ、または両方のカラーテーマに適用するように設定できるようになりました。さらに、TextIcon の定義内のカラーリテラルは、ライトテーマとダークテーマで異なる値を提供できます。

リフレクティブエディターのオーバーホール

リフレクティブ(デフォルト)エディターの外観と操作性が新しくなりました。読み取り専用のデフォルトエディターがリフレクティブエディターに統合されたため、両者の混同がなくなりました。

プロジェクトビューでのキーボードショートカットの使用

プロジェクトビューの 論理ペインでキーボードショートカットを使用して新しい要素を作成するプロセスが大幅に改善されました。マウスを使用せずに新しいモジュール、モデル、ノードを導入できるようになりました。

目に見えない使用箇所のハイライト

キャレット位置のノードの使用箇所のハイライト表示は、エディターに実際に表示されている参照のみに制限されるようになりました。ノードのエディターに実際に表示されていないノードの使用箇所はハイライト表示されません。

多数のバグ修正

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

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

デフォルトで アイランドテーマ

新しい 島々テーマは MPS 2025.3 にバンドルされており、デフォルトでオンになっています。

移行ガイド

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