#navi(Eclipse)

#contents

*はじめに [#db7a3247]
コーディング規約を強制するのに有効なPlug In発見。Checkstyle Plug Inです。~
これのDefaultがSunのコーディング規約になっていますので、javaの基本的な規約を守らせることができます。~
これを利用して規約を守る最低ラインを死守します。((SDKのソース見る限りこんなに厳しく規約守ってるようには見えませんけど・・・))~
Plug Inの導入は、http://www.atmarkit.co.jp/fjava/javatips/007eclipse004.html を見てください。 ~
~
Plug Inはここから手に入る~
http://sourceforge.net/projects/eclipse-cs/
~
*規約を設定する [#k894b16d]
java標準のコーディング規約は恐ろしく厳しく感じるので、必要性を感じない規約は無視できるように設定変更してみます。~
~
RIGHT:この項で設定変更した規約のファイル
#ref(20031121_LooseSun_3_1_1,right)
#ref(20041211_LooseSun_3_5_0,right)


**1行の文字数を変更する [#jdcb241e]
-Sunの標準コーディング規約では1行は80文字以下に抑えなくてはいけないようです。
-javaDocコメントで「@see」を記述する際などどうしても1行が長くなるのでこの規約を80文字から240文字に変更します。

#ref(checkstyle01.jpg)
-「Size Violation」→「Maximum Line Length」を「Edit Rule」します。

#ref(checkstyle02.jpg)
-「max」を 80 → 240 に変更します。

**TABの使用を許可する [#c4257d99]
-Sunの標準コーディング規約ではTABはソース中に存在してはいけないようです。
-「つかうだろ!」ってことで許可します。

#ref(checkstyle04.jpg)
-「Whitespace」→「Tab Character」を「Delete Rule」します。((Sevelityレベルをignoreでもいいですね))


**Magic Number のSevelityレベルを下げる [#v6708bc1]
-Magic Numberは使わない方が良いのかもしれませんが、for文で使用した際にも怒られるのはうっとおしいのでSevelityレベルをinfoに下げる。

#ref(checkstyle05.jpg)
-「Coding Problem」→「Magic Number」を「Edit Rule」します。

#ref(checkstyle06.jpg)
-「Sevelity」のレベルを「info」にします。
--「ignoreNumbers」にこのチェックを無視したい数値をカンマ区切りで記述していけば、チェックの対象から外せます。

**引数でのfinal宣言チェックを行わない [#z3802a74]
-メソッドの引数はどう考えてもfinalなので宣言してもいいけど、あまりにもうざいのでやめチェックを外す
-コンストラクタも同様・・・

#ref(checkstyle07.jpg)
-「Miscallaneous」→「Final Parameters」を「Edit Rule」します。

#ref(checkstyle08.jpg)
-「Sevelity」のレベルを「ignore」にします。
--「METHOD_DEF」がメソッドのチェック。これを外すとメソッドのチェックのみ行わない設定になる
--「CTOR_DEF」がコンストラクタのチェック。これを外すとコンストラクタのチェックのみ行わない設定になる



*プロジェクトに規約を設定する [#f029b591]
-プロジェクトの「プロパティ」より「Checkstyle」を選択します。
-で「add」する。
#ref(checkstyle09.jpg)
-プロジェクトがサーブレットだとjspのworkで警告でまくるので、対象のファイルを
 [^_]+[^j]+[^s]+[^p]\.java$
>としてコンパイルされたjspを除外する。((もっとうまい正規表現方法ないですか?))

 [^T]+[^e]+[^s]+[^t]\.java$
>ちなみにJUnitの場合は、こんな感じで除外。。。~
~
-まぁ、つまるところただの正規表現なので・・・


~

*備考 [#hae0398b]
~
~

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS