Używam narzędzia analizy kodu statycznego OCLint dla celu C i chcę dowiedzieć się, jak dostosować reguły? Reguły są reprezentowane przez zestaw plików dylib.Dostosowywanie reguły OCLint
Odpowiedz
Odpowiedź, jak na tak wiele rzeczy, polega na tym, że to zależy.
Jeśli chcesz napisać swój własny przepis następnie trzeba zejść i brudne do pisania własnych rządów, w C++ na górze istniejącego kodu źródłowego. Sprawdź katalog
oclint-rules/rules
,size/LongLineRule.cpp
to prosta reguła, z którą można się połączyć. Będziesz musiał przekompilować, itp.Jeśli chcesz zmienić parametry istniejącej reguły, musisz dodać parametr wiersza poleceń
-rc=<rulename>=<value>
do połączenia zoclint
. Na przykład, jeśli chcesz, aby reguła linii długich aktywowała się tylko dla linii dłuższych niż 150 znaków, musisz dodać-rc=LONG_LINE=150
.
Nie mam cierpliwości, aby wymienić wszystkie parametry, które można zmienić. Lista reguł znajduje się tutaj http://docs.oclint.org/en/dev/rules/index.html i lista reguł opartych na progach tutaj http://docs.oclint.org/en/dev/customizing/rules.html, ale nie ma listy dopuszczalnych wartości i nie wiem, czy te dwa adresy URL obejmują wszystkie reguły, czy nie. Możesz zajrzeć do kodu źródłowego każdej reguły, aby dowiedzieć się, jak to działa.
Jeśli używasz skryptu Xcode należy użyć oclint_args
takiego:
oclint_args oclint-json-kompilacja-baza "-Rc LONG_LINE = 150" | SED 'y/(., \ m {1,2} [0-9] [0-9] *:)/\ 1 uwaga: /'
w tej próbce I” m zmieniając regułę LONG_LINE na 150 znaków
Zamiast przekazywania konfiguracji jako argumentów (patrz odpowiedź Jona Boydella), można również utworzyć plik YML o nazwie .oclint
w katalogu projektu.
Oto przykładowy plik, który dostosowuje się kilka rzeczy:
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
- 1. make: reguła reguły reguły
- 2. Dostosowywanie antresoli
- 3. Dostosowywanie bootboxa
- 4. dostosowywanie ZfcUser
- 5. Dostosowywanie UIDatePicker
- 6. Dostosowywanie GtkFileChooser
- 7. Reguły semantyczne/reguły drzewa składni abstrakcyjnej
- 8. Jak korzystać z protokołu OCLint w środowisku Cocoa Framework?
- 9. Reguły przypisywania
- 10. Dostosowywanie polecenia cd
- 11. Dostosowywanie bąbelka objaśnień MKAnnotation
- 12. Dostosowywanie paska narzędzi WYSIHTML5
- 13. Dostosowywanie wtyczki myszy jQuery
- 14. Dostosowywanie okna dialogowego onbeforeunload
- 15. Dostosowywanie pól wyjściowych elmah.axd
- 16. Dostosowywanie szablonu Bootstrap CSS
- 17. Dostosowywanie tyknięć osi X
- 18. Dostosowywanie CSS Pandoc's Slidy?
- 19. Dostosowywanie okna komunikatu
- 20. Angularjs - dostosowywanie zasobu $
- 21. Dostosowywanie Emacsa GDB
- 22. Dostosowywanie ramki navigationItem.titleView?
- 23. Nginx - Dostosowywanie 404 strona
- 24. Dostosowywanie paska zakładek "Więcej"
- 25. Dostosowywanie identyfikatora Phoenix
- 26. Dostosowywanie menu Apple
- 27. Flask-Admin - Dostosowywanie widoków
- 28. Dostosowywanie legendy MPAndroidChart
- 29. RailsAdmin - Dostosowywanie własnych filtrów
- 30. Dostosowywanie Kerning w CSS