web-dev-qa-db-fra.com

Comment se débarrasser des messages de violation de règle de nommage dans Visual Studio?

Je viens d'installer Visual Studio 2017. Lorsque j'ouvre un site Web existant, je reçois toutes sortes de messages d'avertissement tels que celui-ci:

IDE1006 Violation de règle de nommage: ces mots doivent commencer par des majuscules: swe_calc

Dans le code, il est défini comme:

[System.Runtime.InteropServices.DllImport("swedll32.dll")]
public static extern Int32 swe_calc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);

Cela se produit également avec mes contrôles ASP.Net. Comme exemple de DropDownList:

IDE1006 Violation de règle de nommage: ces mots doivent commencer par des majuscules: ddlMonth_SelectedIndexChanged

Comment puis-je éliminer ce type d'avertissements sous Visual Studio?

68
SteveFerg

C'est une nouvelle fonctionnalité configurable, si vous allez à

Options → Editeur de texte → Votre langue (j'ai écrit en C #) → Style de code → Nommer

Là, je suis allé dans Gestion des styles. Ajoutez chameau (c'est là, mais vous devez l'ajouter à votre choix): allez au signe "+", puis ajoutez votre règle en conséquence.

Important: Fermez votre solution et rouvrez-la pour que les modifications prennent effet.

Par exemple, je n'utilise Camel Case que pour les méthodes privées. J'ai donc choisi Méthode privée et j'ai demandé à Style de créer le nouveau modèle que j'ai créé "Case camel" et de le définir sur Suggestion de gravité (je l'ai également promu au sommet).

Toutes les "suggestions" sont intégrées afin que vous puissiez simplement désactiver les messages.

113
Jason Gabel

Si vous avez besoin de vous débarrasser de ces messages, vous pouvez également les supprimer.

enter image description here

19
A.J.Bauer

Si vous souhaitez le supprimer uniquement dans certains fichiers ou dans certaines zones, vous pouvez utiliser les éléments suivants:

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006
13
Robert S.

Vous pouvez renommer la méthode et ajouter le nom à l'attribut avec la propriété EntryPoint.

[System.Runtime.InteropServices.DllImport("swedll32.dll", EntryPoint = "swe_calc")]
public static extern Int32 SweCalc(double tjd, int ipl, Int32 iflag, IntPtr xx, IntPtr serr);
12
Daniel A. White

Si vous souhaitez omettre ou annuler le message d'avertissement dans une méthode, vous pouvez utiliser le SuppressMessage de l'espace de noms System.Diagnostics.CodeAnalysis:

[SuppressMessage("Microsoft.Design", "IDE1006", Justification = "Rule violation aceppted due blah blah..")]

La propriété Justification est facultative, mais cela vaut la peine de prendre un moment pour écrire une raison, pour informer votre équipe que le code est révisé et qu'il est correct.

1

Si vous survolez la violation de la règle de nommage, vous pouvez utiliser Alt + Entrée pour faire apparaître les styles de nommage de cette langue. Vous pouvez également utiliser Outils -> Options -> Editeur de texte -> {langue} -> Style de code -> Nommage.

Pour les règles camelCase sur les méthodes, vous pouvez ajouter une nouvelle règle et la définir sur Camel Case. Lorsque vous fermez le fichier de code et le rouvrez, vous ne devriez plus voir cet avertissement. Vous ne savez pas pourquoi ce n'est pas une option par défaut, mais ce n'était pas dans mon cas (avec Visual Code 15.8). J'ai dû modifier les styles pour qu'ils correspondent aux normes de notre entreprise.

Exemple de paramètres de styles de nommage C #

1
Greg McFalls

Cela peut être fait avec VS2017 et VS2019 normaux en utilisant le fichier de paramètres .editorconfig, en appliquant les règles de dénomination suivantes: https://docs.Microsoft.com/en-us/visualstudio/ide/editorconfig-code- style-settings-reference

Le fichier peut être créé à la main ou dans VS2019, vous pouvez demander à Visual Studio de le créer pour vous à partir de vos préférences (c'est-à-dire après avoir configuré vos préférences comme dans https://stackoverflow.com/a/41131563/131701 ), en appuyant sur le bouton de configuration du fichier de configuration de l’éditeur de génération.

generate editor config file from settings button

Par exemple, les ensembles de règles suivants activeront camelCase pour toutes les méthodes non publiques et conserveront les autres règles de dénomination par défaut fournies avec VS.

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_Pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_Pascal_case.symbols = types
dotnet_naming_rule.types_should_be_Pascal_case.style = Pascal_case

dotnet_naming_rule.private_method_should_be_camelcasestyle.severity = suggestion
dotnet_naming_rule.private_method_should_be_camelcasestyle.symbols = private_method
dotnet_naming_rule.private_method_should_be_camelcasestyle.style = camelcasestyle

dotnet_naming_rule.non_field_members_should_be_Pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_Pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_Pascal_case.style = Pascal_case

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.interface.required_modifiers = 

dotnet_naming_symbols.private_method.applicable_kinds = method
dotnet_naming_symbols.private_method.applicable_accessibilities = private, protected, internal, protected_internal
dotnet_naming_symbols.private_method.required_modifiers = 

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.types.required_modifiers = 

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal
dotnet_naming_symbols.non_field_members.required_modifiers = 

# Naming styles

dotnet_naming_style.Pascal_case.required_prefix = 
dotnet_naming_style.Pascal_case.required_suffix = 
dotnet_naming_style.Pascal_case.Word_separator = 
dotnet_naming_style.Pascal_case.capitalization = Pascal_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix = 
dotnet_naming_style.begins_with_i.Word_separator = 
dotnet_naming_style.begins_with_i.capitalization = Pascal_case

dotnet_naming_style.camelcasestyle.required_prefix = 
dotnet_naming_style.camelcasestyle.required_suffix = 
dotnet_naming_style.camelcasestyle.Word_separator = 
dotnet_naming_style.camelcasestyle.capitalization = camel_case
1
Dave Glassborow