J'utilise l'outil d'analyse de code statique d'OCLint pour l'objectif-C et souhaitez savoir comment personnaliser les règles? Les règles sont représentées par ensemble de fichiers de dylib. P>
3 Réponses :
La réponse, comme avec tant de choses, c'est que cela dépend. p>
Si vous souhaitez écrire votre propre règle personnalisée, vous devez vous mettre en panne et sale dans la rédaction de votre propre règle, en C ++ en plus du code source existant. Consultez le répertoire Si vous souhaitez modifier les paramètres d'une règle existante, vous devez ajouter le paramètre de ligne de commande Je n'ai pas la patience pour répertorier tous les différents paramètres que vous pouvez modifier. La liste des règles est ici ici http://docs.oclint.org/en/dev /rules/index.html et une liste de règles basées sur le seuil ici http : //docs.oclint.org/fr/dev/customizing/roules.html Mais il n'y a pas de liste de valeurs acceptables et je ne sais pas si ces deux URL couvrent toutes les règles ou non. Vous devrez peut-être examiner le code source pour chaque règle pour déterminer comment cela fonctionne. P> oclint-règles / règles code>,
taille / longlinerule.cpp code> est une règle simple pour aller avec. Vous devrez recompiler, etc. P> li>
-rc =
oclint code>. Par exemple, si vous souhaitez que la règle de lignes longue ne soit activée que pour les lignes plus longtemps que 150 caractères, vous devez ajouter
-rc = long_line = 150 code>. P> LI>
ol>
Si vous utilisez un script XCode, vous devez utiliser OCLINT-JSON-Compilation-Base de données oclint_args "-rc long_line = 150" | sed
'S / (. . \ m {1,2}: [0-9] em>: [0-9] * :) / \ 1 AVERTISSEMENT: /' P>
blockQuote>
Dans cet échantillon, je change la règle de long_line à 150 caractères p> oclint_args code> comme ceci: p>
au lieu de la configuration de passage en tant qu'arguments (voir la réponse de Jon Boydell), vous pouvez également créer un fichier YML nommé Voici un exemple de fichier qui personnalise quelques-unes Choses: P> .OCLint code> dans le répertoire de projet.
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
Merci pour cette information! Je viens de réaliser que le nom du fichier doit être .OCLint code>, pas
.OCLint.yml code> ... Bien que ce soit un fichier YML. MDR