CLOVER🍀

That was when it all began.

IntelliJ IDEAを使ってコマンドラインでファイルをフォーマットする

こちらのエントリーを書いていて、IntelliJ IDEAを使ってコマンドラインでファイルをフォーマットできることがわかったので、
軽くメモしておきます。

Formatter Maven Pluginで、ソースコードのフォーマットを行う - CLOVER🍀

ドキュメントはこちら。

Format files from the command line | IntelliJ IDEA Documentation

ポイントは、すでにIntelliJ IDEAのプロセスが存在している場合は、この機能は使えないということですね。

It will not work if another instance of IntelliJ IDEA is already running.

使い方は、以下になります。

$ idea.sh format [<options>] <path...>

確認は、IntelliJ IDEA Community Edition 2022.3.1で行っています。

いくつか例を。

デフォルトのフォーマットで、src/main/javaディレクトリ配下をフォーマット。

$ idea.sh format -r src/main/java

-rでディレクトリ内のファイルを再帰的にフォーマットします。

ファイルを指定してフォーマット。

$ idea.sh format src/main/java/App.java

パスの指定は繰り返し行えます。

$ idea.sh format -r [/path/to/dir1] -r [/path/to/dir2]

フォーマットを変更する場合は、-sで指定します。

$ idea.sh format -r src/main/java -s $HOME/.config/JetBrains/IdeaIC2022.3/codestyles/Default.xml

グローバルなフォーマットは、$HOME/.config/JetBrains/[IntelliJ IDEAのバージョン]/codestylesディレクトリ配下にあるようですね。

またはプロジェクト内の.idea/codeStyles配下のファイルや、エクスポートしたファイルを指定するとよいでしょう。

-dはdry-runで検証モードで実行します。

$ idea.sh format -r src/main/java -d

-dを付けて実行した場合、フォーマットされていないファイルが含まれていた場合は終了コードが0以外になります。
試すと、1が返ってきました。

対象内のファイルがフォーマット済みの場合は、終了コードが0になります。