きり丸の技術日記

技術検証したり、資格等をここに残していきます。

IntelliJ IDEAでCheckstyleを適用する(自動フォーマットにも適用させる)

コードがコーディング規約に沿っているかを自動で確認してくれるCheckstyleというツールがあります。

ただし、導入してもチェックしかしてくれないので、手動でフォーマットする必要があります。軽微な修正であればIntelliJ IDEAのショートカットでフォーマットできますが、そのフォーマットはCheckstyleの規約とは異なります。

この記事ではIntelliJ IDEAにCheckstyleを適用し、Checkstyleの規約でIntelliJ IDEAのショートカットでフォーマットさせるようにします。

※ 機能名としては、自動フォーマットではなく再フォーマットですが、検索性を意識してこの記事では手動との対比として自動フォーマットという表現をします。ご了承ください。

環境

ゴール

  • Checkstyleの規約に沿っていないコードはハイライトさせる

f:id:nainaistar:20210126185903p:plain

  • IntelliJ IDEAの自動フォーマットをCheckstyleの規約でフォーマットする

Windows環境ではCtrl + Alt + Lで自動フォーマットできます。

f:id:nainaistar:20210126185927p:plain

設定

Checkstyleプラグインを導入する


プラグインの画面に遷移する

次のどちらかでプラグインの画面に遷移する。

File -> Settings(Ctrl + Alt + S)を入力後、Pluginsのメニューを選択する

f:id:nainaistar:20210126185939p:plain

Ctrl + Alt + A -> pluginsと入力する

f:id:nainaistar:20210126190013p:plain

Checkstyle-IDEAのプラグインをインストールする

プラグインの画面からCheckstyle-IDEAをインストールする。

f:id:nainaistar:20210126190025p:plain

Checkstyleにコーディング規約を適用する


IntelliJ IDEAを再起動すると、Settings画面のToolsのメニューにCheckstyleが追加されています。デフォルトでSunとGoogleのコーディング規約が設定されているので、適用したい方をチェックしましょう。

f:id:nainaistar:20210126190132p:plain

もし自作のCheckstyleのコーディング規約のXMLファイルがあれば、Configuration Fileのプラスボタンから追加できます。

f:id:nainaistar:20210126190204p:plain

IntelliJ IDEAの自動フォーマットにCheckstyleの規約を適用する


適用したCheckstyleのファイルを取得する

CheckstyleXMLファイルが必要になります。自作XMLファイルを適用していない場合は、SunとGoogleのコーディング規約をGitHubから取得してください。


SunのStyle Guideに沿ったCheckstyleXML github.com

GoogleのStyle Guideに沿ったCheckstyleXML github.com

自動フォーマットにCheckstyleの規約を適用する

Settings画面のEditor -> Code Styleを選択して設定画面を表示します。歯車のマークからImport Schema -> Checkstyle Configurationを選択してください。

Checkstyleのファイルを読み込むと、IntelliJ IDEAのフォーマットも適用され、自動フォーマットがこちらの規約に沿うようになります。

Windows環境ではCtrl + Alt + Lのショートカットでフォーマットできます。

f:id:nainaistar:20210126190223p:plain


なお、あくまでCheckstyleの設定をIntelliJ IDEAにインポートしているだけですので、紐づいていない設定は読み込めません。他の人と自分の環境で自動フォーマットして完全一致しないこともありますので、注意してください。

終わりに

ショートカットでフォーマットできるのに、Checkstyleのコーディング規約が適用されていなかったので手動でフォーマットしていることもありました。

個人的にはGoogleのコーディング規約に完全に従うので気にしませんが、現場レベルではインデントを4にしたい等々があり、その差分を手で直すのは一苦労でした。


この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。

参考

Checkstyle公式 checkstyle.sourceforge.io

IntelliJ IDEA 公式 2020.3:コードの再フォーマットと再配置 pleiades.io

f:id:nainaistar:20210126190844p:plain