Porady: dostosowywanie słownika analizy kodu
Analiza kodu używa wbudowanego słownika do sprawdzania identyfikatory w kodzie w poszukiwaniu błędów w pisowni, przypadkach i innych konwencjach nazewnictwa wytycznych .NET Framework.Można utworzyć niestandardowy plik słownika Xml, aby dodawać, usuwać lub modyfikować terminy, skróty i akronimy do słownika wbudowanego.
Załóżmy na przykład, że kod zawiera klasę o nazwie DoorKnokker.Analiza kodu zidentyfikowałaby nazwę jako złożenie dwóch wyrazów: drzwi i knokker.Następnie wywołałoby ostrzeżenie, że knokker nie został poprawnie wpisany.Aby wymusić na analizie kodu pisowni rozpoznawanie pisowni można dodać termin knokker do słownika niestandardowego.
Aby utworzyć słownik niestandardowy
Utwórz plik o nazwie CustomDictionary.xml.
Zdefiniuj niestandardowe słowa przy użyciu następującej struktury 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>
Elementy słownika niestandardowego
Zachowanie słownika analizy kodu można zmodyfikować dodając terminy jako wewnętrzny tekst następujących elementów w słowniku niestandardowym:
Dictionary/Words/Recognized/Word
Aby dołączyć termin do listy terminów, które identyfikuje analiza kodu jako poprawny termin, należy dodać termin jako wewnętrzny tekst elementu Dictionary/Words/Recognized/Word.W terminach w elementach Dictionary/Words/Recognized/Word nie jest rozróżniana wielkość liter.
Przykład
<Dictionary>
<Words>
<Recognized>
<Word>knokker</Word>
...
</Recognized>
...
</Words>
...
</Dictionary>
Terminy w węzłach Dictionary/Words/Recognized są stosowane do następujących reguł analizy kodu:
CA1701: Wyrazy złożone ciągu zasobu należy zapisywać z uwzględnieniem wielkości liter
CA1702: Wyrazy złożone należy zapisywać z uwzględnieniem wielkości liter
CA1709: Identyfikatory powinny być zapisywane z uwzględnieniem wielkości liter
Dictionary/Words/Unrecognized/Word
Aby wykluczyć termin z listy terminów, które identyfikuje analiza kodu jako poprawny termin, należy dodać termin do wykluczenia jako wewnętrzny tekst elementu Dictionary/Words/Unrecognized/Word.W terminach w elementach Dictionary/Words/Unrecognized/Word nie jest rozróżniana wielkość liter.
Przykład
<Dictionary>
<Words>
<Unrecognized>
<Word>meth</Word>
...
</Unrecognized>
...
</Words>
...
</Dictionary>
Terminy w węźle Dictionary/Words/Unrecognized są stosowane do następujących reguł analizy kodu:
CA1701: Wyrazy złożone ciągu zasobu należy zapisywać z uwzględnieniem wielkości liter
CA1702: Wyrazy złożone należy zapisywać z uwzględnieniem wielkości liter
CA1709: Identyfikatory powinny być zapisywane z uwzględnieniem wielkości liter
Dictionary/Words/Deprecated/Term[@PreferredAlternate]
Aby dołączyć termin do listy terminów, które analiza kodu identyfikuje jako przestarzałe, należy dodać termin jako wewnętrzny tekst elementu Dictionary/Words/Deprecated/Term.Przestarzały termin to wyraz, którego pisownia jest poprawna, ale nie powinien być używany.
Aby dołączyć sugerowane określenie alternatywnego do ostrzeżenia, należy określić alternatywę w atrybucie PreferredAlternate elementu termin.Wartość atrybutu można pozostawić pustą, jeśli nie ma sugerowanej alternatywy.
W przestarzałych terminach w Dictionary/Words/ Deprecated/Term nie jest rozróżniana wielkość liter.
W wartości atrybutu PreferredAlternate uwzględniana jest wielkość liter.Należy używać notacji PascalCase dla złożonych zastępców.
Przykład
<Dictionary>
<Words>
<Deprecated>
<Term PreferredAlternate="LogOn">login</Term>
...
</Deprecated>
...
</Words>
...
</Dictionary>
Terminy w węźle Dictionary/Words/Deprecated są stosowane do następujących reguł analizy kodu:
CA1701: Wyrazy złożone ciągu zasobu należy zapisywać z uwzględnieniem wielkości liter
CA1702: Wyrazy złożone należy zapisywać z uwzględnieniem wielkości liter
Dictionary/Words/Compound/Term[@CompoundAlternate]
Wbudowany słownik identyfikuje niektóre terminy jako pojedyncze, a nie złożone.Aby dołączyć termin do listy terminów, które analiza kodu identyfikuje jako słowo złożone i aby określić ich poprawną notację, należy dodać termin jako wewnętrzny tekst elementu Dictionary/Words/Compound/Term.W Atrybucie CompoundAlternate elementu termin należy określić poszczególne wyrazy, które tworzą złożony termin zaczynając każde słowo wielką literą (notacja PascalCase).Należy zauważyć, że termin określony w tekście wewnętrznym jest automatycznie dodawany do listy Dictionary/Words/DiscreteExceptions.
W przestarzałych terminach w Dictionary/Words/ Deprecated/Term nie jest rozróżniana wielkość liter.
W wartości atrybutu PreferredAlternate uwzględniana jest wielkość liter.Należy używać notacji PascalCase dla złożonych zastępców.
Przykład
<Dictionary>
<Words>
<Compound>
<Term CompoundAlternate="CheckBox">checkbox</Term>
...
</Compound>
...
</Words>
...
</Dictionary>
Terminy w węźle Dictionary/Words/Compound są stosowane do następujących reguł analizy kodu:
CA1701: Wyrazy złożone ciągu zasobu należy zapisywać z uwzględnieniem wielkości liter
CA1702: Wyrazy złożone należy zapisywać z uwzględnieniem wielkości liter
Dictionary/Words/DiscreteExceptions/Term
Aby wykluczyć termin na liście terminów, które analiza kodu identyfikuje jako pojedyncze, dyskretne słowa, gdy termin jest sprawdzany regułą wielkich liter dla wyrazów złożonych, należy dodać termin jako wewnętrzny tekst elementu Dictionary/Words/DiscreteExceptions/Term.W terminie w elemencie Dictionary/Words/DiscreteExceptions/Term nie jest rozróżniana wielkość liter.
Przykład
<Dictionary>
<Words>
<DiscreteExceptions>
<Term>checkbox</Term>
...
</DiscreteExceptions>
...
</Words>
...
</Dictionary>
Terminy w węźle Dictionary/Words/DiscreteExceptions są stosowane do następujących reguł analizy kodu:
CA1701: Wyrazy złożone ciągu zasobu należy zapisywać z uwzględnieniem wielkości liter
CA1702: Wyrazy złożone należy zapisywać z uwzględnieniem wielkości liter
Dictionary/Acronyms/CasingExceptions/Acronym
Aby uwzględnić akronim w liście terminów, które analiza kodu identyfikuje jako poprawne, gdy termin jest sprawdzany regułą wielkich liter dla wyrazów złożonych, należy dodać termin jako wewnętrzny tekst elementu Dictionary/Acronyms/CasingExceptions/Acronym.W akronimie w elemencie Dictionary/Acronyms/CasingExceptions/Acronym nie jest rozróżniana wielkość liter.
Przykład
<Dictionary>
<Acronyms>
<CasingExceptions>
<Acronym>NESW</Acronym> <!-- North East South West -->
...
</CasingExceptions>
...
</Acronyms>
...
</Dictionary>
Terminy w węźle Dictionary/Acronyms/CasingExceptions są stosowane do następujących reguł analizy kodu:
- CA1709: Identifiers should be cased correctly
Aby zastosować niestandardowy słownik do projektu
W Eksploratorze rozwiązania, użyj jednej z następujących procedur:
Aby dodać słownik do pojedynczego projektu, kliknij prawym przyciskiem myszy nazwę projektu, a następnie kliknij przycisk Dodaj istniejący element.Określ plik w oknie dialogowym Dodaj istniejący element.
Aby dodać słownik, który jest współdzielone przez dwie lub więcej projektów, zlokalizuj plik do dzielenia w oknie dialogowym Dodaj istniejący element, kliknij strzałkę w dół na przycisku Dodaj, a następnie kliknij przycisk Dodaj jako łącze.
W Eksploratorze rozwiązania, kliknij prawym przyciskiem myszy nazwę pliku CustomDictionary.xml, a następnie kliknij przycisk Właściwości.
Z listy Akcja kompilacji wybierz CodeAnalysisDictionary.
Z listy Kopiuj do katalogu wyjściowego, wybierz Nie kopiuj.