コネヒト開発者ブログ

コネヒト開発者ブログ

Kotlin IDE Pluginに共通で定義管理できるplugin-common.xmlが出来ていた

f:id:tommy_kw:20181223172957p:plain

はじめに

本記事はコネヒト Advent Calendar 2018の24日目のエントリーです!

qiita.com

メリークリスマス!Androidエンジニアの富田です。今回はKotlin IDE PluginのKontributeに関する小話で、plugin-common.xmlが生まれてちょっとだけめんどくさい作業が減ったよという内容を紹介します。

Kotlin IDE PluginのKontributeって?

以下のようなCode InspectionIntentionなどの機能についてのKontributeを表します。 f:id:tommy_kw:20181223105545g:plain github.com

詳しい内容については割愛させていただきますが、Kotlin IDE PluginやKontributeについて興味を持った方はぜひ、しらじさんの下記資料をご覧ください! photos.google.com

Kontributeする上でここが煩わしかった

github.com

改めて上記のPRを見ていただくと、複数のplugin.xmlが存在することに気づきます。Kotlin IDE Pluginを開発する上でIntelliJ IDEAとAndroid Studioに対応しなければならないため設定情報(今回はInspection情報)を複数のplugin.xmlに記述する必要がありました。

gist.github.com

以前は上記の設定を下記全てのplugin.xmlに追加していました。ファイル数が多いため自動で追加するGradleタスクがないのかなと探してみたものの、結局なさそうだったのでどうしたものかなと悩んでいました。

  • plugin.xml
  • plugin.xml.173
  • plugin.xml.181
  • plugin.xml.183
  • plugin.xml.as31
  • plugin.xml.as32

KotlinConf 2018にて質問してみた

今年10月に開催されたKotlinConf 2018にて、JetBrainsの方に自動で生成するGradleタスクはありますか?と質問したところ、ないですよという回答を頂きました。それから引き続き愚直にコピペを繰り返していると、10/22にplugin.xmlがリファクタリングされて、plugin-common.xmlが生まれていたことに気づきました!

github.com

各plugin.xmlに以下のようにplugin-common.xmlをincludeすることで共通化されます。Gradleタスクを用いて自動で生成することしか考えていなかったので、なるほど!と勉強になりました! gist.github.com

さらにidea/src/META-INF以下で管理されていたplugin.xmlなどのリソース周りはidea/resources/META-INF以下に移動されていました。移行スクリプトってこう書くのねとコードを読むだけでも面白かったので興味のある方はぜひ! github.com

plugin-common.xmlが生まれてどうなったの?

github.com 上記は先月出したPRになりますが、plugin-common.xmlだけ設定していることがわかります。煩わしい作業が減ってちょっと楽になりましたね!

まとめ

簡単にではありますが、最近のKontribute事情を紹介しました。やっぱりわからないことはカジュアルに聞かないとダメだなと反省しつつ、引き続きKontributeを続けてアウトプットしていきます!

qiita.com

明日最終日のコネヒト Advent Calendar 2018はいとしょさんになります!お楽しみに!