Options de configuration des règles de qualité du code

Les règles de qualité du code ont des options de configuration supplémentaires, en plus de simplement configurer leur gravité. Par exemple, chaque analyseur de qualité du code peut être configuré pour s’appliquer uniquement à des parties spécifiques de votre codebase. Vous spécifiez ces options en ajoutant des paires clé-valeur au même fichier EditorConfig que celui où vous spécifiez la gravité des règles et les préférences générales de l’éditeur.

Notes

Cet article ne détaille pas comment configurer la gravité d’une règle. L’option .editorconfig pour définir la gravité d’une règle a un préfixe différent (dotnet_diagnostic) des options décrites ici (dotnet_code_quality). En outre, les options décrites ici concernent uniquement les règles de qualité du code, tandis que l’option de gravité s’applique également aux règles de style de code. En guise de référence rapide, vous pouvez configurer la gravité d’une règle à l’aide de la syntaxe d’option suivante :

dotnet_diagnostic.<rule ID>.severity = <severity value>

Toutefois, pour obtenir des informations détaillées sur la configuration de la gravité des règles, consultez la section Niveau de gravité.

Étendue des options

Chaque option d’affinement peut être configurée pour toutes les règles, pour une catégorie de règles (par exemple, Sécurité ou Conception) ou pour une règle spécifique.

Toutes les règles

La syntaxe de configuration d’une option pour toutes les règles est la suivante :

Syntaxe Exemple
dotnet_code_quality.<OptionName> = <OptionValue> dotnet_code_quality.api_surface = public

Les valeurs pour <OptionName> sont répertoriées sous Options.

Catégorie de règles

La syntaxe de configuration d’une option pour une catégorie de règles est la suivante :

Syntaxe Exemple
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue dotnet_code_quality.Naming.api_surface = public

Le tableau suivant répertorie les valeurs disponibles pour <RuleCategory>.

Design
Documentation
Globalization
Interoperability

Maintainability
Naming
Performance
SingleFile

Reliability
Security
Usage

Règle spécifique

La syntaxe de configuration d’une option pour une règle spécifique est la suivante :

Syntaxe Exemple
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> dotnet_code_quality.CA1040.api_surface = public

Options

Cette section répertorie certaines des options disponibles. Pour afficher la liste complète des options disponibles, consultez la section Configuration de l’analyseur.

api_surface

Description Valeurs autorisées Valeur par défaut Règles configurables
Quelle partie de l’aire d’API analyser public (s’applique aux API public et protected)
internal ou friend (s’applique aux API internal et private protected)
private (s’applique aux API private)
all (s’applique à toutes les API)

Séparer plusieurs valeurs avec une virgule (,)
public CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234

exclude_async_void_methods

Description Valeurs autorisées Valeur par défaut Règles configurables
Indique s’il faut ignorer les méthodes asynchrones qui ne retournent pas de valeur true
false
false CA2007

Notes

Cette option a été nommée skip_async_void_methods dans une version antérieure.

exclude_single_letter_type_parameters

Description Valeurs autorisées Valeur par défaut Règles configurables
Indique s’il faut exclure les paramètres de type à caractère unique de la règle, par exemple, S dans Collection<S> true
false
false CA1715

Notes

Cette option a été nommée allow_single_letter_type_parameters dans une version antérieure.

output_kind

Description Valeurs autorisées Valeur par défaut Règles configurables
Spécifie que le code d’un projet qui génère ce type d’assembly doit être analysé Un ou plusieurs champs de l’énumération OutputKind

Séparer plusieurs valeurs avec une virgule (,)
Tous les types de sortie CA2007

required_modifiers

Description Valeurs autorisées Valeur par défaut Règles configurables
Spécifie les modificateurs requis pour les API qui doivent être analysées Une ou plusieurs valeurs de la table des modificateurs autorisés ci-dessous

Séparer plusieurs valeurs avec une virgule (,)
Dépend de chaque règle CA1802
Modificateur autorisé Résumé
none Aucune exigence de modificateur
static ou Shared Doit être déclaré comme static (Shared en Visual Basic)
const Doit être déclaré comme const
readonly Doit être déclaré comme readonly
abstract Doit être déclaré comme abstract
virtual Doit être déclaré comme virtual
override Doit être déclaré comme override
sealed Doit être déclaré comme sealed
extern Doit être déclaré comme extern
async Doit être déclaré comme async

exclude_extension_method_this_parameter

Description Valeurs autorisées Valeur par défaut Règles configurables
Indique s’il faut ignorer l’analyse pour le paramètre this des méthodes d’extension true
false
false CA1062

null_check_validation_methods

Description Valeurs autorisées Valeur par défaut Règles configurables
Noms des méthodes de contrôle de valeur null qui valident que les arguments passés à la méthode ne sont pas nuls Formats de nom de méthode autorisés (séparés par |) :
- Nom de la méthode uniquement (inclut toutes les méthodes portant le nom, quel que soit le type ou l’espace de noms conteneur)
- Noms qualifiés complets au format d’ID de documentation du symbole, avec un préfixe M: facultatif
None CA1062

additional_string_formatting_methods

Description Valeurs autorisées Valeur par défaut Règles configurables
Noms des méthodes de mise en forme de chaîne supplémentaires Formats de nom de méthode autorisés (séparés par |) :
- Nom de la méthode uniquement (inclut toutes les méthodes portant le nom, quel que soit le type ou l’espace de noms conteneur)
- Noms qualifiés complets au format d’ID de documentation du symbole, avec un préfixe M: facultatif
None CA2241

excluded_type_names_with_derived_types

Description Valeurs autorisées Valeur par défaut Règles configurables
Noms de types, de sorte que le type et tous ses types dérivés sont exclus pour l’analyse Formats de nom de symbole autorisés (séparés par |) :
- Nom du type uniquement (inclut tous les types avec le nom, quel que soit le type ou l’espace de noms qui les contient)
- Noms qualifiés complets au format d’ID de documentation du symbole, avec un préfixe T: facultatif
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

excluded_symbol_names

Description Valeurs autorisées Valeur par défaut Règles configurables
Noms de symboles exclus pour l’analyse Formats de nom de symbole autorisés (séparés par |) :
- Nom du symbole uniquement (inclut tous les symboles avec le nom, quel que soit le type ou l’espace de noms qui les contient)
- Noms qualifiés complets au format d’ID de documentation du symbole. Chaque nom de symbole nécessite un préfixe de type symbole, comme le préfixe M: pour les méthodes, le préfixe T: pour les types et le préfixe N: pour les espaces de noms.
- .ctor pour les constructeurs et .cctor pour les constructeurs statiques
None CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400

disallowed_symbol_names

Description Valeurs autorisées Valeur par défaut Règles configurables
Noms de symboles non autorisés dans le contexte de l’analyse Formats de nom de symbole autorisés (séparés par |) :
- Nom du symbole uniquement (inclut tous les symboles avec le nom, quel que soit le type ou l’espace de noms qui les contient)
- Noms qualifiés complets au format d’ID de documentation du symbole. Chaque nom de symbole nécessite un préfixe de type symbole, comme le préfixe M: pour les méthodes, le préfixe T: pour les types et le préfixe N: pour les espaces de noms.
- .ctor pour les constructeurs et .cctor pour les constructeurs statiques
None CA1031

exclude_ordefault_methods

Description Valeurs autorisées Valeur par défaut Règles configurables
Exclut les méthodes FirstOrDefault et LastOrDefault de l’analyse. true ou false false CA1826

ignore_internalsvisibleto

Description Valeurs autorisées Valeur par défaut Règles configurables
Inclut les assemblies marqués avec InternalsVisibleToAttribute dans l’analyse. true ou false true CA1812CA1852