2013-01-16 19 views
6

私はobjective-C用のOCLintスタティックコード解析ツールを使用しており、ルールのカスタマイズ方法を知りたいですか?ルールはdylibファイルのセットで表されます。OCLintルールのカスタマイズ

答えて

4

答えは、非常に多くのものと同様に、それが依存していることです。

  1. 独自のカスタムルールを書きたいならば、あなたは、既存のソースコードの上にC++で、独自のルールを書くにダウンと汚い取得する必要があります。 oclint-rules/rulesディレクトリをチェックしてください。size/LongLineRule.cppは簡単なルールです。

  2. 既存のルールのパラメータを変更する場合は、oclintの呼び出しにコマンドラインパラメータ-rc=<rulename>=<value>を追加する必要があります。たとえば、長い行ルールを150文字以上の行に対してのみ有効にする場合は、-rc=LONG_LINE=150を追加する必要があります。

あなたが変更できるすべてのパラメータを一覧表示することはできません。ルールのリストはここにhttp://docs.oclint.org/en/dev/rules/index.htmlであり、閾値ベースのルールのリストはhttp://docs.oclint.org/en/dev/customizing/rules.htmlですが、許容可能な値のリストはなく、これらの2つのURLがすべてのルールをカバーしているかどうかはわかりません。どのように動作するかについては、各ルールのソースコードを調べなければならない場合があります。

4

あなたはXcodeのスクリプトを使用している場合は、このようなoclint_args使用する必要があります。

oclint-JSON-コンパイル・データベースoclint_args "-rc LONG_LINE = 150" | SED 'S /(。。\ M {1,2} [0-9]:[0-9] *:)/ \ 1警告:/' I「がそのサンプル中

LONG_LINEのルールを150文字に変更する

4

設定を引数として渡す代わりに(Jon Boydellの回答を参照)、プロジェクトディレクトリに.oclintという名前のYMLファイルを作成することもできます。

ここではいくつかの事カスタマイズファイルの例です:

rules: 
    - LongLine 
disable-rules: 
rulePaths: 
    - /etc/rules 
rule-configurations: 
- key: LONG_LINE 
    value: 20 
output: filename 
report-type: xml 
max-priority-1: 10 
max-priority-2: 20 
max-priority-3: 30 
enable-clang-static-analyzer: false 
関連する問題