Configureer het opschonen van C/C++-invoegen in Visual Studio

Vanaf 17.8 Preview 1 kan Visual Studio opschonen welke bestanden u #include om de kwaliteit van uw C- en C++-code op de volgende manieren te verbeteren:

  • Aanbiedingen voor het toevoegen van headerbestanden voor code die alleen worden gecompileerd omdat een benodigd headerbestand indirect wordt opgenomen door een ander headerbestand.
  • Aanbiedingen voor het verwijderen van ongebruikte headerbestanden, waardoor de buildtijden worden verbeterd.

In dit artikel wordt beschreven hoe u Include Cleanup configureert in Visual Studio. Zie C/C++ Overzicht van Include-opruimingvoor meer informatie over Include-opruiming.

Insluiten opruimen inschakelen

De functie Include Cleanup is standaard uitgeschakeld.

Schakel het in door Extra>Opties>Teksteditor>C/C++>Code opschonen te selecteren en #include opschonen inschakelen te selecteren.

Gebruik vervolgens de vervolgkeuzelijsten om de ernst in te stellen van de meldingen over mogelijkheden om indirecte headers toe te voegen of ongebruikte headers te verwijderen:

Het dialoogvenster Opties voor Hulpmiddelen geopend in Teksteditor > C/C++ > Opschonen van code.

Het selectievakje **#include opschonen** is ingeschakeld. De vervolgkeuzelijsten voor **suggestieniveau voor het verwijderen van ongebruikte includebestanden** en **suggestieniveau voor het toevoegen van ontbrekende includebestanden** worden weergegeven. De inhoud van de vervolgkeuzelijst wordt weergegeven. Dit zijn: **Alleen herstructureren**, **Suggestie**, **Waarschuwing** en **Fout**. De vervolgkeuzelijst **Ongebruikt verwijderen bevat suggestieniveau** biedt dezelfde opties, maar voegt ook **Dimmed** toe.

Deze opties bepalen welk type melding de functie Include Cleanup geeft over ongebruikte headers:

grijs weergegeven

Include Cleanup toont ongebruikte headerbestanden door de regel met het ongebruikte headerbestand in de code-editor te dimmen en door een bericht weer te geven in het venster Foutenlijst. Beweeg in de code-editor de cursor over het vervaagde #include om het menu met snelle acties te openen en kies Mogelijke oplossingen weergeven, of klik op het vervolgkeuzemenu van het gloeilamppictogram om acties te bekijken die verband houden met het ongebruikte bestand.

Een schermopname van een gedimde #include < iostream > lijn.

De regel voor #include < iostream > wordt grijs weergegeven omdat de coderegel die gebruikmaakt van iostream wordt uitgecommentarieerd. Deze coderegel is // std::cout << "charSize = " << charSize; Het snelmenu is ook zichtbaar voor deze regel. Er wordt opgegeven dat de #include < iostream > niet wordt gebruikt in dit bestand en er is een link om mogelijke oplossingen te tonen.

Alleen refactoring: Include Cleanup biedt acties die u kunt uitvoeren via het menu met snelle acties in de code-editor wanneer u de muisaanwijzer op een #include houdt, of de cursor op de #include-regel plaatst en op Ctrl+punt drukt:

Een schermopname van de snelle actie om een ongebruikte koptekst te verwijderen.

Wanneer u de cursor boven #include iostream houdt, verschijnt er een gloeilamp met de tekst dat #include iostream niet in dit bestand wordt gebruikt.

Suggestie, waarschuwing, fout: Include Cleanup kan Include Cleanup-berichten tonen als suggesties, waarschuwingen of fouten in het venster Foutenlijst. U bepaalt welke. In de volgende schermopname van de Foutenlijst is Include Cleanup zo geconfigureerd dat ongebruikte headerbestanden met een waarschuwing worden weergegeven. Zorg ervoor dat Build + Intellisense is geselecteerd in het vervolgkeuzelijstfilter, zodat u de uitvoer van Include Cleanup kunt zien:

Een schermopname van het venster Foutenlijst.

Het vervolgkeuzefilter is ingesteld op **Build + IntelliSense**. Er is een waarschuwing zichtbaar: VCIC002 - '#include ' wordt niet gebruikt in dit bestand.'

Schakel dit in door Extra>Opties>Alle instellingen>Talen>C/C++>Code opschonen>Include opschonen te selecteren. Gebruik de vervolgkeuzelijsten om te configureren hoe u een melding wilt ontvangen over mogelijkheden om ongebruikte instructies te markeren, #include instructies die kunnen worden geoptimaliseerd (verwijderd nadat de vereiste transitieve insluitingen rechtstreeks zijn verwijderd) en ontbrekende #include#include instructies die transitief zijn opgenomen.

Een schermopname van het dialoogvenster Extra-opties dat wordt geopend bij Alle instellingentalen >> C/C++ > Code opruimen > inclusief opschonen.

Schermopname van vervolgkeuzelijsten voor het kiezen van het markeren van een ongebruikte header in de code-editor, de headers die kunnen worden geoptimaliseerd en de headers die transitief zijn opgenomen.

De betekenis van de opties:

grijs weergegeven

Include Cleanup toont ongebruikte headerbestanden door de regel met het ongebruikte headerbestand in de code-editor te dimmen en met een bericht in het venster Foutenlijst. Beweeg in de code-editor de aanwijzer over het vervaagde #include om het menu met snelle acties te openen en kies Mogelijke oplossingen weergeven, of klik op het vervolgkeuzemenu van het gloeilamppictogram om acties te bekijken die verband houden met het ongebruikte bestand.

Een schermopname van een gedimde #include < iostream > lijn.

De regel voor '#include ' wordt grijs weergegeven omdat de coderegel die gebruikmaakt van 'iostream' wordt uitgecommentarieerd. Deze coderegel is // std::cout << "charSize = " << charSize;". Het menu voor snelle acties is ook zichtbaar voor deze regel. Het bericht '#include ' wordt niet gebruikt in dit bestand en bevat een koppeling naar **Mogelijke oplossingen weergeven**.

Geen: Geen actie ondernemen. Include Cleanup biedt nog steeds acties die u in de code-editor kunt uitvoeren via het snelactiemenu wanneer u met de muisaanwijzer boven een #include beweegt, of door de cursor op de regel #include te plaatsen en op Ctrl+. te drukken:

Suggestie, waarschuwing, fout: Include Cleanup kan Include Cleanup-berichten weergeven als suggesties, waarschuwingen of fouten in het venster Foutenlijst. U bepaalt welke. In de volgende schermopname van de Foutenlijst is Include Cleanup zo geconfigureerd dat ongebruikte headerbestanden met een waarschuwing worden weergegeven. Zorg ervoor dat Build + Intellisense is geselecteerd in het vervolgkeuzelijstfilter, zodat u de uitvoer van Include Cleanup kunt zien:

Een schermopname van het venster Foutenlijst.

Het vervolgkeuzefilter is ingesteld op **Build + IntelliSense**. Er is een waarschuwing zichtbaar: VCIC002 - '#include ' wordt niet gebruikt in dit bestand.'

Andere configuratieopties

Meer instellingen voor opschonen zijn beschikbaar onder Extra Opties>>Teksteditor>C/C++>Code opschonen:

  • Sorteren omvat: Markeringsrichtlijnen #include die moeten worden gesorteerd. Kies het ernstmeldingsniveau van het bericht dat wordt weergegeven in het venster Foutenlijst : Geen (functie is uitgeschakeld), Suggestie, Waarschuwing of Fout.
  • Stijl: Bepaalt hoe #include instructies worden gesorteerd. Kies Negeren om te sorteren zonder rekening te houden met het type haakjes, Aanhalingstekens om include-instructies tussen aanhalingstekens boven include-instructies tussen punthaken te sorteren, of Punthaken om include-instructies tussen punthaken boven include-instructies tussen aanhalingstekens te sorteren.
  • Hoofdlettergevoelig: bij het selecteren van sorteringen worden bestandsnamen hoofdlettergevoelig weergegeven. Wanneer deze optie is uitgeschakeld, is sorteren niet hoofdlettergevoelig.

Schermopname van Visual Studio Opties met Geavanceerd filteren, Sorteren na bewerkingen, Sorteren inclusief, Sorteerprioriteit, Stijl en Hoofdlettergevoelige instellingen gemarkeerd.

Meer instellingen voor include-opruiming zijn beschikbaar onder Extra>Opties>Alle instellingen>Talen>C/C++>Code opschoning>Include cleanup:

  • Geavanceerde filtering: Wanneer deze optie is geselecteerd en u een lidfunctie aanroept op een object van een afgeleide klasse, terwijl de functie is gedefinieerd in de basisklasse, stelt het hulpprogramma niet voor om het headerbestand van de basisklasse toe te voegen. Schakel deze optie in om ruissuggesties te verminderen wanneer de symbolen die u gebruikt afkomstig zijn van basisklassen in plaats van het type waarnaar u rechtstreeks verwijst.
  • Sorteer de #include-directieven na het aanbrengen van wijzigingen voor het opschonen van includebestanden: Wanneer deze optie is geselecteerd, wordt de ingebouwde functie voor het sorteren van includebestanden uitgevoerd na elke actie Include Cleanup.
  • De #include-richtlijnen opmaken nadat u wijzigingen hebt aangebracht voor het opschonen van include-richtlijnen: Wanneer deze optie is geselecteerd, wordt de opdracht voor opmaak uitgevoerd na een actie voor het opschonen van include-richtlijnen.

Schermopname van Visual Studio Opschoningsopties opnemen met geavanceerde filter-, sorteer- en opmaakinstellingen gemarkeerd.

Configureren van het opnemen van opschonen met .editorconfig

De functie voor het opschonen van include-instructies heeft meer opties, zoals het uitsluiten van opgegeven include-instructies van opschoningssuggesties en het aangeven dat sommige headerbestanden vereist zijn, zodat het hulpprogramma deze niet als ongebruikt markeert. Definieer deze opties in een .editorconfig bestand. Voeg dit bestand toe aan uw project om consistente coderingsstijlen af te dwingen voor iedereen die in de codebasis werkt. Zie .editorconfigvoor meer informatie over het toevoegen van een bestand aan uw project.

De .editorconfig-instellingen die u kunt gebruiken bij Opschonen zijn:

Instelling Waarden Voorbeeld
cpp_include_cleanup_add_missing_error_tag_type

Hiermee stelt u het foutniveau voor het toevoegen van transitieve insluitingsberichten in.
none
suggestion
warning
error
cpp_include_cleanup_add_missing_error_tag_type = suggestion
cpp_include_cleanup_alternate_files

Berichten onderdrukken voor indirecte insluitingen. Bijvoorbeeld: als u #include <windows.h> en alleen inhoud gebruikt uit de indirect opgenomen headerbestanden winerror.h of minwindef.h, stelt het hulpprogramma niet voor deze toe te voegen.
file1:file2[:file3...][,file4:file5...] cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h
of
cpp_include_cleanup_alternate_files = windows.h:winerror.h:minwindef.h,umbrella.h:internal.h
cpp_include_cleanup_excluded_files

sluit de opgegeven bestanden uit van berichten over opschoning. U krijgt helemaal geen suggestie met betrekking tot de koptekst, ongeacht of deze moet worden toegevoegd of dat deze niet wordt gebruikt.
bestandsnaam cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h
cpp_include_cleanup_remove_unused_error_tag_type

Hiermee stelt u het foutniveau in voor het verwijderen van ongebruikte include-berichten.
none
suggestion
warning
error
dimmed
cpp_include_cleanup_remove_unused_error_tag_type = dimmed
cpp_include_cleanup_replacement_files

vervangt bestand 1 door bestand 2 tijdens het include-opruimproces. U kunt bijvoorbeeld de voorkeur geven aan het gebruik van cstdio boven stdio.h. Als u een bestand hebt met zowel #include <cstdio> als #include <stdio.h> en u alleen inhoud uit stdio.hgebruikt, zal de instelling 'Include Cleanup' u vertellen dat u stdio.h moet verwijderen omdat het gebruik van cstdio is vervangen door stdio.h tijdens de verwerking. Als u de inhoud van geen van beide gebruikt, zal Include Cleanup u vertellen om beide te verwijderen.
bestand1:bestand2 cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint
cpp_include_cleanup_required_files

Geef op dat het gebruik van bestand1bestand2vereist. Geef bijvoorbeeld aan dat als u atlwin.h gebruikt, altbase.h ook moet worden opgenomen.
bestand1:bestand2 cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h
cpp_sort_includes_error_tag_type

Hiermee stelt u het foutniveau van sort-includes-berichten in. none zet de functie uit. suggestion toont een ... kronkel en voegt een bericht toe aan de lijst met fouten. warning toont een groene kronkel en voegt een waarschuwing toe. error toont een rode kronkellijn en geeft een fout aan.
none
suggestion
warning
error
cpp_sort_includes_error_tag_type = suggestion
cpp_sort_includes_priority_case_sensitive

Wanneer true, sorteer vergelijkt, zijn bestandsnamen hoofdlettergevoelig. Wanneer false, is sortering hoofdletterongevoelig.
true
false
cpp_sort_includes_priority_case_sensitive = false
cpp_sort_includes_priority_style

Hiermee bepaalt u of voor de sorteervolgorde rekening wordt gehouden met de stijl van vierkante haken. ignore sorteert zonder haakjes mee te nemen. quoted sorteert include-instructies tussen aanhalingstekens boven include-instructies tussen punthaken. angle_brackets sorteert includes tussen punthaken boven includes tussen aanhalingstekens.
ignore
quoted
angle_brackets
cpp_sort_includes_priority_style = quoted

De volgende instellingen zijn beschikbaar vanaf Visual Studio 2026:

Instelling Waarden Voorbeeld
cpp_include_cleanup_format_after_edits

Wanneer true, voert u de opmaakopdracht uit na elke actie 'Opschonen opnemen'. Handig wanneer u een clang-indeling hebt geconfigureerd om uw #include instructies te sorteren.
true
false
cpp_include_cleanup_format_after_edits = true
cpp_include_cleanup_sort_after_edits

Wanneer true, wordt na elke actie voor het opschonen van include-instructies de ingebouwde functie voor het sorteren van include-instructies uitgevoerd. Handig wanneer u geen clang-indeling gebruikt om uw #include instructies te sorteren.
true
false
cpp_include_cleanup_sort_after_edits = true

Niet-gebruikte berichten onderdrukken via code

Vanaf Visual Studio 2026 kunt u Include Cleanup-meldingen voor één #include-richtlijn onderdrukken door op dezelfde regel een // VCIC-Excluded-opmerking toe te voegen. Het hulpprogramma Include Cleanup stelt niet voor om die include te verwijderen, zelfs als deze ongebruikt lijkt. Geef optionele redentekst op na de markering, zodat toekomstige lezers weten waarom de insluiting er is:

#include "Header2.h" // VCIC-Excluded: needed for the ATL macros used below

U kunt ook het gloeilampmenu gebruiken om de // VCIC-Excluded opmerking toe te voegen aan een #include richtlijn. Zorg ervoor dat Include cleanup is ingeschakeld via Extra>Opties>Alle instellingen>Talen>C/C++>Code opschonen>Include cleanup omdat dit standaard is uitgeschakeld. Plaats vervolgens de muisaanwijzer op de #include lijn en selecteer Andere oplossingen>onderdrukken VCIC002 in de bron::

Schermopname van het gloeilampmenu van Visual Studio, waarin 'Suppress VCIC002 in source' wordt weergegeven.

De // VCIC-Excluded opmerking is alleen van toepassing op het #include bestand. Het instellen van cpp_include_cleanup_excluded_files in .editorconfig zorgt ervoor dat die uitsluiting geldt in elk bestand dat onder de .editorconfig valt.

Zie ook

C/C++ Overzicht van opschonen opnemen
Opschoningsberichten opnemen