Utilisation de clang-tidy sur du code C ++
clang-tidy
est un outil permettant de vérifier automatiquement le code C/C++/Objective-C pour les violations de style, les erreurs de programmation et les bonnes pratiques.
L'intégration clang-tidy
pour Electron est fournie en tant que script de lint pouvant être exécuté avec npm run lint:clang-tidy
. Lors de la vérification de vos fichiers sur disque par clang-tidy
, Electron aura du être compilé de telle façon qu’il sache quels indicateurs de compilation ont été utilisés. Il y a une option requise pour le script --output-dir
, qui indique au script à partir de quel répertoire de compilation il doit récupérer les informations de compilation. Une utilisation typique serait : npm run lint:clang-tidy --out-dir ../out/Testing
Sans nom de fichier fourni, tous les fichiers C/C++/Objective-C seront vérifiés. Vous pouvez fournir une liste de fichiers à vérifier en passant les noms de fichiers après les options : npm run lint:clang-tidy --out-dir ../out/Testing shell/browser/api/electron_api_app.cc
Alors que clang-tidy
a une longue liste de vérifications possibles, seules quelques-unes sont activées par défaut dans Electron. Pour le moment, Electron n'a pas de configuration .clang-tidy
, donc clang-tidy
va chercher celle de Chromium à src/.clang-tidy
et utiliser les vérifications activées. Vous pouvez modifier les vérifications exécutées en utilisant le l'option --checks=
. Celles ci sont transmises directement à clang-tidy
, donc consultez sa documentation pour plus de détails. Les wildcards peuvent être utilisées, et les vérifications peuvent être désactivées en préfixant par un -
. Par défaut, toutes les vérifications listées sont ajoutées à celles de .clang-tidy
, donc si vous souhaitez limiter les vérifications à des vérifications spécifiques, vous devez d'abord exclure toutes les vérifications puis ajouter ce que vous voulez, comme par exemple: --checks=-*,performance*
.
L'éxécution de clang-tidy
est plutôt lente - en interne il compile chaque fichier et exécute ensuite les vérifications donc c'est bien sur plus lent que la compilation. Bien que vous puissiez utiliser des exécutions parallèles pour l'accélérer en utilisant l'option --jobs|-j
, clang-tidy
utilise tout de même beaucoup de mémoire pendant ses vérifications, donc on peut facilement se retrouver avec des erreurs de type out-of-memory. Le nombre de tâches est fixé par défaut à un.