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?
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.
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
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);
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.
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.
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.
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