suusan2号の戯れ

SIerでインフラSE⇛WEB系でエンジニアのおっさん

Kotlinでコンストラクタをシュッと書くためにIntellijのプラグインを作った

github.com

こういう感じのプラグインを作った

https://user-images.githubusercontent.com/8841470/42932763-24e15c72-8b7e-11e8-9e60-ee2f8095d6cc.gif

クラスのコンストラクタにわたすパラメータが少なければ、こんなもんいらないんだけど、でかいアプリケーションを扱ってるとコンストラクタに大量のパラメータを渡さなければいけないときは稀によくある。

あとはレイヤードアーキテクチャな構成を取っていて、各レイヤーでクラスを用意していると、レイヤー間でマッピングみたいなコードがめちゃくちゃ増える。

同様にテストコードで(ry……といったユースケースでコーディングをちょっとだけ楽にするために作りました。 READMEにも書いたけどGoの fillstruct にインスパイアされています。

作り方

プラグインの作り方、まじで情報が少なくて、shirajiさんのブログが大分参考になりました。

shiraji.github.io

特にコンストラクタに渡すパラメータが足りないときにつく赤線と、それに対してQuick Fixのアクションを足すところは1から作るのがそれなりに大変そうだったので、既存の仕組みに大分乗っかっています。

github.com

この辺、特にドキュメントがあったりするわけではなさそうで、上記のソースコード読んで雰囲気で色々試しながら進めていました。

正直実装は大分手探りなので、なんか間違っているところや非効率なところあれば詳しい人シュッとプルリクください。

インストールの仕方

IntellijのPluginのところで「kotlin fill class」 で検索すると出てくると思うので試しに使ってみてください。

宣伝

縁があって登壇することになりました。このプラグインの話もちょっとする予定です。怖い!!!!!!!!!!!!!! kotlin.connpass.com