Visual Studio Team System
Identifiers should be spelled correctly

This warning is supported in the stand-alone version of FxCop only. It is not supported in Code Analysis, which is integrated into Visual Studio.

TypeName

IdentifiersShouldBeSpelledCorrectly

CheckId

CA1704

Category

Microsoft.Naming

Breaking Change

Breaking

Cause

The name of an externally visible identifier contains one or more words that are not recognized by the Microsoft spelling checker library. This rule does not check constructors or special-named members such as get and set property accessors.

Rule Description

This rule parses the identifier into tokens and checks the spelling of each token. The parsing algorithm performs the following transformations:

  • Uppercase letters start a new token. For example, MyNameIsJoe tokenizes to "My", "Name", "Is", "Joe".

  • For multiple uppercase letters, the last uppercase letter starts a new token. For example, GUIEditor tokenizes to "GUI", "Editor".

  • Leading and trailing apostrophes are removed. For example, 'sender' tokenizes to "sender".

  • Underscores signify the end of a token and are removed. For example, Hello_world tokenizes to "Hello", "world".

  • Embedded ampersands are removed. For example, for&mat tokenizes to "format".

By default, the English (en) version of the spelling checker is used .

How to Fix Violations

To fix a violation of this rule, correct the spelling of the word or add the word to a custom dictionary named CustomDictionary.xml. Place the dictionary in the installation directory of the tool, the project directory, or in the directory associated with the tool under the user's profile (%USERPROFILE%\Application Data\...).

  • Add words that should not cause a violation under the Dictionary/Words/Recognized path.

  • Add words that should cause a violation under the Dictionary/Words/Unrecognized path.

  • Add words that should be flagged as obsolete under the Dictionary/Words/Deprecated path. See the related rule topic "Use preferred terms" for more information.

  • Add exceptions to the acronym casing rules to the Dictionary/Acronyms/CasingExceptions path.

The following is an example of the structure of a custom dictionary file.

   <Dictionary>
      <Words>
         <Unrecognized>
            <Word>cb</Word>
         </Unrecognized>
         <Recognized>
            <Word>stylesheet</Word>
            <Word>GotDotNet</Word>
         </Recognized>
         <Deprecated>
            <Term PreferredAlternate="EnterpriseServices">ComPlus</Term>
         </Deprecated>
      </Words>
      <Acronyms>
         <CasingExceptions>
            <Acronym>CJK</Acronym>
            <Acronym>Pi</Acronym>
         </CasingExceptions>
      </Acronyms>
   </Dictionary>
When to Exclude Warnings

Exclude a warning from this rule only if the word is intentionally misspelled and the word applies to a limited set of the library. Correctly spelled words reduce the learning curve required for new software libraries.

Related Rules

Literals should be spelled correctly

Resource strings should be spelled correctly

Identifiers should be cased correctly

Identifiers should differ by more than case

Identifiers should not contain underscores

Use preferred terms

Tags :


Community Content

CULE_Developer
Not what you might think

"Place the dictionary in the installation directory of the tool, the project directory, or in the directory associated with the tool under the user's profile"

"The project directory" refers to the FxCop project directory, as in the same directory as the MyFxCopProject.FxCop file, and not the Visual Studio project directory, which I hear is something that only Visual Studio 2008 supports.

Possibly confusing, so there's some clarification.

Tags :

Rick Beerendonk - Microloon
Set Build Action
"Place the dictionary in (..) the project directory":
  1. Add CustomDictionary.xml to your project
  2. Set the Build Action on the CustomDictionary.xml file (in the properties) to CodeAnalysisDictionary.
In Step 1 you can also add a link to an existing CustomDictionary.xml.
Tags :

Page view tracker