Dela via


Konfigurera C/C++ Inkludera rensning i Visual Studio

Från och med 17.8 Förhandsversion 1 kan Visual Studio rensa dina #includeför att 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 aktiverad som standard. Om den inte är aktiv kan du aktivera den via Verktyg>Alternativ>textredigeraren>C/C++>Code Cleanup och välja Aktivera #include rensning.

Använd sedan listrutorna för att konfigurera hur du vill bli meddelad om möjligheter att lägga till indirekta rubriker eller ta bort oanvända rubriker:

Dialogrutan Verktygsalternativ som öppnas i Textredigeraren > C/C++ > Rensning av kod.

Kryssrutan Aktivera # inkludera rensning är markerad. Listrutorna för förslagsnivåerna "Ta bort oanvända" och "Lägg till saknade" visas. Innehållet i listrutan visas, som är: **Omstrukturera endast**, **Förslag**, **Varning**och **Fel**. Listrutan **Ta bort oanvänd innehåller förslagsnivå** och erbjuder samma alternativ men lägger även till nedtonade.

Innebörden av alternativen på förslagsnivå är:

Endast refaktorering: Inkludera städning erbjuder åtgärder du kan vidta genom snabbmenyn när du för muspekaren över en #include, eller placerar markören på #include-linjen och trycker på Ctrl+punkt.

En skärmbild av snabbåtgärden för att ta bort en oanvänd rubrik

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: Inkludera rensning erbjuder åtgärder som kan utföras via förslag, varningar eller fel i fönstret Fellista. Du avgör vilken. I den följande skärmdumpen av fellistan är 'Inkludera städning' inställt på att visa oanvända rubriker med en varning. Kontrollera att Build + Intellisense är markerat i listrutefiltret så att du kan se inkludera rensningsutdata:

En skärmdump av fönstret Fellista.

Listrutefiltret är inställt på Build + IntelliSense. En varning visas: VCIC002 – #include < iostream > används inte i den här filen."

nedtonad

Rensa inkluderade filer visar oanvända rubriker genom att tona ner raden för den oanvända rubrikfilen i kodredigeraren. Hovra markören över den nedtonade #include för att ta upp snabbåtgärdsmenyn och välj Visa potentiella korrigeringareller klicka på listrutan för glödlampan för att se åtgärder relaterade till den oanvända filen.

En skärmbild av en nedtonad #include < iostream-> rad.

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.

Konfigurera inkludera städning med .editorconfig

Det finns fler alternativ för att konfigurera Inkludera rensning, till exempel att exkludera angivna inkluderar från rensningsförslag, vilket indikerar att vissa huvudfiler krävs så att verktyget inte markerar dem som oanvända och så vidare. De här alternativen definieras i en .editorconfig fil som du kan lägga till i projektet för att bland annat 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 lägga till transitiva inkluderingsmeddelanden.
none
suggestion
warning
error
cpp_include_cleanup_add_missing_error_tag_type = suggestion
cpp_include_cleanup_remove_unused_error_tag_type

Anger felnivån för att ta bort oanvända inkluderingsmeddelanden.
none
suggestion
warning
error
dimmed
cpp_include_cleanup_remove_unused_error_tag_type = dimmed
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_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_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_alternate_files

Generera inte ett meddelande för indirekt inkluderade fil2 om fil1 är inkluderad. Om du till exempel #include <windows.h> och bara använder något från dess indirekt inkluderade rubrik winerror.h, kommer 'Include Cleanup' inte föreslå att lägga till winerror.h. Användbart när du föredrar att inkludera en fasadrubrikfil i stället för de indirekta det inkluderar.
file1:file2 cpp_include_cleanup_alternate_files = windows.h:winerror.h, windows.h:minwindef.h

Se även

C/C++ Ta med rensningsöversikt
Inkludera rensningsmeddelanden