Analyse du code

Analyse à la volée

CLion surveille en permanence votre code pour détecter d'éventuelles erreurs. S'il trouve quelque chose, il surligne le morceau de code suspect dans l'éditeur. Si vous regardez dans la gouttière droite de l'éditeur, vous trouvez des bandes d'erreur jaunes et rouges qui, si vous cliquez dessus, vous mènent aux problèmes détectés. Une autre façon de naviguer d'un problème surligné à un autre est d'appuyer sur F2/Maj+F2. Un indicateur d'état en haut de la gouttière résume celui du fichier.

En plus de trouver les erreurs de compilation, CLion identifie les inefficacités du code et effectue même une analyse du flux de données de votre code pour localiser les éléments inaccessibles ou inutilisés, ainsi que d'autres problèmes et « code smells ».

Correctifs rapides

Les inspections de code à la volée de CLion couvrent environ 40 cas de problèmes potentiels en code C/C++ et bien d'autres langages.

Lorsqu'un problème est surligné, placez le caret dessus, appuyez sur Alt+Entrée et choisissez parmi les correctifs rapides proposés. (Vous pouvez également accéder au menu contextuel en cliquant sur l'ampoule à côté de la ligne.)

Vous pouvez aussi choisir de corriger tous les problèmes similaires de votre projet. Ou, si vous ne trouvez pas cette inspection utile, vous pouvez la désactiver pour la portée souhaitée.

Fonctionnalité Inspect code

CLion fournit des descriptions détaillées pour toutes les inspections disponibles. Vous pouvez également gérer leur sévérité (en choisissant entre Typo, Warning, Error, etc.) ou même, dans certains cas, ajuster les paramètres d'une inspection pour mieux refléter vos exigences.

Vous pouvez exécuter plusieurs contrôles (ou même tous les contrôles) dans ce mode batch avec Code | Inspect Code.

Si vous souhaitez éliminer un problème particulier de l'ensemble de votre base de code, vous pouvez utiliser Run inspection by name (Ctrl+Alt+Maj+I) et sélectionner la portée souhaitée. Une fenêtre séparée avec les résultats d'inspection s'ouvre, dans laquelle vous pouvez regrouper les incidents et appliquer des correctifs rapides par lots à tous les incidents, dans la mesure du possible.

Clang-Tidy

Clang-Tidy

CLion est livré avec l'intégration Clang-Tidy. Les contrôles Clang-Tidy sont affichés de la même manière que les inspections de code intégrés de CLion, et des correctifs rapides sont également disponibles via Alt+Entrée.

Allez dans Settings/Preferences | Editor | Inspections | C/C++ | General | Clang-Tidy pour régler la liste des contrôles activés ou désactivés dans CLion. Le format de ligne de commande Clang-Tidy est utilisé dans le champ de texte. La configuration par défaut est disponible ici. Ou utilisez les fichiers de configuration .clang-tidy au lieu des paramètres fournis par l'IDE.

Activez les vérifications C++ Core Guidelines ou Clang Static Analyzer, testez les vérifications Modernize ou implémentez directement vos propres vérifications et retrouvez-les immédiatement dans CLion (pour les vérifications personnalisées, remplacer le binaire Clang-Tidy par votre propre binaire dans Settings/Preferences | Languages & Frameworks | C/C++).

Vérifications Clangd

Vérifications en complément de Clangd

Plusieurs inspections ont été implémentées en plus du moteur personnalisé basé sur Clangd dans CLion :

  • La fonction membre peut être statique
  • Défauts de sélection d'argument
  • Déclaration ou instruction vide
  • Appel virtuel par les constructeurs/destructeurs
  • Unused includes

La vérification 'unused includes' suggère 3 stratégies de détection : une stratégie conservatrice, une stratégie agressive et la stratégie par défaut (Detect not directly used) qui se rapproche le plus du principe “Include What You Use”.

Pour en savoir plus

DFA

Data Flow Analysis

L'analyse du flux de données (DFA) suit le flux de données dans votre code et détecte les problèmes potentiels sur la base de cette analyse. En plus de l'analyse DFA locale (qui fonctionne au sein d'une fonction isolée), CLion inclut une DFA globale (qui considère l'ensemble d'une unité de traduction d'un programme comme un seul élément pour l'analyse). La DFA globale n'enrichit pas seulement les contrôles déjà existants. Elle ajoute également plusieurs inspections uniques.

MISRA

MISRA

CLion 2021.1 ajoute les vérifications des normes MISRA C 2012 et MISRA C++ 2008. La liste complète des vérifications prises en charge est disponible sur notre page Confluence et vous permet de suivre facilement l'avancement.