MPS 2023.3 ヘルプ

IntelliJ IDEA 内で MPS を使用する

このドキュメントでは、IntelliJ IDEA 内で MPS 言語を使用する方法を説明します。このトピックを取り上げたスクリーンキャスト(英語)もチェックしてみてください。

注: IntelliJ があることを確認してください インストールされています。Community と UltimateEdition の両方が機能します。

MPS コア IntelliJ IDEA プラグインを入手

MPS IntelliJ IDEA プラグインは、MPS ダウンロードページ (英語) (現在は利用できません) からダウンロードするか、JetBrains マーケットプレイス(英語)からダウンロードするか、IntelliJ IDEA のプラグインマネージャーを使用して直接インストールします。手動でインストールする場合は、ダウンロードしたプラグインの zip ファイルを IDEA のプラグインフォルダーに解凍する必要があります。また、IDEA バージョンに対応するバージョン番号の MPS プラグインをダウンロードしていることを確認してください (IDEA のプラグインマネージャーが自動的に処理します)。

  • Windows、Linux : 通常、USER_HOME/IDEA_version/config/plugins または IDEA_HOME/plugins

  • MacOS : 〜 /Library/Application Support/Idea_version/ または IDEA_HOME/plugins

zip ファイルにはいくつかの MPS プラグインが含まれていますが、そのうち 3 つが不可欠です。

  • mps-core - コア MPS 機能を保持

  • mps-java - BaseLanguage とその拡張機能を有効にします

  • mps-vcs - IntelliJ IDEA で MPS モデルのための VCS を可能にします

インストール後、プラグインディレクトリは次のようになります。

Plug1.png

再起動すると、MPS と主要な言語セットを IntelliJ IDEA 内で使用できるようになります。

MPS をオン / オフにする

IntelliJ IDEA のプラグインマネージャーに、いくつかの MPS プラグインがリストされているはずです。これらのプラグインは、必要に応じてオンとオフを切り替えることができます。

Plug2.png

IntelliJ IDEA 内で BaseLanguage を試す

IntelliJ IDEA プロジェクトに対して MPS ファセットを有効にすることができます。

Iplug3.png

ファセットにはいくつかの設定ポイントがありますが、最初の実験ではデフォルト設定を使用することをお勧めします。

Plug3.png

MPS ファセットをプロジェクトのモジュールに追加すると、プロジェクトビューモデルノードが作成され、MPS モデルを作成できるようになります。そうでない場合は、ソースタブで作成します。

Plug4.png

モデルフォルダーとしてマークする必要があります(models フォルダーの横のアイコンが青色に変わるはずです):

Plug5.png

最後のステップは、models フォルダーをモジュールのソースディレクトリとしてマークすることです。

Plug6.png

MPS モデルで遊ぶ

MPS ファセットが構成され、ソースフォルダーと同様にモデルとマークされた 1 つ以上のモデルルートがあれば、その中にモデルを作成することができます。

plug7.png

新しいモデルを作成するときは、その名前を指定し、新しいモデルの作成ダイアログで使用可能なモデルの種類の 1 つを選択する必要があります。

plug8.png

この場合の各モデルの種類は、モデルに使用される事前構成済みの言語のセットを表します。これは便利な省略形であり、プロジェクトビュー内のモデルノードで F4 または Alt+Enter を押すことにより、モデルプロパティダイアログからいつでも手動で使用言語のリストを調整できます。種類のリストには現在、これらのみが含まれるように設定されています。2 つのオプション(空と Java)ですが、将来のリリースで構成可能になる予定です。

モデルを右クリックすると、インポートされたモデルと使用言語が表示されます。

plug9.png

MPS モデルを使用すると、MPS 自体で行うのと同じ方法で、インポートされた言語から新しいノードを作成できます。プロジェクトビューモデルノードは MPS モデルのコンテンツを表し、MPS と同様に java パッケージに似ています。それらにモデル要素(ルート)を作成できます。

plug10.png

新しい MPS モデルを作成したときと同様に、各ルート要素に名前と種類を指定します。これは、MPS の概念を意味します。

plug11.png

ルートノードはプロジェクトビューに表示され、IntelliJ IDEA の他のリソースやファイルと非常によく似ています。ルートノードのプロジェクティブエディターは、ルートノードをダブルクリックするか、F4 キーを押すことで開くことができます。

plug12.png

コード生成

MPS モデルのコードプロセスは、IntelliJ IDEA のプロジェクトの作成 / 再構築アクションに関連付けられているため、自動的にトリガーされます。

生成されたソースコードをどこに保存するかを設定することができます。これは、MPS ファセット設定ダイアログで構成されます。選択できるオプションは 3 つあります。

  • 生成されたコードはメモリ内にのみ残ります。それはコンパイルプロセスの間だけ利用可能で、ディスクに全く保存されることは決してありません。

  • それはこのモジュールの設定されたソースフォルダーに保存することができます

  • ディスク上の任意の場所に保存できます

3-SetGeneratorOutputPath.png

言語プラグインをインストールする

おそらく IntelliJ IDEA の中で独自の言語を試すのを待つことができません。必要なのは私達が以前にコアのプラグインを解凍したのと同じ IntelliJ IDEA の plugins フォルダーにプラグインの zip ファイルを解凍することです:

Iplug6.png

さらに、プラグインの多くは JetBrains マーケットプレイス(英語)を通じて共有されているため、IDEA のプラグインマネージャーを通じて快適にダウンロードできます。

IntelliJ IDEA を再起動した後、使用される言語のリストにプラグインを通して来たあなたの言語を追加することができるでしょう:

plug14.png

これはあなたのカスタム言語が IntelliJ IDEA の中で使用できるようにするのに十分なはずです。

ランタイムライブラリを追加する

言語は通常他の言語や解決策への実行時の依存関係があります。これらは通常、プラグインの zip ファイル内に jar ファイルとしてバンドルされていますが、モジュール依存関係として IntelliJ IDEA にインポートする必要があります。MPS ファセットでは、ランタイム依存の言語を追加すると自動的にそれが行われます。

plug15.png

Java と BaseLanguage の間の相互運用性

MPS IDEA プラグインは、MPS コードを他の Java プロジェクトに密接に統合します。MPS コードは IDEA の構築と作成にシームレスに参加します。Java と BaseLanguage の間の使用箇所や定義にクロス移動でき、リファクタリングにはすべてのソースが正しく含まれます。

Java コードから BaseLanguage への変換

MPS は、Java コードを BaseLanguage にすばやく変換し、それを MPS モデルに移行するための便利なオプションを提供します。目的の Java パッケージを右クリックして、Java を MPS に変換を選択するだけです。

Convert.png

MPS 設定オプション

MPS 自体と同様に、MPS プラグインは、メニュー、ツールバー、キーボードショートカット Ctrl+Alt+Shift+S を使用して呼び出すことができる設定ダイアログを使用して構成およびカスタマイズできます。 MPS は、IntelliJ IDEA の設定ダイアログにいくつかの構成画面を追加しました。これにより、MPS の動作のいくつかの側面を構成できます。

EditorConfig.png
StyleConfig.png

ジェネレーターを設定する

さらに、IDEA コンパイラー 設定の外部ビルドを使用するフラグがオフになっていることを確認する必要があります。オフにしないと、プロジェクトを再構築できません。

genImg2.png