IntelliJ IDEAでファイル保存時にReformat Codeする

IntelliJ IDEAでファイル保存時、VCS上で変更が加えられたコードのみReformat Codeする方法を解説する。

Keywords

  • IntelliJ IDEA

Contents

  • 1. 概要
  • 2. 標準機能でのReformatする方法
  • 2-1. [Only VCS changed text]にチェックを入れる
  • 2-2. Reformat実行
  • 3. [Save Actions]プラグインでReformatする方法
  • 3-1. プラグインのインストール
  • 3-2. [Reformat only changed code (only if VCS configured)]にチェックを入れる。
  • 4. その他
  • 5. 参考文献

概要

IntelliJ IDEAの標準機能でReformatする方法とプラグインを使用してReformatする方法の2つを解説します。

標準機能でのReformatする方法

[Only VCS changed text]にチェックを入れる

[Code]-[Show Reformat File Dialog]をクリックして、ダイアログを開く

[Only VCS changed text]にチェックを入れて、[Run]をクリック ※VCS上で変更がない場合は、チェックが入れられないので、設定するときだけ変更しておく必要があります。

[Run]をクリックすると、Reformatされますが、ここで設定した内容は次回のReformat時にも反映されているようです。

また、VCS上での変更がある場合は、変更分のみReformatし、VCS上での変更がない場合は、[No lines changed: no changes since last revision]というメッセージが表示されるだけで、Reformatはされませんでした。

Reformat実行

[Code]-[Reformat Code]にて実行するか、[option + command + l]を押下する。

[Save Actions]プラグインでReformatする方法

もしくは、[Save Actions]プラグインを導入することによっても、同じことを実現できます。このプラグインを使えば、Reformat code以外にも色々な検査や修正が自動でできるようになります。例えば、実装クラスのメソッドに@Overrideを自動的に付加するなど。

プラグインのインストール

[IntelliJ IDEA]-[Preferences]-[Plugins]より、[Save Actions]プラグインをインストールする。

[Reformat only changed code (only if VCS configured)]にチェックを入れる。

これで、VCS上で自分が変更を加えた箇所のみ、保存時に自動でフォーマットされるようになる。

その他

なお、このプラグインは[command + s]の保存にしか反応しないので、Vimやその他のキーバインドで保存している人は、Macroを設定する必要があります。

私の場合は、[:w]を押下すると、ファイルの保存が実行されるよう、下記のようにKeymapとMacroを設定しています。

Keymap

Macro

参考文献

https://qiita.com/sisidovski/items/bde2d844c3c73457923c