Share via


Personalizzare il dizionario di analisi del codice

L'analisi del codice usa un dizionario predefinito per controllare gli identificatori nel codice per individuare errori in ortografia, maiuscole e minuscole grammaticali e altre convenzioni di denominazione delle linee guida per la progettazione .NET. È possibile creare un file XML del dizionario personalizzato per aggiungere, rimuovere o modificare termini, abbreviazioni e acronimi nel dizionario predefinito.

Si supponga, ad esempio, che il codice contenga una classe denominata DoorKnokker. L'analisi del codice identifica il nome come composto di due parole: porta e knokker. Genera quindi un avviso che knokker non è stato digitato correttamente. Per forzare l'analisi del codice a riconoscere l'ortografia, è possibile aggiungere il termine knokker al dizionario personalizzato.

Per creare un dizionario personalizzato

Creare un file denominato CustomDictionary.xml.

Definire le parole personalizzate usando la struttura XML seguente:

<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>

Elementi del dizionario personalizzati

È possibile modificare il comportamento del dizionario Analisi codice aggiungendo termini come testo interno degli elementi seguenti nel dizionario personalizzato:

Dizionario/Parole/Riconosciute/Word

Per includere un termine nell'elenco di termini identificati dall'analisi del codice correttamente digitati, aggiungere il termine come testo interno di un elemento Dictionary/Words/Recognized/Word. I termini negli elementi Dictionary/Words/Recognized/Word non fanno distinzione tra maiuscole e minuscole.

Esempio

<Dictionary>
      <Words>
         <Recognized>
            <Word>knokker</Word>
            ...
         </Recognized>
         ...
      </Words>
      ...
</Dictionary>

I termini in Dizionario/Parole/Nodi riconosciuti vengono applicati alle regole di analisi del codice seguenti:

Dizionario/Parole/Non riconosciuto/Word

Per escludere un termine dall'elenco di termini identificati dall'analisi del codice correttamente digitati, aggiungere il termine da escludere come testo interno di un elemento Dictionary/Words/Unrecognized/Word. I termini negli elementi Dictionary/Words/Unrecognized/Word non fanno distinzione tra maiuscole e minuscole.

Esempio

<Dictionary>
      <Words>
         <Unrecognized>
            <Word>meth</Word>
            ...
         </Unrecognized>
         ...
      </Words>
      ...
</Dictionary>

I termini nel nodo Dictionary/Words/Unrecognized vengono applicati alle regole di analisi del codice seguenti:

Dizionario/Parole/Deprecato/Termine[@PreferredAlternate]

Per includere un termine nell'elenco di termini identificati dall'analisi del codice come deprecati, aggiungere il termine come testo interno di un elemento Dictionary/Words/Deprecated/Term. Un termine deprecato è una parola digitata correttamente, ma non deve essere usata.

Per includere un termine alternativo suggerito nell'avviso, specificare l'alternativa nell'attributo PreferredAlternate dell'elemento Term. È possibile lasciare vuoto il valore dell'attributo se non si vuole suggerire un'alternativa.

  • Il termine deprecato nell'elemento Dictionary/Words/Deprecated/Term non fa distinzione tra maiuscole e minuscole.

  • Il valore dell'attributo PreferredAlternate fa distinzione tra maiuscole e minuscole. Usare il caso Pascal per le alternative composte.

Esempio

<Dictionary>
      <Words>
         <Deprecated>
            <Term PreferredAlternate="LogOn">login</Term>
            ...
         </Deprecated>
         ...
      </Words>
      ...
</Dictionary>

I termini nel nodo Dizionario/Parole/Deprecati vengono applicati alle regole di analisi del codice seguenti:

Dizionario/Parole/Composto/Termine[@CompoundAlternate]

Il dizionario predefinito identifica alcuni termini come termini singoli e discreti anziché un termine composto. Per includere un termine nell'elenco di termini identificati dall'analisi del codice come parola composta e per specificare la combinazione di maiuscole e minuscole corrette del termine, aggiungere il termine come testo interno di un elemento Dictionary/Words/Compound/Term. Nell'attributo CompoundAlternate dell'elemento Term specificare le singole parole che costituiscono il termine composto maiuscolando la prima lettera delle singole parole (case Pascal). Si noti che il termine specificato nel testo interno viene aggiunto automaticamente all'elenco Dictionary/Words/DiscreteExceptions.

  • Il termine composto nell'elemento Dictionary/Words/Compound/Term non fa distinzione tra maiuscole e minuscole.

  • Il valore dell'attributo CompoundAlternate fa distinzione tra maiuscole e minuscole. Usare il caso Pascal per le alternative composte.

Esempio

<Dictionary>
      <Words>
         <Compound>
            <Term CompoundAlternate="CheckBox">checkbox</Term>
            ...
         </Compound>
         ...
      </Words>
      ...
</Dictionary>

I termini nel nodo Dictionary/Words/Compound vengono applicati alle regole di analisi del codice seguenti:

Dizionario/Parole/DiscreteExceptions/Term

Per escludere un termine nell'elenco di termini identificati dall'analisi del codice come singola parola discreta quando il termine viene controllato dalle regole di combinazione di maiuscole e minuscole per parole composte, aggiungere il termine come testo interno di un elemento Dictionary/Words/DiscreteExceptions/Term. Il termine nell'elemento Dictionary/Words/DiscreteExceptions/Term non fa distinzione tra maiuscole e minuscole.

Esempio

<Dictionary>
      <Words>
         <DiscreteExceptions>
            <Term>checkbox</Term>
            ...
         </DiscreteExceptions>
         ...
      </Words>
      ...
</Dictionary>

I termini nel nodo Dictionary/Words/DiscreteExceptions vengono applicati alle regole di analisi del codice seguenti:

Dizionario/Acronimi/CasingExceptions/Acronimo

Per includere un acronimo nell'elenco di termini identificati dall'analisi del codice come digitati correttamente e per indicare come l'acronimo quando il termine viene controllato dalle regole di maiuscole e minuscole per parole composte, aggiungere il termine come testo interno di un elemento Dictionary/Acronimi/CasingExceptions/Acronimo. L'acronimo nell'elemento Dictionary/Acronimi/CasingExceptions/Acronimo fa distinzione tra maiuscole e minuscole.

Esempio

<Dictionary>
      <Acronyms>
         <CasingExceptions>
            <Acronym>NESW</Acronym>   <!-- North East South West -->
            ...
         </CasingExceptions>
         ...
      </Acronyms>
      ...
</Dictionary>

I termini nel nodo Dictionary/Acronimi/CasingExceptions vengono applicati alle regole di analisi del codice seguenti:

Per applicare un dizionario personalizzato a un progetto

  1. In Esplora soluzioni utilizzare una delle procedure seguenti:

    • Per aggiungere un dizionario a un singolo progetto, fare clic con il pulsante destro del mouse sul nome del progetto e quindi scegliere Aggiungi elemento esistente. Per i tipi di file, scegliere Tutti i file e quindi specificare il file nella finestra di dialogo Aggiungi elemento esistente.

    • Per aggiungere un dizionario condiviso tra due o più progetti, individuare il file da condividere nella finestra di dialogo Aggiungi elemento esistente, fare clic sulla freccia giù sul pulsante Aggiungi e quindi su Aggiungi come collegamento.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nome del file CustomDictionary.xml e scegliere Proprietà.

  3. Nell'elenco Azione di compilazione selezionare CodeAnalysisDictionary.

  4. Nell'elenco Copia nella directory di output selezionare Non copiare.