KotlinとGradleでIntelliJ Plugin開発するプロジェクトテンプレートつくってみた


## 免責
本稿はitohiro73の個人的な技術メモであり、雇用主または所属する団体とは一切関係ありません。

This article is itohiro73's personal technical note and does not express the views or opinions of my employer.

## つくったもの
記事なぞ読むまでもない、コードを見せよ、という方はこちらからgit cloneして使ってみてください。

https://github.com/itohiro73/intellij-plugin-kotlin-template


## 背景
[Kotlin](http://kotlinlang.org/)はJetBrains社によって開発された言語で、簡潔さと安全性を併せ持った非常に強力な言語です。日本人エバンジェリストの[たろうさん](http://taro.hatenablog.jp/)を始めとするさまざまな方々の努力の賜物で、毎年[アドベントカレンダー](http://www.adventar.org/calendars/477)が開催されたり勉強会（[関東](https://kotlin.doorkeeper.jp/events/23515)や[関西](http://connpass.com/event/18102/)）が開催されたりと、最近日本のエンジニア界隈でも流行ってきていますね。

JetBrains社の言語なので、IntelliJ PluginをKotlinでつくったりとかしたら楽しそう、って思ってちょっと調べたら、意外と情報が少ないことに気がつきました。"intellij plugin development kotlin"とかでググってみても全く見当たらない。。。ということで下記の内容をつぶやいてみたら、

<blockquote class="twitter-tweet" lang="ja"><p lang="ja" dir="ltr">JetBrainsの言語なのにKotlinでIntelliJプラグインを開発するみたいな話題があんま見当たらないのはなぜなんですかね？僕が知らないだけ？</p>&mdash; Hiroshi (@itohiro73) <a href="https://twitter.com/itohiro73/status/645154623955734530">2015, 9月 19</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

JetBrainsの日本公式代理店でもある、サムライズムの[@yusuke](https://twitter.com/yusuke)さんに捕捉されました。

<blockquote class="twitter-tweet" lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/itohiro73">@itohiro73</a> プラグイン開発の話題がそもそも少ないですが、書いている方はいらっしゃいますよ <a href="https://t.co/LVsru9dVPa">https://t.co/LVsru9dVPa</a> cc:<a href="https://twitter.com/_siosio_">@_siosio_</a></p>&mdash; 山本裕介 (@yusuke) <a href="https://twitter.com/yusuke/status/645181179512025088">2015, 9月 19</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

さらにプラグインを書いたご本人の[@_siosio_](https://twitter.com/_siosio_)さんからもコメントをいただきました。

<blockquote class="twitter-tweet" lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/itohiro73">@itohiro73</a> このプラグインもkotlinでかいたりしています。&#10;<a href="https://t.co/1y9b7j2JtR">https://t.co/1y9b7j2JtR</a>&#10;&#10;Java6で書くのは面倒なので、私はkotlinでプラグイン書くのかなりオススメです！</p>&mdash; しおしお (@_siosio_) <a href="https://twitter.com/_siosio_/status/645185919117492225">2015, 9月 19</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

ということでKotlinでIntelliJ Plugin開発をする際に参考になるコードを読みたい方は[GradleDependenciesHelperPlugin](https://github.com/siosio/GradleDependenciesHelperPlugin)や[DomaSupport](https://github.com/siosio/DomaSupport)が参考になりそうです。

しかしながら、自力でKotlinのIntelliJ Plugin開発を始めてみよう、と考える開発者にとってはまだまだ情報が少ない情勢のようです。

とりあえず、ちょっと始めてみようと思う人の敷居を下げられるといいなと思うので、[こないだ](http://qiita.com/itohiro73/items/d46dd3b05a3ca30226f4)作った[GradleのIntelliJ Plugin開発用テンプレート](https://github.com/itohiro73/intellij-plugin-toolwindow-template)のKotlin版をつくってみました。

## 何ができるのか
基本的には[GradleでIntelliJ Plugin開発：簡易tool window pluginの作成](http://qiita.com/itohiro73/items/d46dd3b05a3ca30226f4)と全く同じなので、詳細はそちらを見ていただくとして、簡単にプラグインの立ち上げ方法だけ示しておきます。

さきほどリンクを置いておいた[こちら](https://github.com/itohiro73/intellij-plugin-kotlin-template)のプロジェクトをgit cloneして、そのまま以下のコマンドを打つと、PluginがバンドルされたIntelliJ IDEAが立ち上がります。

```Mac/Linux等の場合
# ./gradlew runIdea
```

```Windowsの場合
# gradlew.bat runIdea
```



IntelliJ IDEAが立ち上がると"sample" tool windowに"Hellow World"と表示されます。
![kobito.1442277431.577678.png](https://qiita-image-store.s3.amazonaws.com/0/34316/84a9ee9a-1bc6-b509-a676-ea615654d62d.png "kobito.1442277431.577678.png")


以下のコマンドでリリース用のzipファイルを作成することもできます。

```Mac/Linux等の場合
# ./gradlew buildPlugin
```

```Windowsの場合
# gradlew.bat buildPlugin
```

あとは、plugin.xmlを編集したり、HellowWorld.ktを編集したりしながらいろいろ遊んでみて、KotlinでのPlugin開発を楽しんでみるといいかと思います。

それではHappy Kotlin Lifeをお過ごし下さい！

## 合わせて読みたい
[IntelliJ Plugin開発準備（Mac編）：IntelliJ IDEA Community EditionのSDKとソースコードをセットアップ](http://qiita.com/itohiro73/items/df23ffd4d89b3c43e4a8)

[GradleでIntelliJ Plugin開発：簡易tool window pluginの作成](http://qiita.com/itohiro73/items/d46dd3b05a3ca30226f4)