コードフォーマッター

コードフォーマッターとは?

Eclipseには、ソースコードを自動整形する機能(フォーマッター)が備わっています。

フォーマッターの概要

Eclipseには、ソースコードを自動で整形する機能が備わっています。

e.g. Eclipseのコードフォーマッターを利用すると @Java
// フォーマットする前
if(true)
{ foo = null;
  }
// フォーマットした後
if (true) {
    foo = null;
}

Javaエディタ上で "ctrl + shift + F" と押すとフォーマッターを利用できます。

ただし、Eclipseのデフォルトのフォーマット定義はプロジェクトによっては若干利用しづらいものである可能性があります。 具体的には以下の通りです。

  • 横幅 80 文字で改行されてしまう
  • コメントの中までフォーマットされてしまう

そのため、独自のフォーマット定義を用意した方が利用しやすいことがあります。

フォーマット定義の設定

独自のフォーマット定義は、Eclipseプロジェクトのプロパティ(Eclipseプロジェクトを選択して alt + enter)にて設定できます。 [Java Code Style] - [Formatter] において [Enable project specific settings] をチェックし、Editボタンを押すと独自のフォーマット定義を細かく設定できます。

例えば DBFlute では、横幅を 120 文字に、コメント内のフォーマットを OFF にしています。

フォーマット定義は、プロジェクト直下の .setting ディレクトリに保存されます。このディレクトリをSVN経由で共有すれば、他のディベロッパーもそのまま同じ設定を利用することができます。

フォーマット定義のインポート

フォーマット定義をXMLファイルにエクスポートし、別のEclipseプロジェクトでインポートすることができます。フォーマット定義は .setting ディレクトリに保存されるので、他のディベロッパーと共有したい場合はSVN経由で可能ですが、 別の開発プロジェクトなどで共有したい場合は、このXMLへのエクスポート、インポート機能が利用できるでしょう。

例えば、DBFluteで利用しているフォーマット定義は以下からダウンロードできます。

dbflute-eclipse-code-formatter.zip

保管時アクションへの関連付け

ファイルを保存(ctrl + S)した時に、自動でフォーマットされるように設定できます。 そうすることで、プロジェクト全体でフォーマッターの利用を統一化することができます。

Eclipseプロジェクトのプロパティ(Eclipseプロジェクトを選択して alt + enter)の [Java Editor] - [Save Actions] において、[Enable project specific settings] をチェックし、[Perform the selected actions on save] をチェックし、[Format source code] をチェックすることで、保存時に自動でフォーマッターが動作します。

ついでではありますが、[Organize imports] にもチェックしておくと(デフォルトでチェックがついている可能性あり)、 "インポートの編成" も同様に保存時に自動で実行されるようになります。

この保管時アクションの設定自体も、.settings ディレクトリに保存されるので、SVN経由で共有することができます。

ワークスペースでも設定できる

Eclipseプロジェクトごとではなく、ワークスペースに対してフォーマット定義を設定することもできます。 ただ、その場合はSVN経由での他のディベロッパーへの共有はできないので、複数人プロジェクトではあまり有効ではないと考えられます。