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:
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.Scegliere Progetto>Aggiungi nuovo elemento dal menu oppure premere CTRL+MAIUSC+A.
Verrà visualizzata la finestra di dialogo Aggiungi nuovo elemento .
Nella casella di ricerca immettere editorconfig.
Nei risultati della ricerca verranno visualizzati due modelli di elemento File editorconfig.
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.Facoltativamente, modificare il file e salvarlo.
Altri modi per aggiungere un file EditorConfig
Esistono due altri modi per aggiungere un file EditorConfig al progetto:
Usare IntelliCode per Visual Studio per generare un
.editorconfig
file nella soluzione. Fare clic con il pulsante destro del mouse in Esplora soluzioni e scegliere Aggiungi>nuovo editorConfig (IntelliCode) dal menu di scelta rapida. IntelliCode per Visual Studio deduce gli stili di codice dal codice esistente e quindi crea un file EditorConfig con le preferenze di stile del codice predefinite.Generare automaticamente un file EditorConfig in base alle impostazioni in stile codice.
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.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 laroot=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:
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.
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:
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.
Come previsto, quando si preme TAB nella riga successiva, la riga rientra aggiungendo quattro caratteri di spazio vuoto.
Usare EditorConfig per cambiare l'impostazione delle schede in modo da usare le schede.
Selezionare Usa schede nel file EditorConfig.
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
Quando si preme tabulazioni, i caratteri di tabulazioni vengono visualizzati invece di spazi.
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:
Per disattivare il supporto di EditorConfig per Visual Studio, deselezionare l'opzione Segui convenzioni di codifica del progetto in Strumenti>Opzioni>editor di testo.
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
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 conroot=true
.