Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Från och med 17.8 Förhandsversion 1 kan Visual Studio rensa vilka filer du #include vill förbättra kvaliteten på C- och C++-koden på följande sätt:
- Förslag om att lägga till headerfiler för kod som endast kompileras eftersom en nödvändig headerfil ingår indirekt via en annan headerfil.
- Erbjudanden för att ta bort oanvända huvudfiler – förbättra byggtiderna.
I den här artikeln beskrivs hur du konfigurerar Inkludera rensning i Visual Studio. Mer information om inklusionsstädning finns i C/C++ översikt över inklusionsstädning.
Aktivera inkludering av rensning
Funktionen Inkludera rensning är inaktiverad som standard.
Aktivera den genom att välja Verktyg>Alternativ>Textredigeraren>C/C++>Kodrensning och välja Aktivera #include rensning.
Använd sedan listrutorna för att konfigurera allvarlighetsgraden för meddelanden om möjligheter att lägga till indirekta rubriker eller ta bort oanvända rubriker:
Kryssrutan **Aktivera #include rensning** är markerad. Listrutorna för **Ta bort oanvända innehåller förslagsnivå** och **Lägg till saknade inkluderar förslagsnivå** visas. Innehållet i listrutan visas, som är: **Omstrukturera endast**, **Förslag**, **Varning**och **Fel**. Listrutan **Ta bort oanvänd innehåller förslagsnivå** erbjuder samma alternativ men lägger även till **Nedtonad**.
De här alternativen styr vilken typ av meddelande som funktionen Inkludera rensning innehåller om oanvända rubriker:
nedtonad
Rensning av include-direktiv visar oanvända headerfiler genom att tona ned raden med den oanvända headerfilen i kodredigeraren samt med ett meddelande i fönstret Fellistan. I kodredigeraren hovrar du markören över den nedtonade #include för att öppna snabbåtgärdsmenyn och väljer Visa potentiella korrigeringar eller klickar på listrutan glödlampa för att se åtgärder relaterade till den oanvända filen.
Raden för #include < iostream > är nedtonad eftersom kodraden som använder iostream kommenteras ut. Den kodraden är // std::cout << "charSize = " << charSize; Snabbåtgärdsmenyn visas också för den här raden. Det står att #include < iostream > inte används i den här filen och har en länk till Visa potentiella korrigeringar.
Endast refaktorisering: Rensning av include-direktiv erbjuder åtgärder som du kan utföra via snabbåtgärdsmenyn i kodredigeraren när du håller muspekaren över #include, eller placerar markören på raden #include och trycker på Ctrl+punkt:
När markören hovras över # inkludera iostream visas en glödlampa med texten som # include iostream inte används i den här filen."
Förslag, varning, fel: Rensning av include-direktiv kan visa meddelanden om rensning av include-direktiv som förslag, varningar eller fel i fönstret Fellista. Du avgör vilken. I följande skärmbild av Error List är Include Cleanup konfigurerad att visa oanvända headerfiler som en varning. Kontrollera att Build + Intellisense är markerat i listrutefiltret så att du kan se inkludera rensningsutdata:
Filtret i listrutan är inställt på **Build + IntelliSense**. En varning visas: VCIC002 – "#include
Aktivera den genom att väljaVerktygsalternativ>>Alla inställningar>Språk>C/C++>Kodrensning>Inkludera rensning. Använd listrutorna för att konfigurera hur du vill få aviseringar om möjligheter att markera oanvända #include-satser, #include-satser som kan optimeras (tas bort efter att deras nödvändiga transitiva include-satser har lagts till direkt) och saknade #include-satser som inkluderas transitivt.
Skärmbild som visar listrutor för att välja hur du ska markera en oanvänd rubrik i kodredigeraren, de som kan optimeras och de som är transitivt inkluderade.
Innebörden av alternativen:
nedtonad
Include Cleanup visar oanvända huvudfiler genom att tona ned raden med den oanvända huvudfilen i kodredigeraren samt med ett meddelande i fönstret Fellista. I kodredigeraren hovrar du markören över den nedtonade #include för att öppna snabbåtgärdsmenyn och väljer Visa potentiella korrigeringar, eller klickar på listrutan glödlampa, för att se åtgärder relaterade till den oanvända filen.
Raden för "#include
Ingen: Vidta inga åtgärder. Rensa include-direktiv erbjuder fortfarande åtgärder som du kan utföra i kodredigeraren via snabbåtgärdsmenyn när du håller muspekaren över #include, eller placerar markören på raden #include och trycker på Ctrl+punkt:
Förslag, varning, fel: Rensning av include-direktiv kan visa meddelanden om rensning av include-direktiv som förslag, varningar eller fel i fönstret Fellistan. Du avgör vilken. I följande skärmbild av Error List är Include Cleanup konfigurerat för att visa oanvända headerfiler som en varning. Kontrollera att Build + Intellisense är markerat i listrutefiltret så att du kan se inkludera rensningsutdata:
Listrutefiltret är inställt på **Build + IntelliSense**. En varning visas: VCIC002 – "#include
Andra konfigurationsalternativ
Fler Rensningsinställningar finns tillgängliga under Verktyg>Alternativ>Textredigerare>C/C++>Kodrensning:
-
Sortera include-direktiv: Markerar
#include-direktiv som behöver sorteras. Välj allvarlighetsgrad för meddelandet som visas i fönstret Fellista : Ingen (funktionen är inaktiverad), Förslag, Varning eller Fel. -
Formatmall: Styr hur
#includeinstruktioner sorteras. Välj Ignorera om du vill sortera utan att ta hänsyn till parentesstil, Citattecken för att sortera include-direktiv med citationstecken före include-direktiv med vinkelparenteser, eller Vinkelparenteser för att sortera include-direktiv med vinkelparenteser före include-direktiv med citationstecken. - Skiftlägeskänslig: När det här alternativet är markerat tar jämförelser vid sortering hänsyn till skillnader mellan versaler och gemener i filnamn. När den är avmarkerad är sorteringen inte skiftlägeskänslig.
Fler Rensningsinställningar finns tillgängliga underVerktygSalternativ>>Alla inställningar>Språk>C/C++>Kodrensning>Inkludera rensning:
- Avancerad filtrering: Om du anropar en medlemsfunktion i ett härlett klassobjekt men funktionen definieras i basklassen, föreslår verktyget inte att basklassrubriken läggs till. Aktivera det här alternativet för att minska bullriga förslag när de symboler du använder kommer från basklasser i stället för den typ som du refererar till direkt.
- Sortera #include-direktiven efter att du har gjort ändringar för rensning av include-direktiv: När det här alternativet är markerat körs den inbyggda funktionen för att sortera include-direktiv efter varje åtgärd för rensning av include-direktiv.
- Formatera #include-direktiv efter att du har gjort ändringar för att rensa include-direktiv: När det här alternativet är markerat körs formateringskommandot efter en åtgärd för rensning av include-direktiv.
Konfigurera inkludera städning med .editorconfig
Funktionen Inkludera rensning har fler alternativ, till exempel att exkludera angivna inkluderar från rensningsförslag och anger att vissa huvudfiler krävs så att verktyget inte markerar dem som oanvända. Definiera de här alternativen i en .editorconfig fil. Lägg till den här filen i projektet för att framtvinga konsekventa kodningsformat för alla som arbetar i kodbasen. Mer information om hur du lägger till en .editorconfig fil i projektet finns i Skapa portabla anpassade redigeringsinställningar med EditorConfig.
De .editorconfig inställningar som du kan använda med Inkludera uppstädning är:
| Inställning | Värden | Exempel |
|---|---|---|
cpp_include_cleanup_add_missing_error_tag_type
Anger felnivån för att lägga till transitiva inkluderingsmeddelanden. |
nonesuggestionwarningerror |
cpp_include_cleanup_add_missing_error_tag_type = suggestion |
cpp_include_cleanup_alternate_files
Undertryck meddelanden för indirekta inkluderingar. Om du #include <windows.h> till exempel bara använder innehåll från dess indirekt inkluderade rubriker winerror.h eller minwindef.h, föreslår verktyget inte att du lägger till dem. |
file1:file2[:file3...][,file4:file5...] |
cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h
Eller cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h,umbrella.h:internal.h |
cpp_include_cleanup_excluded_files
Exkluderar de angivna filerna från Ta med rensningsmeddelanden. Du får inget förslag som är relaterat till rubriken alls, om du vill lägga till det eller att det inte används. |
filnamn | cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h |
cpp_include_cleanup_remove_unused_error_tag_type
Anger felnivån för att ta bort oanvända inkluderingsmeddelanden. |
nonesuggestionwarningerrordimmed |
cpp_include_cleanup_remove_unused_error_tag_type = dimmed |
cpp_include_cleanup_replacement_files
Ersätter file1 med file2 under Include Cleanup-bearbetning. Du kanske till exempel föredrar att använda cstdio framför stdio.h. Om du har en fil med både #include <cstdio> och #include <stdio.h> och du endast använder innehåll från stdio.h, med den här inställningen Inkludera rensning, uppmanas du att ta bort stdio.h eftersom den ersatte användningen av cstdio med stdio.h under bearbetningen. Om du inte använder innehållet från någon av dem, uppmanar Include Cleanup dig att ta bort båda. |
file1:file2 | cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint |
cpp_include_cleanup_required_files
Ange att användning av file1 kräver fil2. Ange till exempel att om du använder atlwin.h måste även altbase.h inkluderas. |
file1:file2 | cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h |
cpp_sort_includes_error_tag_type
Anger felnivån för sort-includes-meddelanden. none inaktiverar funktionen.
suggestion visar en ... squiggle och lägger till ett meddelande i fellistan.
warning visar en grön squiggle och lägger till en varning.
error visar en röd squiggle och lägger till ett fel. |
nonesuggestionwarningerror |
cpp_sort_includes_error_tag_type = suggestion |
cpp_sort_includes_priority_case_sensitive
När true, sortera jämför inkludera filnamn skiftlägeskänsligt. När false är sorteringen inte skiftlägeskänslig. |
truefalse |
cpp_sort_includes_priority_case_sensitive = false |
cpp_sort_includes_priority_style
Styr om sorteringen tar hänsyn till hakparentesformatet. ignore sorterar utan att tänka på hakparenteser.
quoted sorterna som anges innehåller ovanstående vinkelparenteser.
angle_brackets sorterar inkluderingar inom vinkelparenteser före inkluderingar inom citationstecken. |
ignorequotedangle_brackets |
cpp_sort_includes_priority_style = quoted |
Följande inställningar är tillgängliga från och med Visual Studio 2026:
| Inställning | Värden | Exempel |
|---|---|---|
cpp_include_cleanup_format_after_edits
När true är valt körs formatkommandot efter varje Include Cleanup-åtgärd. Användbart när du har clang-format konfigurerat för att sortera dina #include direktiv. |
truefalse |
cpp_include_cleanup_format_after_edits = true |
cpp_include_cleanup_sort_after_edits
När true körs, körs den inbyggda funktionen för att sortera include-direktiv efter varje Include Cleanup-åtgärd. Användbart när du inte använder clang-format för att sortera dina #include direktiv. |
truefalse |
cpp_include_cleanup_sort_after_edits = true |
Undertryck meddelanden om "unused-include" med kod
Från och med Visual Studio 2026 kan du utelämna Ta med rensningsmeddelanden i ett enda #include direktiv genom att lägga till en // VCIC-Excluded kommentar på samma rad. Verktyget Inkludera rensning föreslår inte att du tar bort det, även om det verkar oanvänt. Ange valfri motiveringstext efter markören så att framtida läsare vet varför inkluderingen finns där:
#include "Header2.h" // VCIC-Excluded: needed for the ATL macros used below
Du kan också använda glödlampsmenyn för att lägga till kommentaren // VCIC-Excluded i ett direktiv #include. Kontrollera att Inkludera rensning är aktiverat viaverktygsalternativ>>Alla inställningar>Språk>C/C++>Kodrensning>Inkludera rensning eftersom det är inaktiverat som standard. Hovra sedan markören över #include raden och välj Andra korrigeringar>Undertryck VCIC002 i källa::
Kommentaren // VCIC-Excluded gäller endast #include för filen. Inställningen cpp_include_cleanup_excluded_files i .editorconfig gäller undantaget i varje fil som styrs av .editorconfig.
Se även
C/C++ Ta med rensningsöversikt
Inkludera rensningsmeddelanden