Objective-C 用の OCLint 静的コード分析ツールを使用していますが、ルールをカスタマイズする方法を知りたいですか? ルールは一連の dylib ファイルで表されます。
3 に答える
In lieu of passing configuration as arguments (see Jon Boydell's answer), you can also create a YML file named .oclint
in the project directory.
Here's an example file that customizes a few things:
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
答えは、多くのことと同様に、場合によるということです。
独自のカスタム ルールを作成する場合は、既存のソース コードに加えて C++ で独自のルールを作成する必要があります。
oclint-rules/rules
ディレクトリをチェックアウトするのsize/LongLineRule.cpp
は簡単なルールです。再コンパイルなどが必要です。-rc=<rulename>=<value>
既存のルールのパラメータを変更する場合は、コマンド ライン パラメータを への呼び出しに追加する必要がありますoclint
。たとえば、長い行のルールを 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 がすべてのルールをカバーしているかどうかもわかりません。各ルールのソース コードを調べて、ルールがどのように機能するかを調べる必要がある場合があります。
Xcode スクリプトを使用している場合は、次oclint_args
のように使用する必要があります。
oclint-json-compilation-database oclint_args "-rc LONG_LINE=150" | sed 's/(. .\m{1,2}:[0-9] :[0-9]*:)/\1 警告:/'
そのサンプルでは、LONG_LINE のルールを 150 文字に変更しています