Практическое руководство. Настройка словаря анализа кода
В анализе кода используется встроенный словарь для проверки идентификаторов в коде на наличие ошибок в правописании или грамматическом падеже, а также других нарушений соглашений об именовании, указанных в рекомендациях для платформы .NET Framework.Можно создать XML-файл настраиваемого словаря, чтобы добавлять, удалять или изменять термины, сокращения и аббревиатуры во встроенном словаре.
Например, предположим, что код содержит класс под названием DoorKnokker.При анализе кода это имя рассматривается как состоящее из двух слов: door и knokker.Таким образом, на экран выводится предупреждение о том, что слово knokker написано неверно.Чтобы при анализе кода это написание распознавалось, можно добавить термин knokker в настраиваемый словарь.
Создание настраиваемого словаря
Создайте файл с названием CustomDictionary.xml.
Задайте свои собственные слова, используя следующую XML-структуру:
<Dictionary>
<Words>
<Unrecognized>
<Word>knokker</Word>
</Unrecognized>
<Recognized>
<Word></Word>
</Recognized>
<Deprecated>
<Term PreferredAlternate=""></Term>
</Deprecated>
<Compound>
<Term CompoundAlternate=""></Term>
</Compound>
<DiscreteExceptions>
<Term></Term>
</DiscreteExceptions>
</Words>
<Acronyms>
<CasingExceptions>
<Acronym></Acronym>
</CasingExceptions>
</Acronyms>
</Dictionary>
Элементы настраиваемого словаря
Поведение словаря анализа кода можно изменить, добавляя термины в виде внутреннего текста следующих элементов настраиваемого словаря.
Dictionary/Words/Recognized/Word
Чтобы включить термин в список терминов, распознаваемых при анализе кода как правильно написанные, добавьте этот термин во внутренний текст элемента Dictionary/Words/Recognized/Word.В элементах Dictionary/Words/Recognized/Word регистр терминов не учитывается.
Пример
<Dictionary>
<Words>
<Recognized>
<Word>knokker</Word>
...
</Recognized>
...
</Words>
...
</Dictionary>
Термины в узлах Dictionary/Words/Recognized применяются к следующим правилам анализа кода:
CA1701: соблюдайте правильность регистра в составных словах строк ресурса
CA1702: для сложных слов следует использовать правильный регистр
Dictionary/Words/Unrecognized/Word
Чтобы исключить термин из списка терминов, распознаваемых при анализе кода как правильно написанные, добавьте исключаемый термин во внутренний текст элемента Dictionary/Words/Unrecognized/Word.В элементах Dictionary/Words/Unrecognized/Word регистр терминов не учитывается.
Пример
<Dictionary>
<Words>
<Unrecognized>
<Word>meth</Word>
...
</Unrecognized>
...
</Words>
...
</Dictionary>
Термины в узле Dictionary/Words/Unrecognized применяются к следующим правилам анализа кода:
CA1701: соблюдайте правильность регистра в составных словах строк ресурса
CA1702: для сложных слов следует использовать правильный регистр
Dictionary/Words/Deprecated/Term[@PreferredAlternate]
Чтобы включить термин в список терминов, распознаваемых при анализе кода как нерекомендуемые, добавьте этот термин во внутренний текст элемента Dictionary/Words/Deprecated/Term.Нерекомендуемый термин — это правильно написанное слово, которое не следует использовать.
Чтобы включить в предупреждение предлагаемый альтернативный термин, укажите альтернативу в атрибуте PreferredAlternate элемента Term.Если предлагать альтернативу не требуется, можно оставить значение этого атрибута пустым.
В элементе Dictionary/Words/ Deprecated/Term регистр нерекомендуемых терминов не учитывается.
В значении атрибута PreferredAlternate регистр учитывается.Для составных альтернативных значений используйте написание в стиле Pascal.
Пример
<Dictionary>
<Words>
<Deprecated>
<Term PreferredAlternate="LogOn">login</Term>
...
</Deprecated>
...
</Words>
...
</Dictionary>
Термины в узле Dictionary/Words/Deprecated применяются к следующим правилам анализа кода:
CA1701: соблюдайте правильность регистра в составных словах строк ресурса
CA1702: для сложных слов следует использовать правильный регистр
Dictionary/Words/Compound/Term[@CompoundAlternate]
Во встроенном словаре некоторые термины определяются как единый отдельный термин, а не как составной термин.Чтобы включить термин в список терминов, распознаваемых при анализе кода как составное слово, а также указать правильный регистр символов для этого термина, добавьте его во внутренний текст элемента Dictionary/Words/Compound/Term.В атрибуте CompoundAlternate элемента Term укажите отдельные слова, из которых состоит составной термин, написав первую букву каждого слова в верхнем регистре (написание в стиле Pascal).Обратите внимание, что термин, указанный во внутреннем тексте, автоматически добавляется в список Dictionary/Words/DiscreteExceptions.
В элементе Dictionary/Words/ Deprecated/Term регистр нерекомендуемых терминов не учитывается.
В значении атрибута PreferredAlternate регистр учитывается.Для составных альтернативных значений используйте написание в стиле Pascal.
Пример
<Dictionary>
<Words>
<Compound>
<Term CompoundAlternate="CheckBox">checkbox</Term>
...
</Compound>
...
</Words>
...
</Dictionary>
Термины в узле Dictionary/Words/Compound применяются к следующим правилам анализа кода:
CA1701: соблюдайте правильность регистра в составных словах строк ресурса
CA1702: для сложных слов следует использовать правильный регистр
Dictionary/Words/DiscreteExceptions/Term
Чтобы исключить термин из списка терминов, распознаваемых при анализе кода как единое отдельное слово во время проверки термина с использованием правил регистра символов для составных слов, добавьте этот термин во внутренний текст элемента Dictionary/Words/DiscreteExceptions/Term.В элементе Dictionary/Words/ DiscreteExceptions/Term регистр терминов не учитывается.
Пример
<Dictionary>
<Words>
<DiscreteExceptions>
<Term>checkbox</Term>
...
</DiscreteExceptions>
...
</Words>
...
</Dictionary>
Термины в узле Dictionary/Words/DiscreteExceptions применяются к следующим правилам анализа кода:
CA1701: соблюдайте правильность регистра в составных словах строк ресурса
CA1702: для сложных слов следует использовать правильный регистр
Dictionary/Acronyms/CasingExceptions/Acronym
Чтобы включить аббревиатуру в список терминов, распознаваемых при анализе кода как правильно написанное слово, а также задать этот термин в качестве аббревиатуры при проверке термина с использованием правил регистра символов для составных слов, добавьте этот термин во внутренний текст элемента Dictionary/Acronyms/CasingExceptions/Acronym.В элементе Dictionary/Acronyms/CasingExceptions/Acronym учитывается регистр символов.
Пример
<Dictionary>
<Acronyms>
<CasingExceptions>
<Acronym>NESW</Acronym> <!-- North East South West -->
...
</CasingExceptions>
...
</Acronyms>
...
</Dictionary>
Термины в узле Dictionary/Acronyms/CasingExceptions применяются к следующим правилам анализа кода:
- CA1709: Identifiers should be cased correctly
Применение настраиваемого словаря к проекту
В обозревателе решений воспользуйтесь одной из следующих процедур:
Чтобы добавить словарь в один проект, щелкните правой кнопкой мыши имя проекта, затем щелкните команду Добавить существующий элемент.Задайте файл в диалоговом окне Добавление существующего элемента.
Для добавления общего словаря для двух и более проектов найдите файл для общего доступа в диалоговом окне Добавление существующего элемента, щелкните стрелку вниз на кнопке Добавить, и выберите пункт Добавить как связь.
В окне Обозреватель решений щелкните правой кнопкой мыши имя файла CustomDictionary.xml и выберите команду Свойства.
Выберите в списке Действие при построении пункт CodeAnalysisDictionary.
Выберите в списке Копировать в выходной каталог пункт Не копировать.