Resharper не распознает сокращение в списке - PullRequest
5 голосов
/ 09 марта 2012

Я пытаюсь убрать предупреждения, R # 6.1 генерирует для моих классов, и одна из проблем, о которых сообщает ReSharper, заключается в том, что у меня неверная заглавная буква в переменной.Например, у меня есть var RECDLeft = new RECD();, и он рекомендует изменить его на var recdLeft = new RECD(), несмотря на то, что это аббревиатура, определенная в списке.Я вручную добавил акроним RECD в список акронимов, потому что он не просил меня добавить его в меню быстрых исправлений.Я заметил, что если я вызываю переменную `var aRECDLeft ', он правильно распознает аббревиатуру.Есть ли причина, по которой аббревиатуры не распознаются в начале имени переменной?И есть ли способ заставить R # распознать это использование помимо перемещения аббревиатуры ко второму слову?

Спасибо, Марк Смит

Ответы [ 3 ]

4 голосов
/ 09 марта 2012

В ответ на ваш первый вопрос, я думаю, R # пытается соответствовать C # соглашениям Microsoft для сокращений:

Правила использования заглавных букв в аббревиатурах

Используйте заглавные буквы обоих символов двухсимвольных сокращений, кроме первого слова идентификатора в верблюжьей клетке.

Свойство с именем DBRate является примером короткой аббревиатуры (DB), используемой в качестве первого слова идентификатора в Паскале. Параметр с именем ioChannel является примером короткой аббревиатуры (IO), используемой в качестве первого слова идентификатора в верблюжьей клетке.

Прописывать только первый символ аббревиатур с тремя или более символами, кроме первого слова идентификатора в верблюжьей клетке.

Класс с именем XmlWriter является примером длинной аббревиатуры, используемой в качестве первого слова идентификатора в Паскале. Параметр с именем htmlReader является примером длинной аббревиатуры, используемой в качестве первого слова идентификатора в верблюжьей клетке.

Не пишите с заглавной буквы любые символы любых сокращений, независимо от их длины, в начале идентификатора в верблюжьей клетке.

Параметр с именем xmlStream является примером длинной аббревиатуры (xml), используемой в качестве первого слова идентификатора в верблюжьей клетке. Параметр с именем dbServerName является примером короткой аббревиатуры (дБ), используемой в качестве первого слова идентификатора в верблюжьей клетке.

2 голосов
/ 10 марта 2012

Как правильно указывает siride, это особый случай именования, который требует введения специального правила именования для локальных переменных, которое будет проверяться в дополнение к правилу по умолчанию. Вот что вы должны сделать:

  1. Перейдите на ReSharper> Параметры> Редактирование кода> C #> Стиль именования C #
  2. Выберите Локальные переменные и нажмите Редактировать .
  3. В диалоговом окне Изменить правила , по умолчанию вы видите одно единственное правило lowerCamelCase . Вы могли бы изменить его на другой стиль.
  4. Вам нужно добавить еще одно правило именования, нажав Добавить и установить для префикса имени (RECD в вашем случае) и стиля значение UpperCamelCase . Если вы добавите только префикс, ReSharper будет продолжать скулить (и давать несколько забавных предложений по переименованию), потому что вы также пишете «Левый» вместо «левый».

Если у вас есть другие подобные сокращения, вы должны добавить дополнительное правило именования локальных переменных для каждого из них (полный список известных сокращений доступен в Стиль именования C #> Расширенные настройки> Сокращения в виде простого текста .) Это не очень удобно, но дело не в том, что у вас есть простой стандарт именования *

Надеюсь, это поможет.

2 голосов
/ 09 марта 2012

Я предполагаю, что проблема в том, что хотя аббревиатура добавлена, вы все еще нарушаете правило, согласно которому имена переменных начинаются со строчной буквы. Вам нужно добавить специальное правило для имен переменных, которое позволяет им начинать с этой аббревиатуры. Это не то же самое, что добавить акроним в список.

...