Utilizzo lo strumento di analisi del codice statico OCLint per l'obiettivo C e desidero scoprire come personalizzare le regole? Le regole sono rappresentate da set di file dylib.Personalizzazione regola OCLint
risposta
La risposta, come con così tante cose, è che dipende.
Se si vuole scrivere il proprio regola personalizzata, allora avrete bisogno di scendere e sporco nel scrivere il proprio dominio, in C++ sulla parte superiore del codice sorgente esistente. Controlla la directory
oclint-rules/rules
,size/LongLineRule.cpp
è una semplice regola per andare avanti. È necessario ricompilare, ecc.Se si desidera modificare i parametri di una regola esistente, è necessario aggiungere il parametro della riga di comando
-rc=<rulename>=<value>
alla chiamata aoclint
. Ad esempio, se si desidera che la regola delle righe lunghe si attivi solo per le righe superiori a 150 caratteri, è necessario aggiungere-rc=LONG_LINE=150
.
Non ho la pazienza di elencare tutti i diversi parametri che è possibile modificare. L'elenco delle regole è qui http://docs.oclint.org/en/dev/rules/index.html e un elenco di regole basate su soglia qui http://docs.oclint.org/en/dev/customizing/rules.html ma non esiste un elenco di valori accettabili e non so se questi due URL coprono tutte le regole o meno. Potrebbe essere necessario esaminare il codice sorgente per ogni regola per capire come funziona.
Se stai usando lo script Xcode si dovrebbe usare oclint_args
come questo:
oclint_args oclint-JSON-compilazione-Database "-rc LONG_LINE = 150" | sed 's/(.. \ m {1,2}: [0-9]: [0-9] *:)/\ 1 avvertimento: /'
in quel campione I' m cambiando la regola di LONG_LINE a 150 caratteri
Invece di passare la configurazione come argomenti (vedere la risposta di Jon Boydell), è anche possibile creare un file YML denominato .oclint
nella directory del progetto.
Ecco un esempio di file che personalizza un paio di cose:
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. Come utilizzare OCLint per Cocoa Framework?
- 2. fare: regola chiamata regola
- 3. Personalizzazione android.widget.SearchView
- 4. Personalizzazione diretto
- 5. Personalizzazione JHipster
- 6. MPMoviePlayerViewController personalizzazione
- 7. Personalizzazione UIDatePicker
- 8. Quale regola usa "regola" o "prova"?
- 9. Android SeekBar thumb Personalizzazione
- 10. Personalizzazione della legenda MPAndroidChart
- 11. Storyboard e personalizzazione init
- 12. Personalizzazione della tastiera dell'iPhone
- 13. Recaptcha - Personalizzazione modulo
- 14. Personalizzazione dialogo di autorizzazione
- 15. Personalizzazione gancio globale Git
- 16. Personalizzazione action bar Android
- 17. Personalizzazione di Zuul Exception
- 18. Personalizzazione TabBar IOS 5
- 19. Personalizzazione del BackBarButtonItem
- 20. Symfony2 Personalizzazione modulo
- 21. Personalizzazione avanzata delle traduzioni in Symfony2
- 22. Nginx - Personalizzazione della pagina 404
- 23. RailsAdmin - Personalizzazione dei propri filtri
- 24. Personalizzazione della spaziatura dei filatori
- 25. Personalizzazione retrofit client per WebTokens
- 26. Personalizzazione UITableViewCell Evidenziamento sul touchdown
- 27. Esercitazione di personalizzazione SmartGWT Datasource
- 28. Matlab Plot con personalizzazione colore
- 29. Personalizzazione spinner barra di azioni
- 30. Personalizzazione dell'elaborazione con parametri forti