2013-01-16 2 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이지만 허용되는 값 목록이 없으며이 두 URL이 모든 규칙을 포함하는지 여부를 알지 못합니다. 어떻게 작동하는지 알아 보려면 각 규칙의 소스 코드를 조사해야 할 수도 있습니다.

4

당신이 엑스 코드 스크립트를 사용하는 경우이 같은 oclint_args 사용해야합니다

oclint-JSON 컴파일 - 데이터베이스 oclint_args "-rc LONG_LINE = 150"을 | SED 'S/(.. \ {1,2} m [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 
: 여기

는 몇 가지 사용자 정의 예제 파일입니다