IntelliJ IDEAでは「Generate code」という機能があります。「Alt + Insert」等のショートカットキーで呼び出すことができます。
この機能を呼び出すと、「@Test」「@BeforeEach」等々のよく使用されるコードが生成されます(公式によると、このよく使用するコードはVelocityテンプレート言語であるようです)
ただし、「Generate Code」機能ではすでに存在しているコードをカスタマイズできるものの、新規でコードを登録することはできないようです。
そこで、似たような機能がある「Live Templates」機能を使用して、よく使うコードを登録して一瞬で生成できるようにします。
記事を書く元となったツイート
twitter.comIntelliJ IDEAのCommand + Nで出てくるGenerateにNestedクラス作るのも出てほしいな…
— きり丸 (@nainaistar) 2022年4月19日
これ、どうやって拡張すればいいんだろう。
環境
- IntelliJ IDEA
- 2021.3.3 Ultimate Edition
- Windows
ユースケース
- よく使用するテストコードをすぐ生成できるようにする
個人的にJavaのテストコードは@Nested
を使用して、メソッドごとにクラスを作って、その中に条件分岐をテストしています。
ただし、この@Nested
クラスは「Generate Code」機能では生成されません。今回はこの@Nested
クラスを自動生成します。
対応
File > Settings(Ctrl + Alt + S)にて、「Settings」を開きます。
Editor > Live Templatesを選択し、目的の言語を選択したうえで「+」ボタンをクリックします。
Abbrevationにコード生成のキーワードとなる文字を記載します。今回は「nest」という単語を元に生成したいので、nestを記載します。
Template textに生成したいコードを記載します。
Template textの下に表示されている「Define」をクリックすると、いつコード生成のキーワードに反応するべきかを記載します。反応したい言語のJavaを記載して、Declarationを選択します。
ここまで設定すると、キーワードとなる「nest」という単語を記載するとLive Templatesが反応し、そのままTabキーをクリックすると目的のコードを生成できます。
終わりに
Live Templates機能自体は、「sout」と入力すると「System.out.println()」と書き換えられるという認識はしていました。
ただ、ここまで簡単にカスタマイズして追加できるとは思いませんでした。
ここまで簡単であれば、ガンガンカスタマイズして、生産性を上げていきたいですね。