MPS 2023.3 ヘルプ

IntelliJ IDEA 言語プラグインの構築

それで、一連の言語を作成しました、IntelliJ IDEA の中の Java 開発者に利用可能にしたいです。この文書では、おそらくそれらが依存するランタイムと共に、一連の言語を有効な IntelliJ IDEA プラグインにパッケージする方法を見ていきます。

動画の方が好きですか? IntelliJ IDEA 言語プラグイン作成のトピックを取り上げたスクリーンキャスト(英語)もチェックしてみてください。

注: MPS に付属の JavaExtensionsSample サンプルプロジェクトには、サンプルの Java 拡張機能をビルドしてプラグインにパッケージ化するための完全に機能的なビルドスクリプトが含まれています。そこからインスピレーションを受けることができます。

出発点

あなたの言語を構築したと思い、今それは世界と共有する時です。他の人がつかむためにサーバーにアップロードすることができる良い zip ファイルを得るために従う必要があるいくつかのステップがあります。

簡単に言うと:

  • ビルドスクリプトを作成する (手動またはウィザードを介して)

  • Ant ビルド xml ファイルを生成する

  • Ant の実行

  • 生成されたファイルを選んで共有する

それでは、さらに詳しく説明します。あるいは、IntelliJ IDEA 言語プラグインの使用と同様に構築のトピックをカバーする私たちの新しいスクリーンキャストを試してみるのが好きかもしれません。

ビルドスクリプトを作成する

まず最初に、新しく作成したビルドソリューションで新しいビルドスクリプトを作成する必要があります。ウィザードを使用するか、ビルド記述を手動で作成するという 2 つの選択肢があります。

ウィザードを使う

ソリューションの構築ウィザードを使用して、ソリューションを生成できます。

build1.png

ウィザードは、新しいビルドスクリプトを既存のソリューションの一部にするかどうか、新しいものを作成するかどうかを確認します。

build2.png

モデルは新しいソリューション内に作成する必要があります。

build3.png

結果を MPS プラグインと IntelliJ IDEA プラグインのどちらとしてパッケージ化するかを指定することもできます。

build5.png

最後に、ビルドスクリプトに含める言語とソリューションを選択します。

build6.png

生成されたビルド記述スクリプトは次のようになります。

build7.png

手動によるアプローチ

プロセスをさらに制御するには、ビルドスクリプトを自分で作成することもできます。まず既存のソリューションを選択するか、新しいソリューションを作成する必要があります。プロジェクトの論理ビューのルートで右クリックし、新しいソリューションを選択します。ソリューションが存在したら、その中に新しいモデルを作成します。モデルには、使用言語として jetbrains.mps.buildjetbrains.mps.build.mps がリストされ、jetbrains.mps.ide.buildDependency として記載されている必要があります。

build12.png
build13.png

ソリューションとモデルを準備したら、ポップアップメニューから新しいビルドプロジェクトを作成できます。

build14.png

ビルドスクリプトを編集する

どちらの方法でもビルドスクリプトを作成しました。今度はビルドの説明を編集します。あなたの言語とソリューションを IntelliJ IDEA プラグインとしてパッケージ化することができるようにするためには、次のようなスクリプトを早急に入手してください。

build8.png

両方の依存関係のアーティファクトの場所を定義することが重要です。IDEA 依存関係は、IntelliJ IDEA インストールの場所を知る必要があります。mpsPlugin の依存関係では、MPS コア IDEA プラグインの場所を知る必要があります。プラグインを追加して IntelliJ IDEA 内で MPS を有効にすると、通常は IntelliJ IDEA インストールフォルダー / プラグインフォルダーに配置されます。または、プラグインがユーザーのホームフォルダーの IntelliJ IDEA 設定フォルダー /config/plugins にインストールされている場合もあります。

ビルド言語機能の詳細については、「ビルド言語」を参照してください。

Ant ビルド xml ファイルを生成する

ビルドスクリプトを用意して、今 Ant の build.xml ファイルを生成することができます。ビルドソリューションを再構築するだけで、次の図に示すように、ビルドスクリプトのプロパティで指定した場所にファイルが生成されます。

build11.png

生成された build.xml ファイルは次のように開始する必要があります。

build10.png

生成されたスクリプトで artifacts.IDEAartifacts.mpsPlugin の特性に注目してください。コマンドラインからスクリプトを実行するときは、IntelliJ IDEA のインストールと MPS コアプラグインの場所をそれぞれ指すようにする必要があります。

上記のスクリプトでは、マクロ$idea_home$plugins_home)を使用して両方のアーティファクトの場所を設定しているため、代わりに theese プロパティを設定できます(ビルドマシン上の場所がビルドスクリプトで設定されたパスと異なる場合のみ必要)。

Ant の実行

ビルドを実行してプラグインを入手する時が来ました。繰り返しになりますが、2 つの選択肢があります - MPS 内に留まるか、コマンドラインを使用するかのいずれかです。

MPS 内から

プロジェクトビューでビルドノードを右クリックし、実行を選択するだけです。

build9.png

生成されたアーティファクトは、ベースとして指定したフォルダー内のビルドフォルダーに配置されます。

コマンドラインから

コマンドラインで build.xml ファイルがあるフォルダーに移動し、ant を実行する必要があります。ビルドマシン上の MPS コアプラグインと IntelliJ IDEA の場所がビルドスクリプトに設定されたパスと異なる場合は、コマンドライン ant -Dartifacts.mpsPlugin="..." -Dartifacts.IDEA=" で実際の場所を指定する必要があります。...」。上記の例では、$idea_home を使用して IntelliJ IDEA インストールフォルダーを指定し、$plugins_home を使用して MPS コアプラグインを指定しているため、代わりにコマンドラインでこれらのプロパティの値を変更できます: ant -Didea_home="path to idea" -Dplugins_home ="MPS コアプラグインへのパス " .

このステップは、MPS またはコマンドラインのどちらからスクリプトを実行しても、必要なすべての jar ファイルを含む zip ファイルを生成します。これは、ビルドスクリプトのレイアウトセクションで指定したとおりです。IntelliJ IDEA プラグインのデフォルトレイアウト。

生成されたファイルを選んで共有する

次に、生成されたファイルを IntelliJ IDEA ユーザーに配布して、プラグインとして追加できるようにする必要があります。IntelliJ IDEA で使用するプラグインのインストールの詳細については、「IntelliJ IDEA 内で MPS を使用する」を参照してください。

関連ページ:

ビルド言語

MPS ビルド言語とは何ですか? :ビルド言語は宣言的な方法でビルドを定義するための拡張可能なビルド自動化 DSL です。Ant に生成された、Ant の実行機能を活用しながら、ソースをクリーンで無駄のない詳細情報から解放します。一番下に ANT がある MPS 言語のスタックとして編成されているため、ビルド手順の各部分を異なる抽象化レベルで表現することができます。(MPS プラグインのような)複雑なアーティファクトを構築することは、言語の慣習に従えば、たった 1 行のコードで指定できますが、同時...

IntelliJ IDEA 内で MPS を使用する

このドキュメントでは、IntelliJ IDEA 内で MPS 言語を使用する方法を説明します。このトピックを取り上げたスクリーンキャストもチェックしてみてください。注: IntelliJ があることを確認してくださいインストールされています。Community と UltimateEdition の両方が機能します。MPS コア IntelliJ IDEA プラグインを入手:MPS IntelliJ IDEA プラグインは、MPS ダウンロードページ (現在は利用できません) からダウンロード...

MPS 言語プラグインの構築

MPS のプラグインとして言語を配布することは、IntelliJ IDEA のパッケージ言語と非常によく似ています。2 つの重要な違いがありますが、IntelliJ IDEA 言語プラグインの構築と同じ手順に従ってください。アタッチのスクリーンショットにあるように、ビルドスクリプトは mps に依存する必要があります。また、上の依存により mpsPlugin が IntelliJ IDEA で使用可能な機能のサブセットのみに IDEA プラグインを制限しながら、全体 MPS インフラや言語のセット全体を...