Definování konzistentních stylů kódování pomocí EditorConfig

Pokud chcete vynutit konzistentní styly kódování pro všechny, kteří pracují v základu kódu, můžete do svého řešení nebo projektu přidat soubor EditorConfig. Nastavení souborů EditConfig dodržuje specifikaci formátu souboru, kterou udržuje EditorConfig.org. Mnoho editorů kódu a aplikací podporuje soubory EditorConfig, včetně sady Visual Studio. Jedná se o přenosnou komponentu, která cestuje s vaším kódem a může vynucovat styly kódování i mimo Visual Studio.

V sadě Visual Studio má nastavení souboru EditorConfig přednost před globálním nastavením textového editoru (k sadě Text Editor se dostanete tak, že v dialogovém okně Možnosti nástrojů>vyberete Textový editor). To znamená, že můžete každý základ kódu přizpůsobit tak, aby se používala nastavení textového editoru, která jsou specifická pro daný projekt. Pokud používáte soubory EditorConfig, můžete v textovém editoru sady Visual Studio i nadále nastavit vlastní předvolby osobního editoru. Tato nastavení textového editoru platí vždy, když pracujete v základu kódu bez souboru EditorConfig nebo když soubor EditorConfig nepřepíše konkrétní nastavení. Příkladem takové předvolby je použití tabulátorů nebo mezer pro styl odsazení kódu.

Když do projektu v sadě Visual Studio přidáte soubor EditorConfig, budou na základě nastavení EditorConfig formátovány pouze nové řádky kódu. Formátování existujícího kódu se nezmění, pokud nespustíte jeden z následujících příkazů:

  • Vyčištění kódu

    V editoru sady Visual Studio vyberte vyčištění kódu nebo stiskněte ctrl+K, Ctrl+E. Tento příkaz se vztahuje na nastavení prázdných znaků, například styl odsazení a vybraná nastavení stylu kódu, jako jsou předvolby závorek.

  • Formátovat dokument

    Vyberte Upravit dokument> rozšířeného>formátu nebo stiskněte Ctrl+K, Ctrl+D ve výchozím profilu. Tento příkaz se vztahuje pouze na nastavení prázdných znaků, jako je například styl odsazení.

Poznámka:

Toto téma se týká sady Visual Studio pro Windows. Informace o Visual Studio pro Mac naleznete v tématu Vytváření a úpravy vlastního souboru EditorConfig v Visual Studio pro Mac.

Konzistence kódu

Nastavení souborů EditorConfig umožňuje udržovat konzistentní styly a konvence kódování v základu kódu bez ohledu na editor nebo integrované vývojové prostředí, které používáte. Některé styly kódování, které můžete řídit, jsou styl odsazení, šířka tabulátoru, znaky konce řádku a kódování. Pokud má například základ kódu jazyka C# konvenci, která odsadí pět znaků mezer, dokumenty používají kódování UTF-8 a řádky končí cr/LF, můžete nakonfigurovat soubor EditorConfig tak, aby používal tuto konvenci.

Soubory EditorConfig jsou užitečné, když se konvence kódování, které používáte ve svých osobních projektech, liší od těchto konvencí používaných v projektech vašeho týmu. Můžete například chtít, aby odsazení přidalo do kódu znak tabulátoru. Váš tým ale může raději přidat čtyři mezery. Soubory EditorConfig tento problém vyřeší tím, že vám umožní mít konfiguraci pro každý scénář.

Vzhledem k tomu, že soubor .editorconfig v základu kódu obsahuje nastavení EditorConfig, cestují spolu s tímto základem kódu. Pokud otevřete soubor kódu v editoru kompatibilním s editorem EditorConfig, aktivují se nastavení textového editoru.

Poznámka:

Konvence nastavené v souboru EditorConfig nelze v kanálu CI/CD vynutit jako chyby nebo upozornění sestavení. Všechny odchylky stylu se zobrazí pouze v editoru sady Visual Studio a v seznamu chyb.

Podporovaná nastavení

Editor v sadě Visual Studio podporuje základní sadu vlastností EditorConfig:

  • indent_style
  • indent_size
  • tab_width
  • end_of_line
  • Charset
  • trim_trailing_whitespace
  • insert_final_newline
  • kořen

EditorConfig podporuje všechny jazyky podporované sadou Visual Studio s výjimkou nastavení editoru EditorConfig podpory XML.

EditorConfig podporuje konvence stylu kódu, včetně jazyka, formátování a konvencí pojmenování pro C# a Visual Basic.

Přidání a odebrání souborů EditorConfig

Když do projektu nebo základu kódu přidáte soubor EditorConfig, Visual Studio naformátuje všechny nové řádky kódu, které napíšete, podle nastavení souboru EditorConfig. Visual Studio ale nepřevádí existující styly na nové, dokud dokument nenaformátujete nebo nespustíte vyčištění kódu. Pokud jsou například odsazení v souboru formátované pomocí karet a přidáte soubor EditorConfig, který formátuje odsazení mezerami, znaky odsazení se automaticky nepřevedou na mezery. Když dokument naformátujete (vyberte Upravit>dokument rozšířeného>formátu nebo stisknete Ctrl+K, Ctrl+D), použije se u existujících řádků kódu nastavení prázdných znaků v souboru EditorConfig.

Pokud odeberete soubor EditorConfig z projektu nebo základu kódu, musíte zavřít a znovu otevřít všechny otevřené soubory kódu pro globální nastavení editoru, aby se projevily nové řádky kódu.

Přidání souboru EditorConfig do projektu

Pokud chcete do projektu nebo řešení přidat soubor EditorConfig, postupujte takto:

  1. Otevřete projekt nebo řešení v sadě Visual Studio. Vyberte buď řešení, nebo uzel projektu v závislosti na tom, jestli se má nastavení EditorConfig použít pro všechny projekty v řešení, nebo jenom pro jeden. Můžete také vybrat složku v projektu nebo řešení, do které chcete přidat soubor .editorconfig .

  2. V nabídce zvolte Možnost Přidat novou položku projektu>nebo stiskněte kombinaci kláves Ctrl+Shift+A.

    Otevře se dialogové okno Přidat novou položku .

  3. Do vyhledávacího pole zadejte editorconfig.

    Ve výsledcích hledání se zobrazují dvě šablony položek souboru editorconfig.

    Snímek obrazovky znázorňující šablony položek souboru EditorConfig v sadě Visual Studio

  4. Vyberte šablonu editorconfig File (empty) a přidejte předem vyplněný soubor EditorConfig s výchozími možnostmi EditorConfig pro prázdné znaky, styl kódu a zásady vytváření názvů. Nebo vyberte šablonu souboru editorconfig (.NET) a přidejte předem vyplněný soubor EditorConfig s výchozími prázdnými znaky .NET, stylem kódu a zásadami vytváření názvů.

    V Průzkumník řešení se zobrazí nový soubor .editorconfig, který se otevře v editoru jako nová karta.

    Snímek obrazovky znázorňující soubor .editorconfig v Průzkumník řešení a editoru

  5. Volitelně upravte soubor a pak ho uložte.

Další způsoby přidání souboru EditorConfig

Existuje několik dalších způsobů, jak do projektu přidat soubor EditorConfig:

Hierarchie souborů a priorita

Když přidáte soubor .editorconfig do složky v hierarchii souborů, jeho nastavení platí pro všechny příslušné soubory na této úrovni a nižší. Můžete také přepsat nastavení EditorConfig pro konkrétní projekt, základ kódu nebo část základu kódu, aby používal jiné konvence než jiné části základu kódu. To může být užitečné při začlenění kódu odjinud a nechcete měnit jeho konvence.

Postupujte podle těchto pokynů:

  • Pokud chcete přepsat některá nebo všechna nastavení EditorConfig, přidejte soubor .editorconfig na úrovni hierarchie souborů, kterou chcete použít. Nové nastavení souboru EditorConfig platí pro soubory na stejné úrovni a soubory v libovolném podadresáři.

    Snímek obrazovky znázorňující hierarchii EditorConfig

  • Pokud chcete některá přepsat, ale ne všechna nastavení, zadejte pouze tato nastavení v souboru .editorconfig . Přepíše se pouze ty vlastnosti, které explicitně vypíšete v souboru .editorconfig nižší úrovně. Další nastavení ze všech souborů .editorconfig vyšší úrovně se budou dál používat.

  • Chcete-li zajistit, aby v této části základu kódu nebyla použita žádná nastavení ze souborů .editorconfig vyšší úrovně, přidejte root=true vlastnost do souboru .editorconfig nižší úrovně.

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

Soubory EditorConfig se čtou shora dolů. Pokud existuje více vlastností se stejným názvem, má přednost vlastnost naposledy nalezená se stejným názvem.

Úprava souborů EditorConfig

Visual Studio 2022 poskytuje vizuální editor pro soubory EditorConfig.

Po úpravě souboru EditorConfig je nutné znovu načíst soubory kódu, aby se nové nastavení projevilo.

Visual Studio vám pomůže upravovat soubory EditorConfig tím, že poskytuje seznamy dokončování IntelliSense. Příklad:

Snímek obrazovky, který zobrazuje IntelliSense v souboru EditorConfig

Pokud upravujete mnoho souborů EditorConfig, může být užitečné rozšíření EditorConfig Language Service. Mezi funkce tohoto rozšíření patří zvýrazňování syntaxe, vylepšená technologie IntelliSense, ověřování a formátování kódu.

Snímek obrazovky znázorňující IntelliSense s rozšířením EditorConfig Language Service

Příklad

Následující příklad ukazuje stav odsazení fragmentu kódu jazyka C# před a po přidání souboru EditorConfig do projektu:

  1. V dialogovém okně Možnosti nástrojů>nastavte nastavení Editoru textu>C#>Tabs pro textový editor sady Visual Studio tak, aby se při stisknutí klávesyTab vytvořily čtyři znaky mezery.

    Snímek obrazovky s nastavením karty Textový editor

  2. Podle očekávání se při stisknutí klávesy Tab na dalším řádku odsadí řádek přidáním čtyř prázdných znaků.

    Snímek obrazovky znázorňující klávesu Tab, která přidává mezery v kódu

    Snímek obrazovky znázorňující klávesu Tab, která přidává mezery v kódu

  3. Pomocí EditorConfig přepněte nastavení karet tak, aby používaly karty.

    V souboru EditorConfig vyberte Použít tabulátory .

    Snímek obrazovky znázorňující konfiguraci použití karet pro klávesu Tab

    Do projektu přidejte nový soubor s názvem .editorconfig s následujícím obsahem. Indikátor [*.cs] znamená, že tato změna se vztahuje pouze na soubory kódu jazyka C# v projektu.

    # Top-most EditorConfig file
    root = true
    
    # Tab indentation
    [*.cs]
    indent_style = tab
    
  4. Když stisknete klávesu Tab , zobrazí se místo mezer znaky tabulátoru.

    Snímek obrazovky znázorňující klávesu Tab, která přidává znaky tabulátoru v kódu

    Snímek obrazovky znázorňující klávesu Tab, která přidává znaky tabulátoru v kódu

Řešení potíží s nastavením EditorConfig

Pokud soubor EditorConfig existuje kdekoli v adresářové struktuře v umístění projektu nebo nad jeho umístěním, sada Visual Studio použije nastavení editoru v daném souboru do vašeho editoru. V tomto případě se na stavovém řádku může zobrazit následující zpráva:

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

To znamená, že pokud jsou některá nastavení editoru v Editoru možností>>editoru (například velikost odsazení a styl, velikost tabulátoru nebo konvence kódování) zadána v souboru EditorConfig v adresářové struktuře nebo nad projektem v adresářové struktuře, přepíší konvence v souboru EditorConfig nastavení v textovém editoru.

Při řešení potíží s EditorConfig postupujte takto:

  1. Pokud chcete podporu EditorConfig pro Visual Studio vypnout, zrušte zaškrtnutí políčka Sledovat konvence kódování projektu v textovém editoru Možností>nástrojů.>

    Snímek obrazovky znázorňující nastavení Pro sledování konvencí kódování projektu

  2. Pokud chcete najít všechny soubory EditorConfig v nadřazených adresářích projektu, otevřete příkazový řádek a spusťte následující příkaz z kořenového adresáře disku, který obsahuje váš projekt.

    dir .editorconfig /s
    
  3. Pokud chcete řídit rozsah konvencí EditorConfig, nastavte root=true vlastnost v souboru .editorconfig v kořenovém adresáři úložiště nebo v adresáři, ve kterém se projekt nachází.

    Visual Studio hledá soubor s názvem .editorconfig v adresáři otevřeného souboru a v každém nadřazeném adresáři. Hledání skončí, když dosáhne kořenové cesty k souboru nebo pokud se najde soubor .editorconfig.root=true