IntelliJ プラットフォーム SDK プラグイン開発ガイド

ページの編集(英語)

IntelliJプラットフォームとは何ですか?

IntelliJ Platformは、それ自体の製品ではなく、IDEを構築するためのプラットフォームを提供します。 IntelliJ IDEA(英語)WebStorm(英語)RubyMine(英語)DataGrip(英語)Rider(英語)などのJetBrains製品のパワーに使用されます。オープンソースでもあり、第三者がGoogleからAndroid StudioなどのIDEを構築するために使用することができます。

IntelliJ Platformは、これらのIDEが豊富な言語ツールのサポートを提供するために必要なすべてのインフラストラクチャを提供します。ツールウィンドウ、ツリービューおよびリスト(高速検索をサポート)、ポップアップメニューおよびダイアログを作成するための高レベルのユーザーインターフェースツールキットを備えたコンポーネント駆動のクロスプラットフォームJVMベースのアプリケーションホストを提供します。

また、イメージエディタとフルテキストエディタが含まれており、シンタックスハイライト、コードフォールディング、コード補完、その他のリッチテキスト編集機能の抽象実装を提供します。

さらに、プロジェクトモデルやビルドシステムなど、共通のIDE機能を構築するためのプラグイン可能なAPIも含まれています。また、言語に依存しない高度なブレークポイントのサポート、コールスタック、ウォッチウィンドウ、式の評価など、非常に豊富なデバッグ環境のインフラストラクチャを提供します。

しかし、 IntelliJ Platformの真のパワーは、Program Structure Interface(PSI)に由来しています。これは、ファイルを解析し、コードの豊富な構文および意味モデルを構築し、このデータから索引を構築するために使用できる一連の機能です。クイックナビゲートからファイル、タイプ、シンボル、コード補完ウィンドウのコンテンツ、インスペクションコードのコーディング、コードの書き換え、クイックフィックスやリファクタリングなどの多くの機能が利用できます。

IntelliJ Platformには、多くの言語のパーサーとPSIモデルが含まれており、その構成可能な性質は、他の言語のサポートを追加することが可能であることを意味します。

プラグイン

IntelliJ Platform上に構築された製品は、構成可能なアプリケーションであり、プラットフォームはコンポーネントの作成とクラスへの依存の注入を担当します。 IntelliJプラットフォームはプラグインを完全にサポートしており、JetBrainsは1つ以上の製品をサポートするプラグインの配布に使用できるプラグイン・リポジトリー(英語)をホストしています。独自のリポジトリをホストし、個別にプラグインを配布することも可能です。

プラグインは、単純なメニュー項目の追加から、完全な言語のサポートの追加、システムとデバッガのビルドまで、さまざまな方法でプラットフォームを拡張できます。 IntelliJ Platformの既存の機能の多くは、最終製品のニーズに応じて組み込みまたは除外できるプラグインとして書かれています。詳細は、プラグインのセクションを参照してください。

IntelliJ PlatformはJVMアプリケーションで、主にJavaとKotlinで書かれています。 IntelliJ Platformに基づく製品用のプラグインを作成するには、これらの言語や関連するツールに精通している必要があります 。現時点では、 IntelliJプラットフォームを非JVM言語で拡張することはできません。

ソースを開く

IntelliJ Platformはオープンソースで、Apacheライセンス(英語)GitHub ホスト(英語)の下にあります。

このガイドではIntelliJ Platformを別のエンティティとして参照していますが、 IntelliJ Platformの GitHubレポはありません。代わりに、このプラットフォームは、IntelliJ IDEA UltimateのフリーでオープンソースのバージョンであるIntelliJ IDEA Community Edition(上記リンクされたGitHubリポジトリはJetBrains / intellij-community(英語)レポです)とほぼ完全にオーバーラップしていると見なされます。

IntelliJ IDEA Ultimateは、IntelliJ IDEA Community Editionのスーパーセットです。コミュニティ版に基づいていますが、クローズドソースプラグイン(この機能の比較を参照してください(英語))が含まれています。同様に、WebStormやDataGripなどの他の製品は、IntelliJ IDEA Community Editionに基づいていますが、異なるプラグインセットが含まれ、他のデフォルトプラグインは除きます。

これにより、プラグインは複数の製品をターゲットにすることができます。各製品には基本機能と、IntelliJ IDEA Community Editionレポからのプラグインの選択が含まれているためです。これがIntelliJプラットフォームと呼ばれています

通常、 IntelliJ Platformに基づくIDEは intellij-community リポジトリをGitサブモジュールとして含み、 intellij-communityからのプラグインとその製品を構成するカスタムプラグインを記述する設定を提供します。これは、IDEA Ultimateチームがどのように機能し、カスタムプラグインとIntelliJ Platform自体にコードを提供するかを示しています。

もちろんIntelliJ Platformはオープンソースであるため、ソースを表示するだけでなく、プラットフォーム自体にもプルリクエスト(英語)を使用できます。問題追跡はYouTrack(IDEAプロジェクトを使用)(英語)で管理されています。プラットフォームに貢献したい場合は、変更を行う前に変更内容を記述することをお勧めします。これにより、チームがフィードバックやアドバイスを行う機会が得られます。詳細は、IntelliJプラットフォームへの貢献のセクションを参照してください。

Rider

Rider(英語)は、 IntelliJプラットフォームを他のIntelliJベースのIDEとは異なる方法で使用します。 IntelliJプラットフォームを使用して、標準のIntelliJエディタ、ツールウィンドウ、デバッグエクスペリエンスなどを備えたC#および.NET IDEのユーザーインターフェースを提供します。また、標準の使用箇所の検索とSearch EverywhereのUIに統合され、コード補完、構文の強調表示などを使用します。

ただし、C#ファイルの完全なPSI(構文と意味)モデルは作成されません。代わりに、ReSharper(英語)を再利用して言語機能を提供します。 C# PSIモデル、すべてのインスペクション、およびクイックフィックスやリファクタリングなどのコード書き換えは、ReSharperのコマンドラインバージョンでプロセス外で実行されます。これは、Riderのプラグインを作成するには、IntelliJの "フロントエンド"にユーザーインターフェースを表示するプラグインと、ReSharperの "バックエンド"に存在するC# PSIを分析して使用するプラグインの2つの部分が必要であることを意味します。

Riderはインスペクションとコード補完の結果を表示するため、IntelliJ UIコンポーネントを必要としない多くのプラグインを記述することができます。詳細については、製品固有のセクションを参照してください。

最終変更日: