PhpStorm Plugin 開発における config 設定(M1 Mac)
IntelliJ Plugin の開発者向けドキュメントは非常に整備されていますが、この通りに進めていてもハマってしまっていました。
なんとか動くところまで出来たので、解決方法を書いていきます。
あと、ハマった原因は M1 Mac だからと断定することは出来ませんが、自分は M1 Mac でしか確認できていないので、 M1 Mac に限定した記事になっています。
目的
- PhpStorm Plugin を runIde で実行
- PhpStorm Plugin を build して PhpStorm で動かす
環境
- M1 Mac (macOS Monterey)
- PhpStorm 2022.1 (Build #PS-221.5080.224, built on April 14, 2022)
- IntelliJ IDEA 2022.1.1 (Community Edition)
プロジェクトの作成
IntelliJ Platform 向け Plugin のプロジェクトを作成する場合
があります。
今回は Gradle を使う方法で PhpStorm Plugin を作成しました。
※ GitHub Template は Gradle プロジェクトのテンプレートです
gradle-intellij-plugin の設定
PhpStorm は gradle-intellij-plugin で intellij.type が定義されていないです。そのためbuild.gradle.kts
の設定をちゃんと書く必要があります。
公式ドキュメントによる設定の解説(Deepl翻訳)
Attribute | Attribute Value |
---|---|
intellij.type |
IU はIntelliJ IDEA Ultimateのことです。必要なPHPプラグインは、IntelliJ IDEA Community Editionと互換性がありません。 |
intellij.version | PhpStormのターゲットバージョンと同じIU BRANCH.BUILDに設定します(例:193.5233.102 )。 |
intellij.plugins |
com.jetbrains.php:193.5233.102 でPHPプラグインを使用します。PHPプラグインのバージョン情報については、以下をご参照ください。 |
runIde.ideDir | ローカルにインストールされたPhpStormのターゲットバージョンへのパス。例えば、macOSの場合: /Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/193.5233.101/PhpStorm.app/Contents.PhpStorm のようになります。 |
公式ドキュメントに記載されているbuild.gradle.kts
のサンプルコード
intellij {
// Define IntelliJ Platform against which to build the plugin project.
type.set("IU")
// Use the IntelliJ Platform BRANCH.BUILD version matching
// "targetIDE" (PhpStorm):
version.set("192.7142.36") // baseIntelliJPlatformVersion
// Require the targetIDE plugin or library. Use the stable version
// compatible with intellij.version and intellij.type specified above:
plugins.set(listOf("com.jetbrains.php:192.6603.42"))
}
runIde {
// Absolute path to the installed targetIDE to use as IDE Development
// Instance (the "Contents" directory is macOS specific):
ideDir.set(file("/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/192.7142.41/PhpStorm.app/Contents"))
}
version には、そのまま version をセットする
この version は build number かと誤解していてかなりハマりましたが、正しくは普通の version を設定するようです。
上の画像の PhpStorm の version であれば
+ version.set("2019.2.4") // baseIntelliJPlatformVersion
- version.set("192.7142.36") // baseIntelliJPlatformVersion
/Applications/
にある
runIde.ideDir はここはユーザーの環境によると書いてあったので、/Users/$USERNAME$/Library/Application Support/
を探してみたところ、/Users/$USERNAME$/Library/Application Support/JetBrains/PhpStorm2022.1
がありました。
このパスを設定して実行したところ
/Users/[username]/Library/Application Support/JetBrains/PhpStorm2022.1/build.txt (No such file or directory)
とエラーが出て実行出来ませんでした。
どうやら/Applications/PhpStorm.app/Contents
が正解みたいです。(まあ環境によるのですが、 M1 Mac ユーザーは同じかな?と思います。)
+ ideDir.set(file("/Applications/PhpStorm.app/Contents"))
- ideDir.set(file("/Users/$USERNAME$/Library/Application Support/JetBrains/Toolbox/apps/PhpStorm/ch-0/192.7142.41/PhpStorm.app/Contents"))
plugin.xml の設定
この設定は PhpStorm で使う PHP plugin APIs を利用するための記述です。
<!-- Targeting PhpStorm, so is dependent on the PHP plugin -->
<depends>com.jetbrains.php</depends>
<depends>com.intellij.modules.platform</depends>
PhpStorm Plugin を runIde で実行
IntelliJ の右側に Gradle というタブがあるので、それを開いてrunide
をダブルクリックします。
うまく実行できると、 PhpStorm の Welcome 画面が出てきます。
Plugins から作ってみた Plugin があれば完了です
PhpStorm Plugin を build して PhpStorm で動かす
build ボタンを押してビルドします
PhpStorm を起動してInstall Plugin from Desk...
を押します。
project > build > libs > プラグイン名.jar を選択
Installed の項目に build したプラグインがあれば完了です。
終わりに
PhpStorm Plugin の開発に関する日本語記事少ないですね😭
今回はオープンソースで公開されている PhpStorm Plugin のリポジトリをみて解決しました。
まだ全然開発できていないので、ハマることは予測できますが、その時記事にしていこうと思います。
参考
Discussion