Konfigurera C/C++ Inkludera rensning i Visual Studio
Från och med 17.8 Förhandsversion 1 kan Visual Studio rensa dina #include
fö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:
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.
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:
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.
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