MPS 2023.3 ヘルプ

MPS 言語プラグインの構築

MPS のプラグインとして言語を配布することは、IntelliJ IDEA のパッケージ言語と非常によく似ています。2 つの重要な違いがありますが、IntelliJ IDEA 言語プラグインの構築と同じ手順に従ってください。

  1. アタッチのスクリーンショットにあるように、ビルドスクリプトは mps に依存する必要があります。

    build15.png

    また、上の依存により mpsPlugin が IntelliJ IDEA で使用可能な機能のサブセットのみに IDEA プラグインを制限しながら、全体 MPS インフラや言語のセット全体を活用することができ、あなたの言語を MPS。

  2. コマンドラインから Ant ビルドスクリプトを実行するときは、(artifacts.mpsPlugin の代わりに)artifacts.mps プロパティを設定し、MPS インストールホームディレクトリを指すようにします。

    build16.png

生成されたプラグインは MPS にインポートすることができます。手動でまたは MPS プラグインマネージャーを通してプラグインをインストールすることができます。手動でインストールする場合は、ダウンロードしたプラグインの zip ファイルを MPS プラグインフォルダーに解凍する必要があります。

  • Windows、Linux : 通常、USER_HOME/MPS_version/config/plugins または MPS_HOME/plugins

  • MacOS : 〜 /Library/Application Support/MPS_version/ または MPS_HOME/plugins

再起動後、インポートされた言語は MPS で利用可能になります。

プラグイン内のモジュールの可視性を制御する

デフォルトでは、MPS は、言語プラグインからのすべてのモジュールがエンドユーザーに表示されることを前提としています。ただし、これが常に最適な戦略であるとは限りません。言語の数が増え、プラグインの複雑さが増すにつれて、言語設計者が特定のモジュールをエンドユーザーから隠したい場合があります。これらのモジュールは引き続き存在し、機能しますが、インポートするモジュールを選択するときに、エンドユーザーはダイアログにこれらを表示しません。これは、関係のない多数の言語やソリューションでエンドユーザーを混乱させたり圧倒したりしないようにするために役立ちます。

プラグインは、com.intellij.mps.LanguageLibrary 拡張ポイントを使用して、プラグインが提供するモジュールについて MPS に通知します。その拡張ポイントへの拡張では、オプションの Hide="true" 属性を提供できます。これにより、プラグインのすべてのモジュールがフィルタリングの対象となる可能性があります。フィルタリングを有効にするには、com.intellij.mps.VisibleModuleMask とそれが定義する拡張ポイントを使用してパターンを指定する必要があります。