Eclipseにおける自動フォーマッタの利用方法

# はじめに
こんばんわ、きりです。
本記事は[Nablarchを使ってみよう](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17)のサブ記事として作成しております。

[前回](https://qiita.com/kirin1218/items/c08db4e1c447e89df738)はCheckStyleについて整理しました。
CheckStyleを活用することで、チームや個人開発でのコード規則を統一することができる、
一方、手直しに少なからず手間がかかることという問題があります。

今回は、基本的な入力規則を自動で修正してくれる自動フォーマッタについて、整理します。

本記事以外のコンテンツは[こちら](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17#nablarch%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A8%98%E4%BA%8B%E4%B8%80%E8%A6%A7)から閲覧可能です。

なるべく、初心者目線で作成するつもりですが、分かりづらい部分ありましたら、コメント頂きたいです。

# 作業内容
* 自動フォーマッタとは
* CheckStyleのインストール
* CheckStyleの構成を確認する
* CheckStyleの有効化
* CheckStyleの結果を確認する

# 動作環境
|種類|バージョン|
|---|---|
|OS|Windows Professional 20H2|
|Eclipse|2022 Full Edition|

※Eclipseのダウンロードについては、[こちら](https://qiita.com/kirin1218/items/02bfeb333335842c56ae)の記事をご確認ください。

# 自動フォーマッタとは
CheckStyleがソースのスタイルチェックなら、自動フォーマッタはスタイルの自動修正機能です。

# 自動フォーマッタの設定
自動フォーマッタの設定は設定ダイアログ>Java>コード・スタイル>フォーマッター　より行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803458/13dc6c44-1afc-288b-dcfb-8025654e420b.png)

デフォルトでは「Pleiades[カスタム]」というものが設定されているようです。

## プロファイルをインポートする
こちらの[Githubリポジトリ](https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml)より、eclipse-java-google-style.xmlファイルをダウンロードまたはコピー＆ペーストでローカルにeclipse-java-google-style.xmlファイルを作成します。
場所は任意の場所で良いと思いますが、私は以下の階層にフォルダとファイルを作成しました。
{Pleiades All in Oneフォルダ}/settings/formatter/eclipse-java-google-style.xml

フォーマッター設定にて、インポートボタンをクリックし、作成したxmlを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803458/a86c0716-8d0a-64e0-fd3d-181067fdff26.png)
インポート後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803458/064b279a-ec7c-2318-4a74-1d149bad7ff1.png)

## フォーマットを実施する
[EclipseのダウンロードとHello World](https://qiita.com/kirin1218/items/02bfeb333335842c56ae)で作成したhelloworldプロジェクトのHelloWorldクラスに対して、フォーマットを実施してみましょう。

ソースの中身を以下コードを貼りつけて、Ctrl+Shift+Fを押して、フォーマットしてみましょう。

```HelloWorld.java
package helloworld;

public class HelloWorld{
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
```

* フォーマット前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803458/806385ad-25d1-e07a-7f58-333ad2b5595e.png)


*　フォーマット後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803458/42b0ced4-8493-6418-d9b7-5c47a27f0fae.png)

フォーマット前後を比べてみると、インデントやスペースがフォーマットされ、警告が減っていることがわかります。
Javadocについては、当然ですが、自動では記入されないので、自分で入力しましょう。

# 保存時に自動でフォーマットするように設定する
毎回、Ctrl+Shift+Fしても良いのですが、保存時に自動でフォーマットしてくれた方が漏れなどもなくなるので、設定してみます。
設定ダイアログ>Java>エディター>保存アクションを選択し、「ソース・コードのフォーマット」にチェックをします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/803458/6a363829-faff-f2a1-8baf-223eedd8fdb7.png)

# 最後に
本記事では自動フォーマッタについて、整理しました。

CheckStyleと自動フォーマッタを利用することで、一見、最強の矛と盾を手に入れたようにも思えますが、
開発を進めていくと、自動フォーマッタで直した部分にCheckStyleが警告するようなケースが考えられます。
そのような場合はCheckStyleか自動フォーマッタの一部のルールを変更する必要があるのですが、
そちらについては、ケースに遭遇した際に記事を更新しようと思います。

本記事以外のコンテンツは[こちら](https://qiita.com/kirin1218/items/242ee0f174f1cb12ef17#nablarch%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E8%A8%98%E4%BA%8B%E4%B8%80%E8%A6%A7)を御覧ください。


# 参考URL
[Eclipseフォーマッターを使って効率よく可読性の高いソースコードを書こう！](https://techcompass-tensyoku.pro/contents/technology/eclipse-formatter/)