Dela via


Definiera konsekventa kodningsformat med EditorConfig

Om du vill framtvinga konsekventa kodningsformat för alla som arbetar i en kodbas kan du lägga till en .editorConfig fil i din lösning eller ditt projekt. Filinställningarna för EditorConfig följer en filformatspecifikation som underhålls av EditorConfig.org. Många kodredigerare och program stöder EditorConfig-filer, inklusive Visual Studio. Eftersom inställningarna finns i en fil medföljer de koden och kan användas även utanför Visual Studio.

I Visual Studio har EditorConfig-filinställningar företräde framför de olika globala textredigeringsinställningarna som är tillgängliga under Tools>Options>Text Editor>C/C++>Code Style. Du kan använda en EditorConfig-fil för att skräddarsy varje kodbas för att använda textredigerarens inställningar som är specifika för projektet.

Du kan fylla i en EditorConfig-fil manuellt eller automatiskt generera den baserat på de kodformatinställningar som du har valt i Visual Studio. Om du vill skapa en ny .editorconfig fil baserat på dina aktuella Visual Studio-inställningar väljer du Verktyg>Alternativ>Textredigeraren>C/C++>Kodformat. Välj sedan Generera .editorconfig-fil från inställningar. Välj den mapp där projektet finns och välj sedan Välj mapp för att spara .editorconfig filen.

När du använder en EditorConfig-fil kan du fortfarande fortsätta att ange egna personliga redigeringsinställningar i Visual Studio-textredigeraren. De här textredigerarens inställningar gäller när du arbetar i en kodbas utan en EditorConfig-fil, eller när EditorConfig-filen inte åsidosätter en viss inställning. Ett exempel på en sådan inställning är om du vill använda flikar eller blanksteg för kodens indragsformat.

När du lägger till en EditorConfig-fil i projektet i Visual Studio formateras endast nya kodrader baserat på inställningarna för EditorConfig. Formateringen av befintlig kod ändras inte om du inte kör något av följande kommandon:

  • Kodstädning.

    Välj Rensa kod i Visual Studio-redigeraren eller tryck på Ctrl+K, Ctrl+E. Det här kommandot gäller för inställningar för tomt utrymme, till exempel indragsformat och valda inställningar för kodformat, till exempel parentesinställningar.

  • Formatera dokument.

    Välj Redigera>Avancerat>formatera dokumenteller tryck på Ctrl+K, Ctrl+D i standardprofilen. Det här kommandot gäller endast för inställningar för blanksteg, till exempel indragstil.

Kodkonsekvens

Med filinställningarna i EditorConfig kan du upprätthålla konsekventa kodningsformat och konventioner i en kodbas, oavsett vilken redigerare eller IDE du använder. Vissa kodningsformat som du kan styra är indragsformat, flikbredd, radslutstecken och kodning. Om C#-kodbasen till exempel har en konvention som indrag använder fem blankstegstecken, dokument använder UTF-8-kodning och rader slutar med CR/LF, kan du konfigurera en EditorConfig-fil för att använda den här konventionen.

EditorConfig-filer är användbara när kodningskonventioner som du använder i dina personliga projekt skiljer sig från de konventioner som används i teamets projekt. Du kanske till exempel föredrar att ett indrag lägger till ett fliktecken i koden. Men ditt team kanske föredrar att ett indrag motsvarar fyra blanksteg istället. EditorConfig-filer löser det här problemet genom att låta dig ha en konfiguration för varje scenario.

Eftersom en .editorconfig fil i kodbasen innehåller EditorConfig-inställningarna, färdas de tillsammans med den kodbasen. Så länge du öppnar kodfilen i en EditorConfig-kompatibel redigerare aktiveras textredigerarens inställningar.

Anteckning

Konventioner som du anger i en EditorConfig-fil kan inte tillämpas i en CI/CD-pipeline som byggfel eller varningar. Alla formatavvikelser visas bara i Visual Studio-redigeraren och i Fel-listan.

Inställningar som stöds

Redigeraren i Visual Studio stöder kärnuppsättningen EditorConfig-egenskaper:

  • indent_style
  • indragstorlek
  • tabellbredd
  • end_of_line
  • teckenuppsättning
  • trim_trailing_whitespace
  • infoga_slutlig_ny_rad
  • rot

EditorConfig har stöd för alla Språk som stöds av Visual Studio förutom inställningar för EDITORConfig-redigerare med XML-stöd.

EditorConfig stöder kodformat konventioner, inklusive språk, formateringoch namngivning konventioner för C# och Visual Basic.

Lägga till och ta bort EditorConfig-filer

När du lägger till en EditorConfig-fil i projektet eller kodbasen formaterar Visual Studio alla nya kodrader som du skriver enligt filinställningarna för EditorConfig. Visual Studio konverterar dock inte befintliga formatmallar till de nya förrän du formaterar dokumentet eller kör Code Cleanup. Till exempel, om indrag i filen är formaterade med flikar och du lägger till en EditorConfig-fil som formaterar indrag med blanksteg, konverteras inte indragstecken automatiskt till blanksteg. När du formaterar dokumentet (välj Redigera>Avancerat>formatera dokument eller tryck på Ctrl+K, Ctrl+D), tillämpas inställningarna för tomt utrymme i EditorConfig-filen på befintliga kodrader.

Om du tar bort en EditorConfig-fil från projektet eller kodbasen måste du stänga och öppna alla öppna kodfiler igen för att de globala redigeringsinställningarna ska kunna påverka nya kodrader.

Lägga till en EditorConfig-fil i ett projekt

Följ dessa steg om du vill lägga till en EditorConfig-fil i projektet eller lösningen:

  1. Öppna ett projekt eller en lösning i Visual Studio. Välj antingen lösningen eller projektnoden, beroende på om dina EditorConfig-inställningar ska gälla för alla projekt i lösningen eller bara ett. Du kan också välja en mapp i projektet eller lösningen för att lägga till den .editorconfig filen i.

  2. På menyn väljer du Project>Lägg till nytt objekteller trycker på Ctrl+Skift+A.

    Dialogrutan Lägg till nytt objekt öppnas.

  3. I sökrutan anger du editorconfig.

    Två editorconfig File objektmallar visas i sökresultaten.

    Skärmbild som visar EditorConfig-filobjektmallar i Visual Studio.

  4. Välj mallen editorconfig File (tom) för att lägga till en EditorConfig-fil som är förfylld med standardalternativen EditorConfig för blanksteg, kodformat och namngivningskonventioner. Du kan också välja mallen editorconfig File (.NET) för att lägga till en EditorConfig-fil som är förfylld med standard .NET-blanksteg, kodformat och namngivningskonventioner.

    En ny .editorconfig fil visas i Solution Explorer och öppnas i redigeraren som en ny flik.

    Skärmbild som visar .editorconfig-filen i Solution Explorer och redigeraren.

  5. Du kan också redigera filen och sedan spara den.

Andra sätt att lägga till en EditorConfig-fil

Det finns några andra sätt att lägga till en EditorConfig-fil i projektet:

Filhierarki och prioritet

När du lägger till en .editorconfig fil i en mapp i filhierarkin gäller inställningarna för alla tillämpliga filer på den nivån och lägre. Du kan också åsidosätta EditorConfig-inställningar för ett visst projekt, en kodbas eller en del av en kodbas, så att den använder andra konventioner än andra delar av kodbasen. Det kan vara användbart när du införlivar kod från någon annanstans och inte vill ändra dess konventioner.

Följ dessa riktlinjer:

  • Om du vill åsidosätta vissa eller alla Inställningar för EditorConfig lägger du till en .editorconfig fil på nivån för den filhierarki som du vill att de åsidosättningsinställningarna ska gälla. De nya inställningarna för EditorConfig-filen gäller för filer på samma nivå och filer i alla underkataloger.

    Skärmbild som visar EditorConfig-hierarkin.

  • Om du vill åsidosätta vissa, men inte alla inställningar, anger du bara de inställningarna i filen .editorconfig. Endast de egenskaper som du uttryckligen anger i den lägre .editorconfig filen åsidosätts. Andra inställningar från alla .editorconfig filer på högre nivå fortsätter att gälla.

  • Om du vill se till att inga inställningar från .editorconfig filer på högre nivå tillämpas på den här delen av kodbasen lägger du till egenskapen root=true i den .editorconfig filen på lägre nivå.

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

EditorConfig-filer läss uppifrån och ned. Om det finns flera egenskaper med samma namn har den senast hittade egenskapen med samma namn företräde.

Redigera EditorConfig-filer

Visual Studio 2022 innehåller en visuell redigerare för EditorConfig-filer.

När du har redigerat EditorConfig-filen måste du läsa in kodfilerna igen för att de nya inställningarna ska börja gälla.

Visual Studio hjälper dig att redigera EditorConfig-filer genom att tillhandahålla IntelliSense-kompletteringslistor. Till exempel:

Skärmbild som visar IntelliSense i en EditorConfig-fil.

Om du redigerar många EditorConfig-filer kanske du tycker att EditorConfig Language Service-tillägget användbart. Några av funktionerna i det här tillägget är syntaxmarkering, förbättrad IntelliSense, validering och kodformatering.

Skärmbild som visar Tillägget IntelliSense med EditorConfig Language Service.

Exempel

I följande exempel visas indragstillståndet för ett C#-kodfragment före och efter att en EditorConfig-fil har lagts till i projektet:

  1. I dialogrutan Verktyg>Alternativ anger du textredigeraren>C#>Flikar inställningar för Visual Studio-textredigeraren för att skapa fyra blankstegstecken när du trycker på Tabb tangent.

    Skärmbild som visar flikinställningen Textredigerare.

  2. Som förväntat, när du trycker på Tabb på nästa rad, drar den in raden genom att lägga till fyra blankstegstecken.

    Skärmbild som visar Tab-tangenten som lägger till mellanslag i koden.

    Skärmbild som visar Tab-tangenten som lägger till blanksteg i koden.

  3. Använd EditorConfig för att växla tab-inställningen för att använda flikar.

    Välj Använd flikar i EditorConfig-filen.

    Skärmbild som visar hur du konfigurerar användningen av flikar för tabbtangenten.

    Lägg till en ny fil med namnet .editorconfig i projektet med följande innehåll. Indikatorn [*.cs] innebär att den här ändringen endast gäller för C#-kodfiler i projektet.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. När du trycker på Tab-tangenten visas nu tabbtecken i stället för blanksteg.

    Skärmbild som visar tabbnyckeln som lägger till tabbtecken i kod.

    Skärmbild som visar tabbnyckeln som lägger till tabbtecken i kod.

Felsöka inställningar för EditorConfig

Om det finns en EditorConfig-fil någonstans i katalogstrukturen på eller ovanför projektets plats tillämpar Visual Studio redigeringsinställningarna i filen på redigeraren. I det här fallet kan följande meddelande visas i statusfältet:

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

Det innebär att om några redigeringsinställningar i Verktyg>Alternativ>textredigeraren (till exempel indragsstorlek och format, flikstorlek eller kodningskonventioner) anges i en EditorConfig-fil vid eller ovanför projektet i katalogstrukturen åsidosätter konventionerna i EditorConfig-filen inställningarna i Textredigeraren.

Följ dessa steg för att felsöka Problem med EditorConfig:

  1. Om du vill inaktivera EditorConfig-stöd för Visual Studio avmarkerar du alternativet Följ projektkodningskonventioner i Tools>Options>Text Editor.

    Skärmbild som visar inställningen för Följ projektkodningskonventioner.

  2. Om du vill hitta alla EditorConfig-filer i projektets överordnade kataloger öppnar du en kommandotolk och kör följande kommando från roten på disken som innehåller projektet.

    dir .editorconfig /s
    
  3. Om du vill styra omfånget för dina EditorConfig-konventioner anger du egenskapen root=true i filen .editorconfig i roten på lagringsplatsen eller i katalogen som projektet finns i.

    Visual Studio letar efter en fil med namnet .editorconfig i katalogen för den öppnade filen och i varje överordnad katalog. Sökningen avslutas när den når rotfilsökvägen, eller om en .editorconfig fil med root=true hittas.