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

Each model 種類 in this case represents a preconfigured set of used languages for the model. This is a convenient shorthand that still allows you to tune the list of used languages manually at any time through the モデル特性 dialog by pressing F4 or Alt+Enter on the model node inside the プロジェクト・ビュー : The list of Kinds is currently set to contain only these two options (Empty and Java), but will be configurable in the future releases.

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

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設定オプション

Just like MPS itself, the MPS plugin can be configured and customized using the 設定 dialog, which you can invoke through the menu, a toolbar or using a keyboard shortcut Ctrl+Shift+Alt+S . MPS has added a couple of configuration screens to the IntelliJ IDEA's 設定 dialog, which allow you to configure several aspects of how MPS behaves.


EditorConfig

StyleConfig

ジェネレータを設定する

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

genImg2

最終更新日: 2020年6月18日