Author Archives: T.K

2017-11-29

PhpStorm(Intellij IDEA)のプラグイン作ってみる

GMOアドマーケティングのSSP開発チームのT.Kです。
コードレビューで処理を追いかける際にPhpStormを良く使いますが
ビューからコントローラへのジャンプが出来ず、不便に感じていました。
既存のプラグインで対応できるかもしれませんが、ブログの執筆を兼ねて
ビューから呼び出しコントローラを検索するプラグインを作ってみます。

環境構築
プラグインの開発はJavaとIntelliJ IDEAを使う必要があるので、公式からDLしてインストールします。

プロジェクトを作成
IntelliJ IDEAを起動したら、下記の手順でプロジェクトを作成します。

  • [File] -> [New] -> [Project] でプロジェクト作成画面を開く
  • [IntelliJ Platform Plugin] を選択して [Next] をクリック
    リストに[IntelliJ Platform Plugin]が無い場合は
    [File] -> [Settings] -> [Plugins] から [Plugin DevKit] を有効にしてください
  • [Project name] を入力して [Finish] をクリック

plugin.xmlを編集
プラグインの基本情報や依存関係などの設定ファイルです。
初期状態ではPHPStormで動作しないので、下記行のコメントを外します。

アクションを作成する
プロジェクトツリーのsrcディレクトリを右クリックして
[New] -> [Plugin DevKit] -> [Action] でアクション作成画面を開きます。

[Action ID] [Class Name] [Name] を入力します。

アクションの種類が大量にあり、全体を把握するには無理がありました。
今回はコンテキストメニューに追加したいので [PopupMenu] で検索し
[Groups] から [EditorPopupMenu(Editor Popup Menu)]
[Actions] から [EditorPopupMenu1(Editor Popup Menu Actions(1))] を選択しました。

[OK] をクリックするとクラスファイルが作成されます。
plugin.xmlを見ると <actions> に作成したアクションの情報が追加されています。

コードを書く
作成されたクラスファイル内のactionPerformedに処理を実装します。

動かしてみる
[Run] -> [Debug Plugin] から実行すると、 IntelliJ IDEA が別プロセスで起動します。

jarファイルの作成
[Build] -> [Prepare Plugin Module ‘<module name>’ for Deployment] で jar ファイルを作成します。

PhpStormにインストール
[File] -> [Settings] -> [Plugins] -> [Install plugin from disk] から作成した jarファイルをインストール
PhpStormを再起動すると反映されます。

PhpStormで動作確認
コンテキストメニューを開くと作成したプラグインの項目が追加されています。

実行すると検索結果が表示され、コントローラへのジャンプが楽になりました。

まとめ
Java初心者で最初は不安でしたが
IDEの補助と公開されているコードを参考に、最低限の機能は実装できました。
検索オプションでまだ不明な箇所があるので、引き続き調査&改良していきたいです。