Як позбутися повідомлень про порушення правил іменування у Visual Studio?


94

Я щойно встановив Visual Studio 2017. Коли я відкриваю існуючий веб-сайт, я отримую всілякі попереджувальні повідомлення, такі як це:

IDE1006 Порушення правила іменування: Ці слова повинні починатися з великих символів: swe_calc

У коді це визначається як:

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

Це також відбувається з моїми елементами керування ASP.Net. Як приклад DropDownList:

IDE1006 Порушення правила іменування: Ці слова повинні починатися з великих символів: ddlMonth_SelectedIndexChanged

Як я можу усунути попередження такого типу за допомогою Visual Studio?


7
Безперечно надішліть цей відгук VS. 2017 - нова версія з новими функціями, і іноді вони можуть починатися занадто агресивно. Ваш відгук допоможе відкоригувати поведінку за замовчуванням.
Джиммі

3
Звучить як помилка. Мова йде не лише про старі проекти, а й про нові, створені у VS2017rc. VS створює контрольні імена, які потім позначає як образливі.
TaW

3
Я зіткнувся з цією помилкою 1006 із згенерованим MSVS обробником клавіш, "btnList_Click ()". Іншими словами, MSVS2017 скаржиться на метод, який створив сам ! Раптом скаржиться на конвенцію про іменування, яка існує з .Net 1.0 ! Зітхання .. IDEAL РІШЕННЯ: #pragma warning disable IDE1006. Це має ту перевагу, що, оскільки він міститься у вихідному коді, він автоматично застосовується для всього проекту (вам не потрібно синхронізувати будь-які налаштування MSVS для кожної робочої станції).
paulsm4,

Відповіді:


140

Це нова налаштована функція, якщо ви перейдете до

Опції → Текстовий редактор → Ваша мова (я зробив C #) → Стиль коду → Іменування

Там я пішов до Manage Styles add camel Case (його там, але вам потрібно додати його до вибору): перейдіть до знака "+", а потім додайте своє правило відповідно.

Важливо : Закрийте рішення та знову відкрийте його, щоб зміни набрали чинності.

Наприклад, я використовую чохол для верблюдів лише для приватних методів. Тому я вибрав Приватний метод і вимагав укласти новий, який я створив, «Справа на верблюдах» і встановити його як Пропозицію серйозності (я також підвищив його до вершини).

Вбудовані - це також "Пропозиції", тому Ви також можете просто вимкнути Повідомлення.


2
Це точно така ж угода про іменування, яку ми використовуємо для приватних методів - спасибі! Тепер мені просто потрібно розібратися, як це зробити для всіх, не вимагаючи, щоб люди самостійно встановлювали цю опцію ....
Метью Ватсон

9
Швидкий спосіб дістатися до цих параметрів - натиснути лампочку «Швидкі дії», навести курсор на «Виправити порушення імені» та натиснути кнопку «Змінити параметри стилю».
Дарен

5
Я щойно видалив правила
Побожний

2
Для того, щоб розділити такі настройки / правила / стилі з усією командою, ставляться до цього: stackoverflow.com/questions/11684457 / ...
kmote

5
Вся функція іменування видається помилкою і не працює у випуску Visual Studio 2019.
гпресланд

27

Якщо ви хочете придушити це лише в деяких файлах або областях, ви можете використовувати наступне:

#pragma warning disable IDE1006

// the code with the warning

#pragma warning restore IDE1006

2
Це, мабуть, "ідеальне" рішення! Це вирішує проблему для всієї команди.
paulsm4,

24

Якщо вам потрібно позбутися цих повідомлень, ви можете просто їх придушити.

введіть тут опис зображення


1
Яка різниця між придушенням їх "У джерелі" та "У файлі придушення"?
TylerH

3
@TylerH "In Source" - це файл, в який викидається попередження. "У файлі придушення" - це генерований файл для зберігання всіх ваших попереджень.
MistaGoustan

14

Ви можете перейменувати метод і додати ім’я до атрибута із 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);

У мене також є спадне вікно, що видає ту ж помилку: 'ddlMonth_SelectedIndexChanged'. Чи потрібно також перейменовувати всі мої елементи керування asp.net?
SteveFerg

@SteveFerg це залежить від вас - це лише попередження.
Daniel A. White

1
Я так само зрозумів. Мені просто цікаво, чи є десь можливість їх вимкнути, крім "зняття клацання" з поля Повідомлення у списку помилок.
SteveFerg

5

Якщо ви хочете опустити або скасувати попереджувальне повідомлення в методі, ви можете використовувати SuppressMessage із простору імен System.Diagnostics.CodeAnalysis :

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

Виправдання властивість НЕ є обов'язковим, але це варто витрачати момент написання причин, щоб ваша команда знала , що код переглянуте і це нормально.


2

Якщо навести курсор на порушення правила іменування, ви можете використовувати Alt + Enter, щоб викликати стилі імен для цієї мови. Ви також можете скористатися Інструментами -> Параметри -> Текстовий редактор -> {мова} -> Стиль коду -> Іменування.

Для правил camelCase щодо методів ви можете додати нове правило та встановити це для Camel Case. Коли ви закриваєте файл коду і відкриваєте його знову, ви більше не бачите цього попередження. Не знаю, чому це не варіант за замовчуванням, але в моєму випадку це не було (за допомогою Visual Code 15.8). Мені довелося редагувати стилі відповідно до стандартів нашої компанії.

Зразок Налаштування стилів імен C #


2

Це можна зробити за допомогою звичайних VS2017 і VS2019, використовуючи .editorconfigфайл налаштувань, використовуючи правила іменування: https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference

Файл можна створити вручну, або у VS2019 ви можете отримати Visual Studio, щоб створити його відповідно до ваших уподобань (тобто після налаштування ваших преф, як на https://stackoverflow.com/a/41131563/131701 ), натиснувши створити конфігураційний файл редактора за допомогою кнопки налаштувань.

згенерувати конфігураційний файл редактора за допомогою кнопки налаштувань

Наприклад, наступні набори правил дозволять camelCase використовувати всі непублічні методи та зберігати інші правила імен за замовчуванням, що постачаються з 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

0

відключити правило. клацніть правою кнопкою миші повідомлення про помилку та виберіть серйозність до жодної

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.