7

Objective-C 用の OCLint 静的コード分析ツールを使用していますが、ルールをカスタマイズする方法を知りたいですか? ルールは一連の dylib ファイルで表されます。

4

3 に答える 3

6

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
于 2015-03-23T08:59:18.110 に答える
5

答えは、多くのことと同様に、場合によるということです。

  1. 独自のカスタム ルールを作成する場合は、既存のソース コードに加えて C++ で独自のルールを作成する必要があります。oclint-rules/rulesディレクトリをチェックアウトするのsize/LongLineRule.cppは簡単なルールです。再コンパイルなどが必要です。

  2. -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 がすべてのルールをカバーしているかどうかもわかりません。各ルールのソース コードを調べて、ルールがどのように機能するかを調べる必要がある場合があります。

于 2013-01-31T16:54:32.740 に答える
4

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 文字に変更しています

于 2014-03-18T21:55:46.197 に答える