Eclipse開発したコードを統一する

自宅でガチャガチャコード書いてると、どうしても粗雑なコードが出来上がりがちです。

javadocあんまり書いてなかったり、インデント様式が揃ってなかったり。

現在の開発現場では、コーディング規約を順守するようになっています。

しかし、自宅だとどうしても緩くなりがちです。

そこで、これからの自宅での開発はcheckstyleformatterを使っていこうと思います。

自動検出してもらう事で、その辺の煩わしさを統一していきたいと思います。

実行環境

Version: Neon.3 Release (4.6.3)

formatter

Eclipse既に入っている、ビルトインではなく、Googleフォーマッターを使います。

https://github.com/google/styleguide

チェックアウト

SVNリポジトリー・エクスプローラーで右クリックし、

[新規(N)]→[リポジトリー・ロケーション]を選択します。

次に、上記URLからリンク先をコピーして、[URL:  ]に張り付けます。

[完了]を押して、リボジトリー・ロケーションに[styleguide.git]が表示されるまで待ちます。

SVNから、データをチェックアウトしておきます。

インポート

ツールバー→ウィンドウ(W)→設定(P)で設定ウィンドウを開きます。

フィルター入力部に、「フォーマッター」を入力し、以下の画面にします。

Java>コード・スタイル>フォーマッターの窓で[インポート]を選択します。

そして、先ほどチェックアウトしたディレクトリから言語毎のフォーマッターを選択します。

Java:[styleguide.git/trunk/eclipse-java-google-style.xml]

C++:[styleguide.git/trunk/eclipse-cpp-google-style.xml]

すると、GoogleStyleが[アクティブ可能なプロファイル(C)]に現れます。

それを選択して、[OK]をクリックします。

フォーマッターの編集

フォーマッターは任意の修正が可能です。

以下の方法がありますが、今回はEclipseで変更する方法を紹介いたします。

  • ファイルを直接編集
  • Eclipse上で編集

インデントの変更

先ほどのフォーマッターをそのまま使うと、インデントが空白2文字になります。

そのままでも使えますが、慣れないので空白4文字に変更します。

ツールバー→ウィンドウ(W)→設定(P)で設定ウィンドウを開きます。

フィルター入力部に、「フォーマッター」を入力します。

フォーマッターの[アクティブなプロファイル(C)]の[編集(E)]をクリックします。

下の赤枠の値を、2→4に変更します。

フォーマッターの有効化

ツールバー→ウィンドウ(W)→設定(P)で設定ウィンドウを開きます。

フィルター入力部に、「フォーマッター」を入力し、以下の画面にします。

Java>エディター>保管アクションを選択しまう。

保管時に選択したアクションを実行(F)にチェックを入れておきます。

これで、設定したフォーマッターが有効になります。

フォーマッターのショートカットキー

Ctrl+Shift+F

これで手動でも実行が可能です。

checkstyle

Eclipseに標準で入っているものを設定します。

そのままだと使いづらかったりするので、既存の物を修正して使います。

GoogleChecksのエクスポート

GoogleChecksの編集用として、エクスポートします。

ツールバー→ウィンドウ(W)→設定(P)で設定ウィンドウを開きます。

フィルター入力部に、「check」を入力し、以下の画面にします。

GoogleChecksを選択し、[エクスポート]ボタンをクリックします。

エクスポート先は任意のディレクトリでOKです。

チェックスタイルの作成

エクスポートしたら、それを新規のチェックスタイルとして定義します。

[新規]ボタンをクリックすると、以下のような画面になるので[外部構成ファイル]を選択します。

[参照]ボタンをクリックし、先ほどエクスポートしたディレクトリを選択します。

名前と説明欄を入力し、[OK]ボタンをクリックします。

クリック後、以下の画面になるので新規で作成したチェック構成を選択し、

[デフォルトとして設定]をクリックします。

これにより、Eclipseのデフォルトのチェックスタイルが作成したスタイルに統一されます。

(ワークスペースで右クリックして、同様の事をする事で、個別の設定も可能です)

チェックスタイルの編集

新規構成を作ったままだと、先ほど導入したGoogleフォーマッターのせいで

ほぼ全行が黄色くなります。(インデント不正が検出される)

これだと使いづらいので、設定を変更します。

インデントの変更

フォーマッターでインデントを4に変更したので、checkstyleも合わせます。

ツールバー→ウィンドウ(W)→設定(P)で設定ウィンドウを開きます。

フィルター入力部に、「check」を入力し、

先ほど構成したチェックスタイルの[構成]を選択します。

すると、以下の画面になるので、その他>インデントを選択し、モジュール構成を開きます。

モジュール構成の編集窓で、2→4へインデントサイズを変更します。

Javadocの変更

javadocで<p>でパラム設定したときにフォーマッターが勝手に改行してきます。

<p>text javadoc等の改行無をがよく見る形かもしれませんが、

今の現場環境で<p>後改行の方が見慣れている為、checkstyleからも外しておきます。

インデント変更と同様の手順で窓を開き、Javadocコメント>Javadoc Paragraghを選択

このチェックを外すことにより、チェックを解除できます。

チェックスタイルの有効化・無効化

有効にする場合

各プロジェクト上で右クリックし、CheckStyle→[CheckStyleでコード・チェック]を選択。

無効にする場合

[CheckStyle違反をクリア]を選択します。

設定終了

以下のような感じになります。

javadocの最初のピリオドがなかったり、返却値の説明がないことが分かります。

特に、execute()の引数の変更などは目視でも気づけます。

設定前はこんな感じです。

execute()関数の@param chairと、実際の引数が違うことに気付けますか?

記事作成時の参考リンク

個人ブログ様

Eclipseでコーディング規約のインデントやら空白やらを保存時に自動で修正する

Google製のEclipse向けフォーマッター・CheckStyle

Google’s Java Style の CheckStyle を使う

CheckStyleでテストクラスだけ日本語メソッド名OKにする方法

Checkstyle 使い方メモ

その他参照リンク

グーグルフォーマッター

シェアする

  • このエントリーをはてなブックマークに追加

フォローする