MPS 2020.3 ヘルプ

IntelliJ IDEA 内で MPS を使用する

このドキュメントでは、IntelliJ IDEA 内で MPS 言語を使用する方法を説明します。このトピックを網羅するスクリーンキャスト(英語)をチェックアウトするのを好むかもしれません。

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

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

MPS ダウンロードページ(英語)から MPS IntelliJ IDEA プラグインをダウンロードするか、IntelliJ IDEA のプラグインマネージャーを使用して直接インストールします。手動でインストールする場合は、ダウンロードしたプラグインの zip ファイルを 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

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

MPS をオン / オフにする

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

Plug2

IntelliJ IDEA 内で BaseLanguage を試す

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

Iplug3

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

Plug3

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

Plug4

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

Plug5

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

Plug6

MPS モデルで遊ぶ

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

Plug7

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

Plug8

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

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

Plug9

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

Plug10

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

Plug11

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

Plug12

コード生成

MPS モデルのコードプロセスは、IntelliJ IDEA のプロジェクトの作成 / 再構築アクションに関連付けられているため、自動的にトリガーされます。
生成されたソースコードをどこに保存するかを設定することができます。これは、MPS ファセット設定ダイアログで構成されます。選択できるオプションは 3 つあります。

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

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

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

3 set generator output path

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

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

Iplug6

さらに、プラグインの多くは IntelliJ IDEA プラグインリポジトリ(英語)を通して共有されているため、IDEA のプラグインマネージャーを通して快適にダウンロードすることができます。

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

Plug14

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

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

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

Plug15

Java と BaseLanguage の間の相互運用性

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

Java コードから BaseLanguage への変換

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

Convert

MPS 設定オプション

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


Editor config

Style config

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

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

Gen img2