Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Visual Studio biedt verschillende hulpprogramma's waarmee u uw code kunt schrijven, bewerken en herstructureren.
IntelliSense
IntelliSense is een krachtig hulpprogramma voor het voltooien van code dat symbolen en codefragmenten voor u voorstelt terwijl u typt. C++ IntelliSense in Visual Studio wordt in realtime uitgevoerd, waarbij uw codebase wordt geanalyseerd terwijl u deze bijwerkt en aanbevelingen doet. Naarmate u meer tekens typt, wordt de lijst met aanbevolen resultaten beperkt.
Sommige symbolen worden automatisch weggelaten om de resultaten te beperken. Als u bijvoorbeeld toegang krijgt tot de leden van een klasseobject van buiten de klas, kunt u geen privéleden standaard zien of beveiligde leden zien (als u zich niet in de context van een onderliggende klasse bevindt). U kunt het filteren aanpassen met behulp van de knoppen onderaan.
Nadat u het symbool in de vervolgkeuzelijst hebt gekozen, kunt u het automatisch aanvullen met Tab, Enter of een van de andere doorvoertekens (standaard: { } [ ] ( ) . , : ; + - * / % & | ^ ! = ? @ # \). Als u tekens wilt toevoegen aan of verwijderen uit deze lijst, zoekt u in Snel starten (Ctrl + Q) naar 'IntelliSense' en kiest u de optie Geavanceerd in de teksteditor > C/C++>. Met de optie Doorvoeringstekens voor ledenlijst kunt u de lijst aanpassen met de gewenste wijzigingen.
Met de optie Filtermodus voor ledenlijsten bepaalt u welke typen suggesties voor automatisch aanvullen in IntelliSense worden weergegeven. Deze is standaard ingesteld op Fuzzy. Als u in een fuzzy zoekopdracht een symbool met de naam MyAwesomeClass hebt, kunt u 'MAC' typen en de klas zoeken in uw suggesties voor automatisch aanvullen. Met het fuzzy algoritme wordt een minimumdrempel ingesteld waaraan symbolen moeten voldoen om weer te geven in de lijst. Met slim filteren worden alle symbolen met subtekenreeksen weergegeven die overeenkomen met wat u hebt getypt. Met voorvoegselfilters wordt gezocht naar tekenreeksen die beginnen met wat u hebt getypt.
Zie Visual Studio C++ IntelliSense en een C++-project configureren voor IntelliSense voor meer informatie over C++ IntelliSense.
IntelliCode
IntelliCode is ai-ondersteunde IntelliSense. Het plaatst de meest waarschijnlijke kandidaat bovenaan uw voltooiingslijst. Aanbevelingen voor IntelliCode zijn gebaseerd op duizenden opensource-projecten op GitHub met elk meer dan 100 sterren. In combinatie met de context van uw code wordt de voltooiingslijst aangepast om algemene procedures te bevorderen.
Bij het schrijven van C++, helpt IntelliCode bij het gebruik van populaire bibliotheken, zoals de C++-standaardbibliotheek. De context van uw code wordt gebruikt om eerst de meest nuttige aanbevelingen te geven. In het volgende voorbeeld wordt de size lidfunctie vaak gebruikt met de sort functie, zodat deze boven aan de lijst met resultaten wordt weergegeven.
In Visual Studio 2022 en Visual Studio 2019 is IntelliCode beschikbaar als een optioneel onderdeel in de workload C++ Desktop Development . Als u ervoor wilt zorgen dat IntelliCode actief is voor C++, gaat u naar Extra>Opties>IntelliCode>Algemeen en stelt u het C++-basismodel in op Ingeschakeld.
In Visual Studio 2017 is IntelliCode beschikbaar als een extensie in Visual Studio Marketplace.
Voorspellende IntelliSense (experimenteel)
Predictive IntelliSense is een experimentele functie die contextafhankelijke kennis gebruikt om het aantal resultaten te beperken dat wordt weergegeven in de vervolgkeuzelijst IntelliSense. Het algoritme past typekoppeling toe, zodat alleen de resultaten worden weergegeven die overeenkomen met het verwachte type. Als u in het eenvoudigste geval de IntelliSense-vervolgkeuzelijst typt int x = en aanroept, ziet u alleen gehele getallen of functies die gehele getallen retourneren. Deze functie is standaard uitgeschakeld omdat deze nog in ontwikkeling is. Het werkt het beste met globale symbolen; lidfuncties worden nog niet ondersteund. U kunt deze functie inschakelen door 'Voorspellend' te typen in Snel starten of door naar Tools Options>>Text Editor>C/C++>Experimenteel>inschakelen predictive IntelliSense te gaan.
Als u Predictive IntelliSense wilt overschrijven en de langere lijst wilt weergeven, drukt u op Ctrl+J. Als Predictive IntelliSense is ingeschakeld, wordt het voorspellende filter verwijderd door Ctrl+J aan te roepen. Als u nogmaals op Ctrl+J drukt, wordt het toegankelijkheidsfilter verwijderd uit de resultaten van de ledenlijst, indien relevant. De knop ([+]) onder de vervolgkeuzelijst IntelliSense doet hetzelfde als Ctrl + J. Beweeg de muisaanwijzer over de knop om knopinfo weer te geven over wat er wordt weergegeven.
In de voorgaande schermopname ziet u verschillende knoppen in de vervolgkeuzelijst. Hiermee schakelt u IntelliSense-filters in voor verschillende soorten resultaten:
- Variabelen en constanten
- Functies
- Typen
- Macros
- Enums
- Naamruimten
Er wordt alleen een knop weergegeven als deze relevant is voor uw huidige IntelliSense-sessie. Normaal gesproken ziet u niet alle knoppen tegelijk.
Sjabloon IntelliSense
De sjabloonbalk is een UI-element dat wordt weergegeven wanneer de cursor zich in een sjabloondefinitie bevindt. Dit is handig omdat u voorbeeldsjabloonargumenten kunt opgeven voor intellisense die worden weergegeven wanneer u de hoofdtekst van de sjabloon bewerkt. U kunt bijvoorbeeld opgeven dat een sjabloonargument van het type std::vector<int>is. Wanneer u dat argument vervolgens in de hoofdtekst van de sjabloon gebruikt, ziet u de leden van std::vector<int>intellisense.
Klik op het <T-pictogram> om de sjabloonbalk uit te vouwen/samen te vouwen. Klik op het potloodpictogram of dubbelklik op de sjabloonbalk om het venster Bewerken te openen waarin u argumenttypen voor de parameters opgeeft.
De sjabloonbalk kan parametertypen automatisch vullen op basis van instantiëringen van de sjabloon in uw code. Klik op Alle bestaande instantiëringen toevoegen om een lijst weer te geven met alle concrete argumenten die zijn gebruikt om de sjabloon in uw codebasis te instantiëren.
In een venster onder aan de editor ziet u waar elke instantie is gevonden en wat de argumenten zijn. U kunt een instantiëring selecteren om naar de locatie in uw code te gaan waar die instantiering is gevonden.
Sjabloonbalkgegevens zijn gebruikersspecifiek. Het wordt opgeslagen in de .vs map en wordt niet doorgevoerd in broncodebeheer.
Foutekhoorns en snelle oplossingen
Als de editor problemen met uw code detecteert, worden er gekleurde golven toegevoegd onder het probleem. Rode golven geven code aan die niet wordt gecompileerd. Groene kronkelen geven andere soorten problemen aan die mogelijk nog steeds ernstig kunnen zijn. U kunt het venster Foutenlijst openen voor meer informatie over de problemen.
Voor bepaalde soorten fouten en veelvoorkomende coderingspatronen biedt de editor een snelle oplossing in de vorm van een gloeilamp die wordt weergegeven wanneer u de muisaanwijzer over de golvende wijzer beweegt. Klik op de pijl-omlaag om de suggesties weer te geven.
In het volgende voorbeeld is een vector gedeclareerd maar er is geen definitie gevonden, dus biedt de editor aan om het benodigde headerbestand op te nemen:
De editor biedt ook Snelle oplossingen voor een aantal herstructureringsmogelijkheden. Als u bijvoorbeeld een klasse in een headerbestand declareert, biedt Visual Studio aan om er een definitie voor te maken in een afzonderlijk .cpp bestand.
Wijzigingen bijhouden
Wanneer u een wijziging aanbrengt in een bestand, wordt links een gele balk weergegeven om aan te geven dat er niet-opgeslagen wijzigingen zijn aangebracht. Wanneer u het bestand opslaat, wordt de balk groen. De groene en gele balken blijven behouden zolang het document in de editor is geopend. Ze vertegenwoordigen de wijzigingen die zijn aangebracht sinds u het document voor het laatst hebt geopend.
Code verplaatsen
U kunt regels met code omhoog en omlaag verplaatsen door ze te selecteren, Alt ingedrukt te houden en op de pijl-omhoog /pijl-omlaag te drukken.
Fragmenten invoegen
Een fragment is een vooraf gedefinieerd stuk broncode. Klik met de rechtermuisknop op een enkel punt of op geselecteerde tekst en selecteer Fragment om een fragment in te voegen of om de geselecteerde tekst te plaatsen met het fragment. In de volgende afbeelding ziet u de drie stappen om een geselecteerde instructie te omringen met een for-lus. De gele markeringen in de uiteindelijke afbeelding zijn bewerkbare velden die u opent met de tabtoets. Zie codefragmentenvoor meer informatie.
Er is een functie geselecteerd. In de vervolgkeuzelijst die wordt weergegeven na een rechtermuisknop op de naam van de functie, Surround With... is geel gemarkeerd. In de vervolgkeuzelijst Surround With: wordt het fragment voor een 'for'-lus geselecteerd. Dit resulteert in het plaatsen van een for-lus rond de functie. De lusvariabele en -limiet worden geel weergegeven om aan te geven dat ze bewerkbare velden zijn.
Klasse toevoegen
Voeg een nieuwe klasse toe vanuit het menu Project of vanuit het contextmenu in Solution Explorer:
U kunt ook de wizard Klasse gebruiken om een bestaande klasse te wijzigen of te onderzoeken.
Zie Functionaliteit toevoegen met codewizards (C++) voor meer informatie.
Herstructureren
Herstructureringen zijn beschikbaar in het contextmenu Snelle actie of door in de editor op een gloeilamp te klikken. Sommige vindt u ook in het menu Herstructureren bewerken>. Deze functies zijn onder andere:
- naam van wijzigen
- Functie extraheren
- Pure virtuals implementeren
- Declaratie/definitie maken
- Functiedefinitie verplaatsen
- Converteren naar letterlijke onbewerkte tekenreeks
- Handtekening wijzigen
Afdwingen van codestijlen met ClangFormat en EditorConfig
Visual Studio 2017 en hoger wordt geleverd met ingebouwde ondersteuning voor ClangFormat, een populair hulpprogramma voor codeopmaak voor C++ op basis van Clang/LLVM. Typ 'ClangFormat' in Snel starten om deze in te stellen op een van deze veelgebruikte indelingen:
- LLVM
- Chroom
- Mozilla
- WebKit
- Visual Studio
U kunt ook uw eigen .clang-format of _clang-format bestand opgeven om aangepaste regels toe te passen op alle codebestanden op hetzelfde niveau of lager.
De bestanden kunnen eenvoudig worden gedeeld via broncodebeheer, zodat u coderingsconventies kunt afdwingen in uw hele ontwikkelteam.
Visual Studio 2017 en hoger ondersteunt ook EditorConfig, dat op een vergelijkbare manier werkt. ClangFormat heeft echter meer stijlopties dan EditorConfig, inclusief regels die specifiek zijn voor C++. Met EditorConfig maakt u .editorconfig-bestanden en plaatst u deze in verschillende mappen van uw codebase om codestijlen voor die mappen en de bijbehorende submappen op te geven. Een .editorconfig-bestand vervangt alle andere .editorconfig-bestanden in bovenliggende mappen en overschrijft alle opmaakinstellingen die zijn geconfigureerd viaExtra-opties>. U kunt regels instellen voor tabs versus spaties, inspringingsgrootte en meer. Zie Draagbare, aangepaste editorinstellingen maken met EditorConfig voor meer informatie.
Andere opmaakopties
Het zoekvak Snel starten biedt de snelste manier om een instelling of hulpprogramma te vinden. Het bevindt zich in het hoofdmenu. Begin te typen en de lijst voor automatisch aanvullen filtert de resultaten.
Als u opmaakopties wilt instellen, zoals inspringingen, accolades en kleuren, typt u 'C++-opmaak' in het venster Snel starten .
Andere opmaakopties vindt u onder Geavanceerd bewerken> in het hoofdmenu.
Opties voor het inschakelen en configureren van C++-specifieke bewerkingsfuncties bevinden zich onder Extra Opties>>Teksteditor>C/C++. Nadat u hebt gekozen welke optie u wilt instellen, kunt u meer hulp krijgen door op F1 te drukken wanneer het dialoogvenster de focus heeft. Voor algemene opties voor het opmaken van code typt u Editor C++ in Snel starten.
Experimentele functies, die al dan niet zijn opgenomen in een toekomstige versie van Visual Studio, zijn te vinden in het dialoogvenster C++ Experimenteel in teksteditor . In Visual Studio 2017 en hoger kunt u Predictive IntelliSense inschakelen in dit dialoogvenster.
Zie ook
C++-code
lezen en begrijpenNavigeren in uw C++-codebasis in Visual Studio
Samenwerken met Live Share voor C++