objective-C 용 OCLint 정적 코드 분석 도구를 사용하고 있고 규칙을 사용자 정의하는 방법을 찾고 싶습니까? 규칙은 dylib 파일 세트로 표시됩니다.OCLint 규칙 사용자 정의
답변
답변은 많은 것들이 그렇듯이 다릅니다.
당신이 당신의 자신의 사용자 정의 규칙을 작성하려는 경우 기존 소스 코드의 상단에 C++로, 자신 만의 규칙을 쓰기로 아래로 더러워해야합니다.
oclint-rules/rules
디렉토리를 확인하십시오.size/LongLineRule.cpp
은 간단한 규칙입니다.기존 규칙의 매개 변수를 변경하려면
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이 모든 규칙을 포함하는지 여부를 알지 못합니다. 어떻게 작동하는지 알아 보려면 각 규칙의 소스 코드를 조사해야 할 수도 있습니다.
당신이 엑스 코드 스크립트를 사용하는 경우이 같은 oclint_args
사용해야합니다
oclint-JSON 컴파일 - 데이터베이스 oclint_args "-rc LONG_LINE = 150"을 | SED 'S/(.. \ {1,2} m [0-9] [0-9] *)/\ 1 경고 /'I '는이 샘플
LONG_LINE의 규칙을 150 자로 변경
구성을 인수로 전달하는 대신 (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
: 여기
는 몇 가지 사용자 정의 예제 파일입니다