MPS 2020.1 ヘルプ

IntelliJ IDEA 内で MPS を使用する

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

メモ: IntelliJ があることを確認してください インストールされています。Community と Ultimate エディションの両方が機能します

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

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

Plug5

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

Plug6

MPS モデルで遊ぶ

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

plug7

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

plug8

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

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

plug9

MPS モデルでは、MPS 自体と同じ方法でインポート言語から新しいノードを作成できます。プロジェクトビュー内のモデルノードは MPS モデルの内容を表し、MPS と同様に java パッケージに似ています。その中にモデル要素(Roots)を作成することができます。

plug10

新しい MPS モデルを作成したときと同様に、各ルート要素に名前と種類を付けます。これは、その MPS コンセプトを意味します。

plug11

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

plug12

コード生成

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

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

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

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

3 SetGeneratorOutputPath

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

おそらく 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+Shift+Alt+S を使用して呼び出すことができる設定ダイアログを使用して構成およびカスタマイズできます。MPS は、IntelliJ IDEA の設定ダイアログにいくつかの構成画面を追加しました。これにより、MPS の動作のいくつかの側面を構成できます。


EditorConfig

StyleConfig

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

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

genImg2