Definire stili di codifica coerenti con EditorConfig

Per applicare stili di codifica coerenti per tutti gli utenti che funzionano in una codebase, è possibile aggiungere un .editorConfig file alla soluzione o al progetto. Le impostazioni del file EditorConfig rispettano una specifica del formato di file gestita da EditorConfig.org. Molti editor di codice e applicazioni supportano file EditorConfig, tra cui Visual Studio. Poiché le impostazioni si trovano in un file, accompagnano il codice e possono essere usate anche all'esterno di Visual Studio.

In Visual Studio le impostazioni del file EditorConfig hanno la precedenza sulle varie impostazioni dell'editor di testo globale disponibili in Strumenti>Opzioni>Editor>di testo C/C++>Stile codice. È possibile usare un file EditorConfig per personalizzare ogni codebase per usare le impostazioni dell'editor di testo specifiche del progetto.

È possibile popolare manualmente un file EditorConfig o generarlo automaticamente in base alle impostazioni di stile del codice scelte in Visual Studio. Per creare un nuovo .editorconfig file in base alle impostazioni correnti di Visual Studio, dal menu principale di Visual Studio scegliere Strumenti>Opzioni>Editor>di testo C/C++>Generale. Scegliere quindi Genera file con estensione editorconfig dalle impostazioni. Scegliere la cartella in cui si trova il progetto e quindi scegliere Seleziona cartella per salvare il .editorconfig file.

Quando si usa un file EditorConfig, è comunque possibile continuare a impostare le preferenze dell'editor personale nell'editor di testo di Visual Studio. Queste impostazioni dell'editor di testo si applicano ogni volta che si lavora in una codebase senza un file EditorConfig o quando il file EditorConfig non esegue l'override di una determinata impostazione. Un esempio di tale preferenza è se usare tabulazioni o spazi per lo stile del rientro del codice.

Quando si aggiunge un file EditorConfig al progetto in Visual Studio, solo le nuove righe di codice vengono formattate in base alle impostazioni di EditorConfig. La formattazione del codice esistente non viene modificata a meno che non si esegua uno dei comandi seguenti:

  • Pulizia del codice.

    Selezionare Pulizia codice nell'editor di Visual Studio oppure premere CTRL+K, CTRL+E. Questo comando si applica alle impostazioni dello spazio vuoto, ad esempio lo stile di rientro e le impostazioni di stile del codice selezionate, ad esempio le preferenze di parentesi.

  • Formato documento.

    Selezionare Modifica>documento formato avanzato>oppure premere CTRL+K, CTRL+D nel profilo predefinito. Questo comando si applica solo alle impostazioni dello spazio vuoto, ad esempio lo stile del rientro.

Coerenza del codice

Le impostazioni del file EditorConfig consentono di mantenere stili e convenzioni di codifica coerenti in una codebase, indipendentemente dall'editor o dall'IDE usato. Alcuni stili di codifica che è possibile controllare sono stile di rientro, larghezza della scheda, caratteri di fine riga e codifica. Ad esempio, se la codebase C# ha una convenzione che imposta un rientro che usa cinque caratteri di spazio, i documenti usano la codifica UTF-8 e le righe terminano con CR/LF, è possibile configurare un file EditorConfig per usare questa convenzione.

I file EditorConfig sono utili quando le convenzioni di codifica usate nei progetti personali differiscono da quelle convenzioni usate nei progetti del team. Ad esempio, è possibile preferire che un rientro aggiunga un carattere di tabulazione nel codice. Tuttavia, il team potrebbe preferire che un rientro aggiunga quattro spazi. I file EditorConfig risolvono questo problema consentendo di avere una configurazione per ogni scenario.

Poiché un .editorconfig file nella codebase contiene le impostazioni editorConfig, viene spostato insieme a tale codebase. Se si apre il file di codice in un editor conforme a EditorConfig, le impostazioni dell'editor di testo vengono attivate.

Nota

Le convenzioni impostate in un file EditorConfig non possono essere applicate in una pipeline CI/CD come errori o avvisi di compilazione. Tutte le deviazioni di stile vengono visualizzate solo nell'editor di Visual Studio e in Elenco errori.

Impostazioni supportate

L'editor in Visual Studio supporta il set di base delle proprietà di EditorConfig:

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • charset
  • trim_trailing_whitespace
  • insert_final_newline
  • root

EditorConfig supporta tutti i linguaggi supportati da Visual Studio, ad eccezione delle impostazioni dell'editor EditorConfig per il supporto XML.

EditorConfig supporta convenzioni di stile del codice, tra cui linguaggio, formattazione e convenzioni di denominazione per C# e Visual Basic.

Aggiungere e rimuovere i file EditorConfig

Quando si aggiunge un file EditorConfig al progetto o alla codebase, Visual Studio formatta tutte le nuove righe di codice scritte in base alle impostazioni del file EditorConfig. Tuttavia, Visual Studio non converte gli stili esistenti nei nuovi fino a quando non si formatta il documento o si esegue Pulizia codice. Ad esempio, se i rientri nel file vengono formattati con le schede e si aggiunge un file EditorConfig che formatta i rientri con spazi, i caratteri di rientro non vengono convertiti automaticamente in spazi. Quando si formatta il documento (selezionare Modifica>documento formato avanzato>o premere CTRL K, CTRL++D), le impostazioni dello spazio vuoto nel file EditorConfig vengono applicate alle righe di codice esistenti.

Se si rimuove un file EditorConfig dal progetto o dalla codebase, è necessario chiudere e riaprire tutti i file di codice aperti per le impostazioni dell'editor globale per rendere effettive nuove righe di codice.

Aggiungere un file EditorConfig a un progetto

Per aggiungere un file EditorConfig al progetto o alla soluzione, seguire questa procedura:

  1. Aprire un progetto o una soluzione in Visual Studio. Selezionare la soluzione o il nodo del progetto, a seconda che le impostazioni di EditorConfig vengano applicate a tutti i progetti nella soluzione o solo a uno. È anche possibile selezionare una cartella nel progetto o nella soluzione a cui aggiungere il .editorconfig file.

  2. Scegliere Progetto>Aggiungi nuovo elemento dal menu oppure premere CTRL+MAIUSC+A.

    Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento .

  3. Nella casella di ricerca immettere editorconfig.

    Nei risultati della ricerca verranno visualizzati due modelli di elemento File editorconfig.

    Screenshot che mostra i modelli di elemento di file EditorConfig in Visual Studio.

  4. Selezionare il modello file editorconfig (vuoto) per aggiungere un file EditorConfig precompilato con opzioni EditorConfig predefinite per spazi vuoti, stile del codice e convenzioni di denominazione. In alternativa, selezionare il modello file editorconfig (.NET) per aggiungere un file EditorConfig precompilato con spazi vuoti .NET predefiniti , stile del codice e convenzioni di denominazione.

    Un nuovo .editorconfig file viene visualizzato in Esplora soluzioni e viene aperto nell'editor come nuova scheda.

    Screenshot che mostra il file con estensione editorconfig in Esplora soluzioni ed editor.

  5. Facoltativamente, modificare il file e salvarlo.

Altri modi per aggiungere un file EditorConfig

Esistono due altri modi per aggiungere un file EditorConfig al progetto:

Precedenza e gerarchia dei file

Quando si aggiunge un .editorconfig file a una cartella nella gerarchia di file, le relative impostazioni si applicano a tutti i file applicabili a quel livello e inferiore. È anche possibile eseguire l'override delle impostazioni di EditorConfig per un particolare progetto, codebase o parte di una codebase, in modo da usare convenzioni diverse rispetto ad altre parti della codebase. Questa operazione può essere utile quando si incorpora il codice da un'altra posizione e non si vogliono modificare le convenzioni.

Segui queste linee guida:

  • Per eseguire l'override di alcune o tutte le impostazioni di EditorConfig, aggiungere un .editorconfig file al livello della gerarchia di file che si desidera applicare a tali impostazioni sottoposte a override. Le nuove impostazioni del file EditorConfig si applicano ai file allo stesso livello e ai file in qualsiasi sottodirectory.

    Screenshot che mostra la gerarchia EditorConfig.

  • Se si desidera eseguire l'override di alcune impostazioni, ma non tutte le impostazioni, specificare solo tali impostazioni nel .editorconfig file. Vengono sostituite solo le proprietà elencate in modo esplicito nel file di livello .editorconfig inferiore. Altre impostazioni di qualsiasi file di livello .editorconfig superiore continuano a essere applicate.

  • Se si desidera assicurarsi che nessuna impostazione di qualsiasi file di livello .editorconfig superiore venga applicata a questa parte della codebase, aggiungere la root=true proprietà al file di livello .editorconfig inferiore.

    # top-most EditorConfig file for this level
    root = true
    

I file EditorConfig vengono letti dall'alto verso il basso. Se sono presenti più proprietà con lo stesso nome, la proprietà trovata più di recente con lo stesso nome ha la precedenza.

Modificare i file EditorConfig

Visual Studio 2022 fornisce un editor visivo per i file EditorConfig.

Dopo aver modificato il file EditorConfig, è necessario ricaricare i file di codice per rendere effettive le nuove impostazioni.

Visual Studio consente di modificare i file EditorConfig fornendo elenchi di completamento IntelliSense. Ad esempio:

Screenshot che mostra IntelliSense in un file EditorConfig.

Se si modificano molti file EditorConfig, potrebbe risultare utile l'estensione del servizio di linguaggio EditorConfig. Alcune delle funzionalità di questa estensione sono evidenziazione della sintassi, IntelliSense migliorato, convalida e formattazione di codice.

Screenshot che mostra IntelliSense con l'estensione del servizio di linguaggio EditorConfig.

Esempio

L'esempio seguente illustra lo stato di rientro di un frammento di codice C# prima e dopo l'aggiunta di un file EditorConfig al progetto:

  1. Nella finestra di dialogo Opzioni strumenti>impostare le impostazioni editor di testo>C#>Tabs per l'editor di testo di Visual Studio per produrre quattro caratteri di spazio quando si preme tabulazioni.

    Screenshot che mostra l'impostazione della scheda Editor di testo.

  2. Come previsto, quando si preme TAB nella riga successiva, la riga rientra aggiungendo quattro caratteri di spazio vuoto.

    Screenshot che mostra il tasto Tab che aggiunge spazi nel codice.

    Screenshot che mostra il tasto Tab che aggiunge spazi nel codice.

  3. Usare EditorConfig per cambiare l'impostazione delle schede in modo da usare le schede.

    Selezionare Usa schede nel file EditorConfig.

    Screenshot che mostra la configurazione dell'uso delle schede per il tasto TAB.

    Aggiungere un nuovo file denominato .editorconfig al progetto con il contenuto seguente. L'indicatore [*.cs] indica che questa modifica si applica solo ai file di codice C# nel progetto.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. Quando si preme tabulazioni, i caratteri di tabulazioni vengono visualizzati invece di spazi.

    Screenshot che mostra il tasto Tab che aggiunge caratteri di tabulazioni nel codice.

    Screenshot che mostra il tasto Tab che aggiunge caratteri di tabulazioni nel codice.

Risolvere i problemi relativi alle impostazioni di EditorConfig

Se un file EditorConfig esiste in qualsiasi punto della struttura di directory in corrispondenza o sopra il percorso del progetto, Visual Studio applica le impostazioni dell'editor nel file all'editor. In questo caso, nella barra di stato potrebbe essere visualizzato il messaggio seguente:

User preferences for this file type are overridden by this project's coding conventions.

Ciò significa che se le impostazioni dell'editor nell'editor di testo Opzioni>strumenti>(ad esempio le dimensioni del rientro e lo stile, le dimensioni delle schede o le convenzioni di codifica) vengono specificate in un file EditorConfig in corrispondenza o sopra il progetto nella struttura di directory, le convenzioni nel file EditorConfig sostituiscono le impostazioni nell'editor di testo.

Per risolvere i problemi di EditorConfig, seguire questa procedura:

  1. Per disattivare il supporto di EditorConfig per Visual Studio, deselezionare l'opzione Segui convenzioni di codifica del progetto in Strumenti>Opzioni>editor di testo.

    Screenshot che mostra l'impostazione per Seguire le convenzioni di codifica del progetto.

  2. Per trovare tutti i file EditorConfig nelle directory padre del progetto, aprire un prompt dei comandi ed eseguire il comando seguente dalla radice del disco che contiene il progetto.

    dir .editorconfig /s
    
  3. Per controllare l'ambito delle convenzioni editorConfig, impostare la root=true proprietà nel .editorconfig file nella radice del repository o nella directory in cui risiede il progetto.

    Visual Studio cerca un file denominato .editorconfig nella directory del file aperto e in ogni directory padre. La ricerca termina quando raggiunge il percorso file radice o se viene trovato un .editorconfig file con root=true .