Anteckning
Å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.
Visual Studio innehåller flera verktyg som hjälper dig att skriva, redigera och omstrukturera koden.
IntelliSense
IntelliSense är ett kraftfullt kodkompletteringsverktyg som föreslår symboler och kodfragment åt dig när du skriver. C++ IntelliSense i Visual Studio körs i realtid, analyserar din kodbas när du uppdaterar den och ger rekommendationer. När du skriver fler tecken begränsas listan med rekommenderade resultat.
               
              
            
Vissa symboler utelämnas automatiskt för att begränsa resultatet. När du till exempel kommer åt ett klassobjekts medlemmar utanför klassen kan du inte se privata medlemmar som standard eller skyddade medlemmar (om du inte är i kontexten för en underordnad klass). Du kan justera filtreringen med hjälp av knapparna längst ned.
När du har valt symbolen i listrutan kan du komplettera den automatiskt med Tabb, Retur eller något av de andra incheckningsteckenen (som standard: { } [ ] ( ) . , : ; + - * / % & | ^ ! = ? @ # \). Om du vill lägga till eller ta bort tecken från den här listan söker du efter "IntelliSense" i Snabbstart (Ctrl + Q) och väljer alternativet Textredigerare > C/C++ > Avancerat . Med alternativet Incheckningstecken för medlemslista kan du anpassa listan med önskade ändringar.
Alternativet Filterläge för medlemslista styr vilka typer av IntelliSense-förslag för automatisk komplettering som du ser. Som standard är den inställd på Fuzzy. Om du har en symbol med namnet MyAwesomeClass i en fuzzy-sökning kan du skriva "MAC" och hitta klassen i dina förslag för automatisk komplettering. Fuzzy-algoritmen anger ett minsta tröskelvärde som symbolerna måste uppfylla för att visas i listan. Smart filtrering visar alla symboler som innehåller delsträngar som matchar det du skrev. Prefixfiltrering söker efter strängar som börjar med det du skrev.
Mer information om C++ IntelliSense finns i Visual C++ IntelliSense och Konfigurera ett C++-projekt för IntelliSense.
IntelliCode
IntelliCode är AI-assisterad IntelliSense. Det placerar den mest sannolika kandidaten högst upp i din slutförandelista. IntelliCode-rekommendationer baseras på tusentals projekt med öppen källkod på GitHub med över 100 stjärnor vardera. I kombination med kontexten för din kod är slutförandelistan skräddarsydd för att främja vanliga metoder.
När du skriver C++, hjälper IntelliCode till när du använder populära bibliotek, till exempel C++-standardbiblioteket. Kodens kontext används för att ge de mest användbara rekommendationerna först. I följande exempel size används medlemsfunktionen ofta med sort funktionen, så den visas överst i resultatlistan.
               
              
            
I Visual Studio 2022 och Visual Studio 2019 är IntelliCode tillgängligt som en valfri komponent i arbetsbelastningen C++ Desktop Development . Om du vill se till att IntelliCode är aktivt för C++, går du till Verktygsalternativ>>IntelliCode>Allmänt och anger C++-basmodell till Aktiverad.
I Visual Studio 2017 är IntelliCode tillgängligt som ett tillägg på Visual Studio Marketplace.
Predictive IntelliSense (experimentell)
              Predictive IntelliSense är en experimentell funktion som använder kontextmedvetenhet för att begränsa antalet resultat som visas i listrutan IntelliSense. Algoritmen tillämpar typmatchning så att den endast visar de resultat som matchar den förväntade typen. I det enklaste fallet, om du skriver int x = och anropar listrutan IntelliSense, visas bara heltal eller funktioner som returnerar heltal. Den här funktionen är inaktiverad som standard eftersom den fortfarande är under utveckling. Det fungerar bäst med globala symboler; medlemsfunktioner stöds ännu inte. Du kan aktivera det genom att skriva "Predictive" i Snabbstart eller genom att gå till Verktyg>Alternativ>Textredigerare>C/C++>Experimental>Enable Predictive IntelliSense.
Om du vill åsidosätta Predictive IntelliSense och visa den längre listan trycker du på Ctrl + J. Om Predictive IntelliSense är aktiverat tar filtret Predictive bort genom att anropa Ctrl + J . Om du trycker på Ctrl + J igen tar du bort hjälpmedelsfiltret från medlemslistans resultat där det är relevant. Knappen ([+]) under listrutan IntelliSense gör samma sak som Ctrl + J. Hovra över knappen för att se knappbeskrivningsinformation om vad som visas.
               
              
            
Föregående skärmbild visar flera knappar under listrutan. Dessa aktiverar IntelliSense-filter för olika typer av resultat:
- Variabler och konstanter
- Funktionen
- Typer
- Makron
- Enums
- Namnområden
En knapp visas endast om den är relevant för din aktuella IntelliSense-session. Du ser vanligtvis inte alla knappar samtidigt.
Mall intelliSense
Mallfältet är ett användargränssnittselement som visas när markören finns i en malldefinition. Det är användbart eftersom du kan ange exempelmallargument för intellisense som visas när du redigerar malltexten. Du kan till exempel ange att ett mallargument är av typen std::vector<int>. När du sedan använder argumentet i malltexten visas medlemmarna std::vector<int>i i intellisense.
               
              
            
<Klicka på T-ikonen> för att expandera/komprimera mallfältet. Klicka på pennikonen eller dubbelklicka på mallfältet för att öppna fönstret Redigera där du anger argumenttyper för parametrarna.
               
              
            
Mallfältet kan fylla i parametertyper automatiskt baserat på instansiering av mallen i koden. Klicka på Lägg till alla befintliga instansier för att se en lista över alla konkreta argument som har använts för att instansiera mallen i hela kodbasen.
               
              
            
Ett fönster längst ned i redigeraren visar var varje instansiation hittades och vilka argumenten var. Du kan välja en instansiering för att gå till platsen i koden där instansieringen hittades.
               
              
            
              Mallfältets information är användarspecifik. Den lagras i .vs mappen och har inte allokerats till källkontrollen.
Felväxlingar och snabbkorrigeringar
Om redigeraren upptäcker problem med koden lägger den till färgade växlingspunkter under problemet. Röda squiggles anger kod som inte kompileras. Gröna squiggles indikerar andra typer av problem som fortfarande kan vara potentiellt allvarliga. Du kan öppna fönstret Fellista för att få mer information om problemen.
För vissa typer av fel och vanliga kodningsmönster erbjuder redigeraren en snabbkorrigering i form av en glödlampa som visas när du hovrar över växlingsreglaget. Klicka på nedåtpilen för att se förslagen.
I följande exempel deklarerades en vector men ingen definition hittades, så redigeraren erbjuder sig att inkludera den nödvändiga huvudfilen:
               
              
            
Redigeraren erbjuder även snabbkorrigeringar för vissa refaktoriseringsmöjligheter. Om du till exempel deklarerar en klass i en rubrikfil erbjuder Visual Studio att skapa en definition för den i en separat .cpp fil.
               
              
            
Spårning av ändringar
När du gör en ändring i en fil visas ett gult fält till vänster för att indikera att ändringar som inte har sparats har gjorts. När du sparar filen blir fältet grönt. De gröna och gula staplarna bevaras så länge dokumentet är öppet i redigeraren. De representerar de ändringar som har gjorts sedan du senast öppnade dokumentet.
               
              
            
Flytta kod
Du kan flytta kodrader upp och ned genom att välja dem, hålla ned Alt och trycka på uppåt -/nedpilen .
Infoga kodfragment
Ett kodfragment är en fördefinierad källkod. Högerklicka på en enskild punkt eller på markerad text och välj Kodfragment för att antingen infoga ett kodfragment eller omge den markerade texten med kodfragmentet. Följande bild visar de tre stegen för att omge en vald instruktion med en for-loop. De gula markerna i den sista bilden är redigerbara fält som du kommer åt med tabbtangenten. Mer information finns i kodfragment.
               
              
            
En funktion har valts. I listrutan som visas efter ett högerklicka på funktionsnamnet, Surround With... är markerat i gult. I listrutan Omge med: är kodfragmentet för en "för"-loop valt. Detta resulterar i att en for-loop placeras runt funktionen. Loopvariabeln och gränsen visas i gult för att indikera att de är redigerbara fält.
Lägg till klass
Lägg till en ny klass från Project-menyn eller från snabbmenyn i Solution Explorer:
               
              
            
Du kan också använda klassguiden för att ändra eller undersöka en befintlig klass.
               
              
            
Mer information finns i Lägga till funktioner med kodguider (C++).
Omstrukturera
Refaktoriseringar är tillgängliga under snabbåtgärdens snabbmeny eller genom att klicka på en glödlampa i redigeraren. Vissa finns också på menyn Redigera > refaktor . Dessa funktioner omfattar bland annat:
- Byt namn
- Extrahera funktion
- Implementera Pure Virtuals
- Skapa deklaration/definition
- Flytta funktionsdefinition
- Konvertera till rå strängliteral
- Ändra signatur
Kodformatsframtvingande med ClangFormat och EditorConfig
Visual Studio 2017 och senare levereras med inbyggt stöd för ClangFormat, ett populärt kodformateringsverktyg för C++ baserat på Clang/LLVM. Skriv "ClangFormat" i Snabbstart för att ange att det ska använda något av följande vanliga format:
- LLVM
- Krom
- Mozilla
- WebKit
- Visual Studio
Du kan också ange en egen .clang-format fil eller _clang-format fil för att tillämpa anpassade regler på alla kodfiler på samma nivå eller under.
Filerna kan enkelt delas via källkontroll, så du kan tillämpa kodningskonventioner i hela utvecklingsteamet.
               
              
            
Visual Studio 2017 och senare stöder även EditorConfig, som fungerar på ett liknande sätt. ClangFormat har dock fler formatalternativ än EditorConfig, inklusive regler som är specifika för C++. Med EditorConfig skapar du .editorconfig-filer och placerar dem i olika mappar i din kodbas för att ange kodformat för dessa mappar och deras undermappar. En .editorconfig-fil ersätter alla andra .editorconfig-filer i överordnade mappar och skriver över eventuella formateringsinställningar som konfigurerats via Verktygsalternativ>. Du kan ange regler för flikar jämfört med blanksteg, indragsstorlek med mera. Mer information finns i Skapa portabla, anpassade redigeringsprograminställningar med EditorConfig.
Andra formateringsalternativ
Sökrutan Snabbstart är det snabbaste sättet att hitta en inställning eller ett verktyg. Den finns på huvudmenyn. Börja bara skriva så filtrerar listan med automatisk komplettering resultatet.
               
              
            
Om du vill ange formateringsalternativ som indrag, klammerparenteser och färgläggning skriver du "C++-formatering" i fönstret Snabbstart .
               
              
            
Andra formateringsalternativ finns under Redigera>avancerat på huvudmenyn.
               
              
            
Alternativ för att aktivera och konfigurera C++-specifika redigeringsfunktioner finns under Verktyg Alternativ>>Textredigerare>C/C++. När du har valt vilket alternativ du vill ange kan du få mer hjälp genom att trycka på F1 när dialogrutan är i fokus. För allmänna alternativ för kodformatering skriver du Editor C++ i Snabbstart.
               
              
            
Experimentella funktioner, som kanske eller kanske inte ingår i en framtida version av Visual Studio, finns i dialogrutan C++ Experimental i textredigeraren . I Visual Studio 2017 och senare kan du aktivera Predictive IntelliSense i den här dialogrutan.
Se även
              Läsa och förstå C++-kod
Navigera i C++-kodbasen i Visual Studio
Samarbeta med Live Share för C++