15日目 プラグインの探し方
野良プラグインはほとんど存在しないので、公式サイトをチェックしてるだけで十分です。
http://plugins.intellij.net
IntelliJ以外のIDEも根っ子はIntelliJなので、プラグインも互換性があります(ReSharperは除く)。ただ、意外なところで非互換もあるようなので、変だな?と思ったらプラグインのコメントやバグ管理(YouTrack)、掲示板(Jive)などを確認してみてください。
簡単にプラグインページの見方を説明します。プラグインには、それぞれ対応するIDEのビルドナンバーと言うのがあります。
ビルドナンバーは、Help->Aboutで確認できます。これがマッチしてないと、プラグインサイトにあるけと、IDEのプラグインマネージャには出てきませんので、ご注意を。
ただこれ、プラグイン本体(jarファイル)のMETA-INF/plugin.xml
に記述してある値を参照してるだけなので、どうしても使いたいプラグインは、この値を直接書き換えると動く事がままあります(それでもダメな時もありますが...。
<id>Pythonid</id> <name>Python</name> <idea-version since-build="117.747" until-build="118.0"/> ← ここを書き換える <description>Smart editing for Python scripts</description>
おなじような情報で、依存してるプラグインというのがあります。こちらはプラグインページの「details」リンクから確認できます。ここでは「このプラグインを使うには、このプラグインが必要」という情報がわかります。どっちか言うと「このプラグインは、このIDEで動きますよ」と言った方が近いかも。もっと言うと、IntelliJ IDEA Community Editionで使えるかどうか、ですかね。:-)
サポートしている言語やフレームワークに惹かれて、とりあえずIntelliJ IDEA Community Editionからはじめる方もそれなりにいると思いますが、Community Editionは、結構何にもできないですよ(Scala/Android用IDEってところですかね。
→ IntelliJ Community Editionのビミョー感
IntelliJにPhpStorm、RubyMine、PyCharmの機能をアドインする、PHP, Ruby, Pythonの言語系プラグインもUltimate専用ですし、GAE(Google App Engine)、AWS(Amazon Web Service)などのクラウド系もUltimate専用です(かろうじてHerokuは他のIDEも使えるようですが。
それとなんだかんだ言ってIntelliJ用のプラグインが一番豊富な気がします*1。
PHP, Ruby, Pythonなどの言語系プラグインについて
これらはJetBrains公式のプラグインで、IntelliJ IDEA Ultimate EditionにPhpStorm、RubyMine、PyCharmの機能を持たすことができます。つまりIntelliJとAppCodeさえ買えば、JetBrains製IDEはほぼ網羅できる事なんですが、ちょっとだけ落とし穴というか、注意点があります。
それは、これら言語系プラグインのリリース時期と対応するIntelliJのバージョンです。PHP, Ruby, Pythonプラグインの開発は、それらに対応するIDEの開発から派生します。つまり、PhpStormやRubyMine、PyCharmの次期バージョンがリリースされたら、ちょっと遅れて、IntelliJ用のプラグインがリリースされます。よって、いち早く新しいバージョンの機能を利用したくともIntelliJ用のプラグインが出るまでお預けになります。
またプラグインと対応するIntelliJのバージョンがうまくかみ合わず、最新のIntelliJを使いたいのに、言語系プラグインが安定して動くのは、ひとつ前のIntelliJだった、なんて事もままあります(その逆もあります。
基本、RubyMine=Rubyプラグイン、PyCharm=Pythonプラグインのはずなのですが、実際使ってみると微妙な違いがあるようです。しょうも無い話ですが、JRubyつかってJavaのコードを呼び出すのはRubyMineじゃできません。とか、今では大丈夫みたいですが、Rubyのカバレッジ取れるのはRubyMineだけだった。...とかなんてこともあるので、どれもそれなりに注意点があるんだなと思ってた方がよいです。
そんなわけで、IntelliJ IDEA Ultimateを持っているけど、RubyMimeもWebStormも買っちゃう富豪の気持ちもわからなくもないです。わたしの財力ではムリだけど。:-)
#IntelliJ Ultimateは全部入りとは言え、力入れてるのはJavaなんだなと。
ps.
Scalaプラグインについては、他の言語系プラグインと違って(Flex, Groovyみたく)IntelliJにバンドルされてるわけでも、(PHP, Ruby, Pythonみたく)単独のプロダクトになってるわけでもないし、なによりバージョンが未だに1.0になってないので、他のScala開発環境と比べて優秀なほうでも、そもそもそーゆーもんだと思ってます。