0

私は主にMavenCheckstyleプラグインを介して使用していますが、Checkstyleは初めてです。

Checkstyleには柔軟性がないと思う状況があります。Checkstyleとその構成オプションに精通していないのは私かもしれません。

私が抱えている問題は、トークンタイプがMETHOD_CALLのParenPadチェックにあります。私は信じている。

ほとんどの場合、メソッド呼び出しの括弧の前後にスペースを入れることはできません。

e.g. object.method(arg1);                          Case 1

しかし、SQLステートメントの作成にStringBufferまたはStringBuilderを使用している場合、電子メールのテキストまたはその他の長い文字列。読みやすくするために、長い文字列を作成する際に使用されるステートメントにLTRの感触を与えるのが好きです。

e.g. buffer.append("String 1 ");                   Case 2
     buffer.append(          variable);
     buffer.append(                 " String 2");

私が取得しようとしているスタイルは、mehod呼び出しの左括弧の後にスペースを入れない、1つ、または多くのスペースを許可することですが、メソッド呼び出しの右括弧の前にスペースを入れないことです。

これを許可するようにCheckstyleを構成できないようです。ケース1を受け入れてケース2を拒否するか、またはその逆を行うことはできますが、両方を受け入れるには、ParenPadテストをまとめて無効にする必要があります。チェックスタイルルールを使用して、両方のケースを受け入れて強制する必要があります。

Checkstyleを使用してこれを実現する方法を教えてください。どのような構成が必要ですか?これを達成するためにCheckstyleを使用することには「トリック」がありますか?必要なことを行うためのCheckstyle拡張機能はありますか?または、カスタムチェックを作成する必要がありますか?

ヘルプやアドバイスを求めています。

前もって感謝します

4

2 に答える 2

0

このtokensプロパティを使用して、目的の効果を実現できます。LPAREN左括弧から制限を解除するには、トークンを省略してください。

<module name="ParenPad">
  <property name="tokens" value="CTOR_CALL,METHOD_CALL,RPAREN,SUPER_CTOR_CALL"/>
</module>

Eclipseでは、これは次のようになります。

EclipseCheckstyleパレンパッド構成

于 2012-12-29T22:07:09.403 に答える
0

現在使用している回避策を見つけましたが、状況を改善したいと思います。ParenPadのCheckstyleルールを次のように変更しました。

    <module name="ParenPad">
      <property name="option" value="nospace"/>
      <property name="tokens" value="CTOR_CALL,LPAREN,RPAREN,SUPER_CTOR_CALL"/>
    </module>

基本的に、メソッド呼び出しのParenPadのルールチェックは行いません。他のすべての括弧の出現に対してスペースは強制されませんが、メソッド呼び出しに使用される括弧に関しては、すべて自由に使用できます。

必要なのは、メソッド呼び出しの右括弧の前にスペースを強制せず、メソッド呼び出しの左括弧の後にスペースを1つ以上許可しないことです。

于 2013-01-01T06:21:23.273 に答える