Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Počínaje verzí 17.8 Preview 1 může Visual Studio vyčistit soubory, které #include, a zlepšit tak kvalitu vašeho kódu v jazycích C a C++ následujícími způsoby:
- Nabízí přidání souborů hlaviček pro kód, který se zkompiluje pouze proto, že potřebný hlavičkový soubor je nepřímo zahrnut jiným hlavičkovým souborem.
- Nabízí odebrání nepoužívaných souborů hlaviček– což zlepšuje časy sestavení.
Tento článek popisuje, jak nakonfigurovat funkci Zahrnout vyčištění v sadě Visual Studio. Další informace o zahrnutí vyčištění naleznete v tématu C/C++ Include Cleanup overview.
Zapněte možnost Zahrnout vyčištění
Funkce Zahrnout vyčištění je ve výchozím nastavení vypnutá.
Zapněte ho tak, že vyberete Nástroje>Možnosti>textového editoru>C/C++>Vyčištění kódu a vyberete Povolit #include vyčištění.
Potom pomocí rozevíracích seznamu nakonfigurujte závažnost oznámení o příležitostech přidat nepřímé hlavičky nebo odebrat nepoužívané hlavičky:
Je zaškrtnuté políčko **Povolit vyčištění direktiv #include**. Zobrazí se rozevírací seznamy pro **Odebrat nepoužité položky včetně úrovně návrhu** a **Přidání chybějící úrovně návrhu**. Zobrazí se obsah rozevíracího seznamu: **Pouze refaktoring**, **Návrh**, **Varování** a **Chyba**. Rozevírací seznam **Odebrat nepoužité položky zahrnuje úroveň návrhu** stejné možnosti, ale také přidá **Dimmed**.
Tyto možnosti určují typ oznámení, které funkce Include Cleanup poskytuje o nepoužívaných hlavičkách:
Ztlumil
Funkce Include Cleanup zobrazuje nepoužívané hlavičky ztlumením řádku nepoužívaného hlavičkového souboru v editoru kódu a zprávou v okně Seznam chyb. V editoru kódu najeďte ukazatelem na ztlumený symbol #include, aby se zobrazila nabídka rychlých akcí, a zvolte Zobrazit potenciální opravy, nebo klikněte na rozevírací nabídku žárovky, aby se zobrazily akce související s nepoužívaným souborem.
Řádek s #include < iostream > je zobrazen tlumeně, protože řádek kódu, který používá knihovnu iostream, je zakomentovaný. Daný řádek kódu je // std::cout << "charSize = " << charSize; Pro tento řádek je také viditelné menu rychlých akcí. Uvádí, že #include < iostream > se v tomto souboru nepoužívá a obsahuje odkaz na zobrazení potenciálních oprav.
Jen refaktoring: Volba Zahrnout vyčištění nabízí akce, které můžete provést prostřednictvím nabídky rychlých akcí v editoru kódu, když najedete ukazatelem myši na #include nebo umístíte kurzor na řádek #include a stisknete Ctrl+.
Když umístíte ukazatel myši na #include iostream, zobrazí se ikona žárovky s textem, že #include iostream se v tomto souboru nepoužívá.
Návrh, upozornění, chyba: Zahrnutí vyčištění může v okně Seznam chyb zobrazit zprávy o vyčištění jako návrhy, upozornění nebo chyby. Určíte, které. Na následujícím snímku obrazovky se seznamem chyb je nakonfigurováno zahrnout vyčištění tak, aby zobrazovalo nepoužívané hlavičky s upozorněním. Ujistěte se, že je v rozevíracím filtru vybraná možnost Build + IntelliSense, abyste mohli zobrazit výstup Include Cleanup:
Filtr rozevíracího seznamu je nastavený na **Build + IntelliSense**. Zobrazí se upozornění: VCIC002 – v tomto souboru se nepoužívá #include
Zapněte ho tak, že vybereteMožnosti>nástrojů> Všechnyjazyky>nastavení>C/C++>Vyčištění kódu> kódu. Pomocí rozevíracích nabídek můžete nastavit, jak chcete být upozorňováni na možnosti zvýraznění nepoužívaných direktiv #include, direktiv #include, které lze optimalizovat (odebrat po přímém přidání jejich požadovaných tranzitivních include), a chybějících direktiv #include, které jsou zahrnuty tranzitivně.
Snímek obrazovky s rozevíracími seznamy pro výběr způsobu zvýraznění nepoužívané hlavičky v editoru kódu, těch, které je možné optimalizovat, a těch, které jsou přechodné.
Význam možností:
Ztlumil
Vyčištění direktiv include zobrazuje nepoužívané hlavičkové soubory ztlumením řádku nepoužívaného hlavičkového souboru v editoru kódu a také jako zprávu v okně Seznam chyb. V editoru kódu najeďte ukazatelem na ztlumený prvek #include, aby se zobrazila nabídka rychlých akcí, a zvolte Zobrazit možné opravy, nebo klikněte na rozevírací nabídku u ikony žárovky, aby se zobrazily akce související s nepoužívaným souborem.
Řádek pro `#include
Žádná: Neprovádějte žádnou akci. Include Cleanup stále nabízí akce, které můžete v editoru kódu provést prostřednictvím nabídky rychlých akcí, když najedete ukazatelem myši na #include, nebo umístíte kurzor na řádek #include a stisknete Ctrl+.:
Návrh, upozornění, chyba: Zahrnutí vyčištění může v okně Seznam chyb zobrazit zprávy o vyčištění jako návrhy, upozornění nebo chyby. Určíte, které. Na následujícím snímku obrazovky okna Error List je nástroj Include Cleanup nakonfigurován tak, aby nepoužívané hlavičky zobrazoval jako upozornění. Ujistěte se, že je ve filtru v rozevíracím seznamu vybrána možnost Build + Intellisense, abyste mohli zobrazit výstup Include Cleanup:
Filtr rozevíracího seznamu je nastavený na **Build + IntelliSense**. Zobrazí se upozornění: VCIC002 – v tomto souboru se nepoužívá #include
Další možnosti konfigurace
Další nastavení zahrnout vyčištění jsou k dispozici v části Nástroje>Možnosti>textového editoru>C/C++>Vyčištění kódu:
-
Řazení zahrnuje: direktivy flags
#include, které potřebují řazení. Zvolte úroveň oznámení závažnosti zprávy, která se zobrazí v okně Seznam chyb : Žádná (funkce je vypnutá ), Návrh, Upozornění nebo Chyba. -
Styl: Určuje způsob
#includeřazení příkazů. Zvolte Ignorovat, chcete-li řadit bez ohledu na typ závorek, Uvozovky, chcete-li řadit include s uvozovkami nad include se špičatými závorkami, nebo Špičaté závorky, chcete-li řadit include se špičatými závorkami nad include s uvozovkami. - Rozlišovat malá a velká písmena: Je-li vybráno, při řazení se názvy souborů porovnávají s rozlišením malých a velkých písmen. Při vymazání se řazení nerozlišuje malá a velká písmena.
Další nastavení Vyčištění direktiv include jsou k dispozici v části Nástroje>Možnosti>Všechna nastavení>Jazyky>C/C++>Vyčištění kódu>Vyčištění direktiv include:
- Rozšířené filtrování: Pokud při výběru voláte členskou funkci u odvozeného objektu třídy, ale funkce je definována v základní třídě, nástroj nenavrhuje přidání hlavičky základní třídy. Tuto možnost zapněte, pokud chcete omezit hlučné návrhy, pokud symboly, které používáte, pocházejí ze základních tříd, a ne z typu, na který odkazujete přímo.
- Seřadit direktivy #include po všech úpravách v rámci vyčištění include: Je-li tato možnost vybrána, po každé akci Vyčištění direktiv include se spustí integrovaná funkce řazení direktiv include.
- Formátovat direktivy #include po jakýchkoli úpravách při čištění direktiv include: Je-li tato možnost vybrána, příkaz pro formátování se spustí po jakékoli akci čištění direktiv include.
Nastavení možnosti Zahrnout vyčištění pomocí .editorconfig
Funkce Include Cleanup nabízí další možnosti, například vyloučit zadané direktivy #include z návrhů čištění a označit některé hlavičkové soubory jako povinné, aby je nástroj neoznačil jako nepoužívané. Definujte tyto možnosti v .editorconfig souboru. Přidejte tento soubor do projektu a vynucujte konzistentní styly kódování pro všechny uživatele, kteří pracují v základu kódu. Další informace o přidání .editorconfig souboru do projektu naleznete v tématu Vytvoření přenosného vlastního nastavení editoru pomocí EditorConfig.
Nastavení .editorconfig , která můžete použít s příkazem Zahrnout vyčištění, jsou:
| Nastavení | Hodnoty | Příklad |
|---|---|---|
cpp_include_cleanup_add_missing_error_tag_type
Nastaví úroveň chyb u zpráv o transitivním zahrnutí. |
nonesuggestionwarningerror |
cpp_include_cleanup_add_missing_error_tag_type = suggestion |
cpp_include_cleanup_alternate_files
Potlačit zprávy pro nepřímé zahrnutí. Pokud například #include <windows.h> a používáte pouze obsah z nepřímo zahrnutých hlavičkových souborů winerror.h nebo minwindef.h, nástroj nenavrhuje jejich přidání. |
file1:file2[:file3...][,file4:file5...] |
cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h
Nebo cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h,umbrella.h:internal.h |
cpp_include_cleanup_excluded_files
Vyloučí zadané soubory ze zpráv Zahrnout vyčištění. Nebudete mít vůbec žádný návrh související k záhlaví, ať už ho přidáte, nebo jej nepoužijete. |
filename | cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h |
cpp_include_cleanup_remove_unused_error_tag_type
Nastaví úroveň chyby pro odebrání nepoužívaných zpráv zahrnutí. |
nonesuggestionwarningerrordimmed |
cpp_include_cleanup_remove_unused_error_tag_type = dimmed |
cpp_include_cleanup_replacement_files
Nahradí soubor 1 souborem 2 během zpracování zahrnutí vyčištění. Můžete například raději použít více cstdionež stdio.h . Pokud máte soubor obsahující `#include <cstdio>` i `#include <stdio.h>` a obsah používáte pouze z `stdio.h`, toto nastavení Include Cleanup vás vyzve k odstranění `stdio.h`, protože při zpracování nahradilo použití `cstdio` za `stdio.h`. Pokud nepoužíváte obsah ani jednoho z nich, nástroj Include Cleanup vás upozorní, abyste odstranili oba. |
file1:file2 | cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint |
cpp_include_cleanup_required_files
Zadejte, že použití souboru1 vyžaduje soubor2. Uveďte například, že pokud použijete atlwin.h, musí být zahrnuto také altbase.h. |
file1:file2 | cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h |
cpp_sort_includes_error_tag_type
Nastaví úroveň závažnosti chybových zpráv sort-includes. none vypne funkci.
suggestion zobrazí ... vlnovitou čáru a přidá zprávu do seznamu chyb.
warning zobrazí zelenou vlnovku a přidá upozornění.
error zobrazí červenou vlnovku a přidá chybové hlášení. |
nonesuggestionwarningerror |
cpp_sort_includes_error_tag_type = suggestion |
cpp_sort_includes_priority_case_sensitive
Při trueporovnávání při řazení rozlišují názvy souborů malá a velká písmena. Pokud je nastaveno false, řazení nerozlišuje malá a velká písmena. |
truefalse |
cpp_sort_includes_priority_case_sensitive = false |
cpp_sort_includes_priority_style
Určuje, jestli řazení bere v úvahu styl závorek. ignore řadí bez ohledu na závorky.
quoted řazení v uvozových závorkách zahrnuje nad úhlovou závorku.
angle_brackets seřadí úhlovou závorku včetně výše uvedených uvozových závorek. |
ignorequotedangle_brackets |
cpp_sort_includes_priority_style = quoted |
Od Visual Studio 2026 jsou k dispozici následující nastavení:
| Nastavení | Hodnoty | Příklad |
|---|---|---|
cpp_include_cleanup_format_after_edits
Po truespustí příkaz k formátování po jakékoli akci „Include Cleanup“. Užitečné, pokud máte clang-format nakonfigurovaný pro řazení #include direktiv. |
truefalse |
cpp_include_cleanup_format_after_edits = true |
cpp_include_cleanup_sort_after_edits
Když truespustíte integrovanou funkci řazení po jakékoli akci Zahrnout vyčištění. Užitečné, když k řazení #include direktiv nepoužíváte clang-format. |
truefalse |
cpp_include_cleanup_sort_after_edits = true |
Potlačení nepoužívaných zpráv zahrnutí prostřednictvím kódu
Od sady Visual Studio 2026 můžete potlačit zprávy Include Cleanup u jedné direktivy #include přidáním komentáře // VCIC-Excluded na stejný řádek. Nástroj Vyčištění direktiv include nenavrhuje odebrání této direktivy include, ani když se jeví jako nepoužitá. Zadejte volitelný text odůvodnění za značkou, aby budoucí čtenáři věděli, proč je k dispozici:
#include "Header2.h" // VCIC-Excluded: needed for the ATL macros used below
K přidání komentáře // VCIC-Excluded do direktivy #include můžete také použít nabídku žárovky. Ujistěte se, že je funkce Vyčištění direktiv include zapnutá prostřednictvím Nástroje>Možnosti>Všechna nastavení>Jazyky>C/C++>Vyčištění kódu>Vyčištění direktiv include, protože je ve výchozím nastavení vypnutá. Pak najeďte kurzorem na řádek #include a vyberte Další opravy>Potlačit VCIC002 ve zdroji::
Komentář // VCIC-Excluded se vztahuje pouze na #include soubor. Nastavení cpp_include_cleanup_excluded_files v .editorconfig uplatní toto vyloučení ve všech souborech, které se řídí prvkem .editorconfig.
Viz také
Přehled vyčištění V jazyce C/C++
Zahrnout zprávy o vyčištění