Analyseurs de Roslyn. Comment écrire du code rapidement et avec précision

Roslyn, la plate-forme du compilateur .NET, aide à détecter les erreurs avant même l'exécution du code. Un exemple est le vérificateur orthographique de Roslyn, qui est intégré à Visual Studio. Disons que vous créez une méthode statique et écrivez accidentellement le mot statique en tant que statc. Vous pourrez voir cette erreur d'orthographe avant même d'exécuter votre code, car Roslyn donnera un avertissement dans votre code lorsque vous entrez du texte avant même d'avoir fini de taper une ligne. En d'autres termes, vous n'avez pas besoin de générer le code pour savoir que vous avez fait une erreur.

image

Les analyseurs Roslyn peuvent également afficher la correction automatique du code à l'aide de l'icône de l'ampoule Visual Studio, qui vous permet de corriger immédiatement le code.

image

Et si vous pouviez attraper encore plus d'erreurs?


Permettez-moi de vous présenter les packages de l'analyseur Roslyn. Ces collections d'analyseurs fournissent une analyse plus détaillée, mais ne sont pas fournies avec les outils Visual Studio par défaut. Pour en savoir plus sur nos analyseurs Roslyn préférés, visitez le référentiel des analyseurs Roslyn sur GitHub . Ce référentiel comprend des règles FxCop qui s'appliquent toujours au développement de logiciels modernes mais sont désormais ciblées pour notre plate-forme d'analyse de code basée sur Roslyn. Continuons et installons ce package pour augmenter la productivité et la vitesse d'écriture d'un bon code!

Installation des analyseurs FxCop:

  1. Je suppose que vous utilisez Visual Studio 2017 version 15.8 ou ultérieure. Si tel est le cas, sélectionnez la dernière version de Microsoft.CodeAnalysis.FxCopAnalyzers .
  2. Installez le package dans Visual Studio à l'aide de l' interface utilisateur du gestionnaire de packages .

image

Après avoir installé le package, vous pouvez simplement configurer les diagnostics de l'analyseur dans l'Explorateur de solutions. Le nœud de l'analyseur apparaît sous le nœud Références ou dépendances dans l'Explorateur de solutions. Si vous déployez d'abord des analyseurs, puis l'un des ensembles d'analyseurs, vous pouvez voir tous les diagnostics disponibles dans l'assemblage.

image

Vous pouvez afficher les propriétés de diagnostic, y compris des éléments tels que Description et Gravité par défaut, dans la fenêtre Propriétés. Pour afficher les propriétés, cliquez avec le bouton droit sur la règle et sélectionnez Propriétés, ou sélectionnez la règle, puis appuyez sur Alt + Entrée .

image

Les icônes à côté de chaque type de diagnostic dans l'Explorateur de solutions correspondent aux icônes qui apparaissent dans le jeu de règles lorsqu'il est ouvert dans l'éditeur:

  • "I" dans un cercle indique un paramètre Info
  • "!" dans un triangle indique le paramètre d'avertissement
  • "X" dans le cercle indique le paramètre d'erreur
  • "I" dans le cercle indique le paramètre Hidden
  • «↓» dans un cercle indique un diagnostic supprimé.

image

Vous pouvez ensuite définir les paramètres de gravité dans l'Explorateur de solutions. Tout d'abord, pour cela, vous devez développer Dépendances > Analyseurs dans l'Explorateur de solutions, puis déployer l'assembly contenant la règle pour laquelle vous souhaitez définir les paramètres de gravité. Après cela, vous devez cliquer avec le bouton droit sur la règle, sélectionner Définir la gravité du jeu de règles et sélectionner l'un des paramètres de gravité dans le menu contextuel.

image

Si vous définissez Avertissement, vous recevrez des avertissements dans votre code pour cet ensemble particulier de règles.

image

Maintenant que vous comprenez le fonctionnement des analyseurs, vous pouvez augmenter la productivité et écrire plus rapidement du bon code!

FAQ:


Q : Je suis tombé sur l'avertissement suivant lorsque je travaillais dans Visual Studio: «L'exécution de l'analyse de code a été déconseillée au profit des analyseurs FxCop, qui s'exécutent pendant la génération. Reportez-vous à aka.ms/fxcopanalyzers pour migrer vers les analyseurs FxCop ». Qu'est-ce que cela signifie?
R : FxCop est un outil d'analyse de code qui a précédé Roslyn pendant près d'une décennie. Tout comme nous avons porté notre compilateur (par exemple, en introduisant Roslyn), nous avons également porté notre technologie d'analyse de code sur la plate-forme Roslyn. Puisqu'il s'exécute sur la plate-forme du compilateur .NET, il peut générer des avertissements dans votre code lors de la frappe. En d'autres termes, il n'est pas nécessaire de générer le code pour découvrir l'erreur.

Q : Quelle est la différence entre les anciens analyseurs FxCop et FxCop?
R : Les analyseurs FxCop analysent le code source en temps réel et pendant la compilation, tandis que le FxCop hérité est une analyse de code statique et analyse les fichiers binaires une fois la construction terminée. Voir Analyseurs Roslyn vs pour plus d'informations. l'analyse de code statique et la FAQ des analyseurs FxCop .

Q : Puis-je écrire mes propres analyseurs?
R : bien sûr! La documentation sur l'écriture des analyseurs est ici .

Q : Dois-je utiliser les analyseurs Roslyn ou .editorconfig pour le style de code?
R : Les analyseurs Roslyn et les fichiers .editorconfig fonctionnent main dans la main. Lorsque vous définissez des styles de code dans le fichier .editorconfig ou sur la page d' options de l'éditeur de texte , vous configurez en fait les analyseurs Roslyn intégrés à Visual Studio.

Q : Les analyseurs fonctionnent-ils dans des assemblages d'intégration continue (CI)?
R : Oui, les analyseurs installés en tant que packages NuGet peuvent être utilisés dans les assemblys CI.

Q : Où puis-je demander plus d'analyseurs ou signaler des erreurs?
R : Vous pouvez demander plus d'analyseurs et signaler des bogues dans le référentiel Roslyn sur GitHub.

Source: https://habr.com/ru/post/fr459982/


All Articles