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/AndroidIDEってところですかね。
IntelliJ Community Editionのビミョー感


IntelliJにPhpStorm、RubyMine、PyCharmの機能をアドインする、PHP, Ruby, Pythonの言語系プラグインもUltimate専用ですし、GAE(Google App Engine)、AWSAmazon 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開発環境と比べて優秀なほうでも、そもそもそーゆーもんだと思ってます。

*1:余談ですが、プラグインの開発はIntelliJでのみ可能です(Community Editionでも可)。