Megosztás a következőn keresztül:


C++ kód szerkesztése és újrabontása a Visual Studióban

A Visual Studio számos eszközt kínál a kód írásához, szerkesztéséhez és újrabontásához.

IntelliSense

Az IntelliSense egy hatékony kódkiegészítési eszköz, amely szimbólumokat és kódrészleteket javasol beíráskor. A C++ IntelliSense a Visual Studióban valós időben fut, a kódbázist a frissítés során elemzi, és javaslatokat tesz. Ha több karaktert ír be, az ajánlott találatok listája le lesz szűkítve.

Képernyőkép a C plusz taglista legördülő listáról, amelyen a sztringhez elérhető metódusok láthatók, például hozzáfűzés, hozzárendelés stb.

Egyes szimbólumok automatikusan ki vannak hagyva az eredmények szűkítéséhez. Ha például egy osztályobjektum tagjait az osztályon kívülről éri el, alapértelmezés szerint nem láthatja a privát tagokat vagy a védett tagokat (ha nem gyermekosztály kontextusában van). A szűrést az alsó gombokkal módosíthatja.

Miután kiválasztotta a szimbólumot a legördülő listából, automatikusan kitöltheti a Tab, Enter vagy a többi véglegesítési karakter egyikével (alapértelmezés szerint: { } [ ] ( ) . , : ; + - * / % & | ^ ! = ? @ # \). Ha karaktereket szeretne hozzáadni vagy eltávolítani a listából, keressen rá az "IntelliSense" kifejezésre a Gyorsindítóban (Ctrl + Q), és válassza a Szövegszerkesztő > C/C++ > Speciális lehetőséget. A Taglista véglegesítési karakter beállításával testre szabhatja a listát a kívánt módosításokkal.

A Taglista szűrő mód beállítás szabályozza, hogy milyen típusú IntelliSense automatikus kiegészítési javaslatokat lát. Alapértelmezés szerint Fuzzy értékre van állítva. Egy homályos keresésben, ha van egy MyAwesomeClass nevű szimbóluma, beírhatja a "MAC" szót, és megtalálhatja az osztályt az automatikus kiegészítési javaslatokban. A homályos algoritmus beállít egy minimális küszöbértéket, amelyet a szimbólumoknak teljesíteniük kell ahhoz, hogy megjelenjenek a listában. Az intelligens szűrés megjeleníti az összes olyan szimbólumot, amely a beírt értéknek megfelelő részszűrést tartalmaz. Az előtagszűrés olyan sztringeket keres, amelyek a beírt szöveggel kezdődnek.

További információ a C++ IntelliSense szolgáltatásról: Visual Studio C++ IntelliSense és C++ projekt konfigurálása az IntelliSense-hez.

IntelliCode

Az IntelliCode az AI által támogatott IntelliSense. Ezzel a legvalószínűbb jelölt kerül a befejezési lista tetejére. Az IntelliCode-javaslatok több ezer nyílt forráskódú projekten alapulnak a GitHubon, amelyek mindegyike több mint 100 csillaggal működik. A kód kontextusával kombinálva a befejezési lista a gyakori eljárások előmozdítása érdekében van kialakítva.

C++ írása esetén az IntelliCode segít olyan népszerű kódtárak használatakor, mint a C++ Standard kódtár. A kód kontextusa először a legkedvesebb javaslatok megadására szolgál. Az alábbi példában a size tagfüggvényt gyakran használják a sort függvényhez, így az az eredménylista tetejére kerül.

Képernyőkép a C és az IntelliCode legördülő listáról, amely a vektorosztály azon tagjait jeleníti meg, amelyek a kódban leggyakrabban használatosak.

A Visual Studio 2022-ben és a Visual Studio 2019-ben az IntelliCode választható összetevőként érhető el a C++ asztali fejlesztési számítási feladatban. Ha meg szeretné győződni arról, hogy az IntelliCode aktív a C++-ban, lépjen az Eszközök>beállításai>IntelliCode>General elemre, és állítsa a C++ alapmodelltengedélyezve.

A Visual Studio 2017-ben az IntelliCode bővítményként érhető el a Visual Studio Marketplace-en.

Prediktív IntelliSense (kísérleti)

A prediktív IntelliSense egy kísérleti funkció, amely környezetfüggő tudatossággal korlátozza az IntelliSense legördülő listában megjelenő eredmények számát. Az algoritmus típusegyezést alkalmaz, így csak a várt típusnak megfelelő eredményeket jeleníti meg. A legegyszerűbb esetben, ha beírja int x = és meghívja az IntelliSense legördülő menüt, csak egész számokat vagy függvényeket fog látni, amelyek egész számokat ad vissza. Ez a funkció alapértelmezés szerint ki van kapcsolva, mert még fejlesztés alatt áll. A legjobban a globális szimbólumokkal működik; a tagfüggvények még nem támogatottak. Bekapcsolhatja a gyorsindításban a "Prediktív" szöveget, vagy az Eszközök>beállításai>szövegszerkesztő>C/C++>Kísérleti>engedélyező prediktív IntelliSense lehetőséget.

A prediktív IntelliSense felülbírálásához és a hosszabb lista megjelenítéséhez nyomja le a Ctrl + J billentyűkombinációt. Ha a Prediktív IntelliSense be van kapcsolva, a Ctrl + J billentyűkombináció meghívásával eltávolítja a prediktív szűrőt. A Ctrl + J billentyűkombináció ismételt lenyomásával eltávolítja az akadálymentességi szűrőt a taglista eredményeiből, ahol releváns. Az IntelliSense legördülő lista ([+]) gombja ugyanazt teszi, mint a Ctrl + J billentyűkombináció. Vigye az egérmutatót a gombra a megjelenő elemleírások megjelenítéséhez.

A C plus plus predictive IntelliSense képernyőképe.

Az előző képernyőképen több gomb látható a legördülő lista alatt. Ezek lehetővé teszik az IntelliSense-szűrők különböző típusú eredményekhez való használatát:

  • Változók és állandók
  • Functions
  • Types
  • Makrók
  • Enumok
  • Namespaces

A gomb csak akkor jelenik meg, ha az aktuális IntelliSense-munkamenet szempontjából releváns. Általában nem látja egyszerre az összes gombot.

Sablon IntelliSense

A sablonsáv egy felhasználói felületi elem, amely akkor jelenik meg, amikor a kurzor egy sablondefiníción van. Ez azért hasznos, mert a sablon törzsének szerkesztésekor megjelenő intelliense mintasablonargumentumokat is megadhat. Megadhatja például, hogy egy sablonargumentum típusa legyen std::vector<int>. Ezután, ha ezt az argumentumot használja a sablon törzsében, látni fogja az intellisense tagjait std::vector<int>.

Képernyőkép a sablonsávról, amelyen az Összes meglévő példány hozzáadása lehetőség van kiemelve.

Kattintson a T< ikonra a>sablonsáv kibontásához/összecsukásához. Kattintson a ceruza ikonra, vagy kattintson duplán a sablonsávra a Szerkesztés ablak megnyitásához, ahol argumentumtípusokat adhat meg a paraméterekhez.

Képernyőkép a sablonsáv szerkesztési felületéről, ahol minden sablonparaméterhez beír egy típust.

A sablonsáv automatikusan kitöltheti a paramétertípusokat a sablon példányai alapján a kódban. Kattintson az Összes meglévő példány hozzáadása elemre az összes olyan konkrét argumentum listájának megtekintéséhez, amelyek a sablonnak a kódbázisban való példányosítására szolgálnak.

Képernyőkép az IntelliSense-sablon eredményeiről, amelyek a C sablonparaméter példányosításához használt különböző típusokat sorolják fel, például C = AmbientLight, C = Gyertya és mások.

A szerkesztő alján egy ablak mutatja, hogy hol találhatók az egyes példányok, és milyen argumentumai voltak. Kiválaszthat egy példányt, hogy a kód azon helyére lépjen, ahol a példányt megtalálták.

Képernyőkép a sablon példányainak listájáról a kódban. A lista a példány, a fájl, a hely és az argumentumok listáját tartalmazza.

A sablonsáv adatai felhasználóspecifikusak. A rendszer a .vs mappában tárolja, és nem kötelezi el magát a forráskezelés mellett.

Hibalehetőségek és gyorsjavítások

Ha a szerkesztő észleli a kóddal kapcsolatos problémákat, színes hullámos váltógombokat fog hozzáadni a probléma alá. A piros hullámos kapcsolók olyan kódot jelölnek, amely nem fordítható le. A zöld hullámos kapcsolók más típusú problémákat jeleznek, amelyek még mindig súlyosak lehetnek. A hibalista ablak megnyitásával további információt kaphat a problémákról.

Bizonyos típusú hibák és gyakori kódolási minták esetén a szerkesztő egy gyorsjavítást kínál egy villanykörte formájában, amely akkor jelenik meg, amikor rámutat a hullámos váltóra. A javaslatok megtekintéséhez kattintson a lefelé mutató nyílra.

A következő példában deklaráltak egy vector deklarált definíciót, ezért a szerkesztő felajánlja, hogy tartalmazza a szükséges fejlécfájlt:

Képernyőkép egy hibáról és a #include vektorra javasolt gyorsjavításról.

A szerkesztő gyorsjavításokat is kínál néhány újrabontási lehetőséghez. Ha például egy osztályt deklarál egy fejlécfájlban, a Visual Studio felajánlja, hogy létrehoz egy definíciót egy külön .cpp fájlban.

Képernyőkép a gyorsjavításról a Csatornaútvonal-iterátor létrehozási definíciójával a C P P csatornabeállítás kiemelésével.

Változások követése

Amikor módosít egy fájlt, megjelenik egy sárga sáv a bal oldalon, amely jelzi, hogy a nem mentett módosítások történtek. A fájl mentésekor a sáv zöldre vált. A zöld és sárga sávok mindaddig megmaradnak, amíg a dokumentum meg van nyitva a szerkesztőben. Ezek a dokumentum legutóbbi megnyitása óta végrehajtott módosításokat jelölik.

A C és a változáskövetés képernyőképe. A bal oldalon egy sárga sáv jelenik meg, amely a változásokat jelzi.

Kód áthelyezése

A kódsorokat felfelé és lefelé is mozgathatja, ha kijelöli őket, lenyomja az Alt billentyűt, és lenyomja a Fel/Le nyílbillentyűket.

Kódrészletek beszúrása

A kódrészletek egy előre definiált forráskódrészletek. Kattintson a jobb gombbal egy pontra vagy a kijelölt szövegre, és válassza a Kódrészlet lehetőséget egy kódrészlet beszúrásához, vagy a kijelölt szöveg körülvéve a kódrészlettel. Az alábbi ábra azt a három lépést mutatja be, amellyel körbeveheti a kijelölt utasítást egy ciklussal. A végső képen a sárga kiemelések szerkeszthető mezők, amelyeket a tabulátorbillentyűvel érhet el. További információ: Kódrészletek.

Képernyőkép a Kódrészlet beszúrása legördülő vezérlőről.

Ki van jelölve egy függvény. A függvény nevére való jobb kattintás után megjelenő legördülő menüben a Surround With... sárga színnel van kiemelve. A Surround With: legördülő listában a "for" ciklus kódrészlete van kiválasztva. Ez egy ciklust eredményez a függvény körül. A ciklusváltozó és a korlát sárga színnel jelenik meg, ami azt jelzi, hogy szerkeszthető mezők.

Osztály hozzáadása

Adjon hozzá egy új osztályt a Project menüből vagy a Megoldáskezelő helyi menüjéből:

Képernyőkép az Új osztály hozzáadása párbeszédpanelről. Mezőket tartalmaz az osztálynévhez, az akadálymentességhez, a deklaráláshoz és a megvalósításhoz szükséges fájlokhoz stb.

Az Osztályvarázslóval is módosíthatja vagy megvizsgálhatja a meglévő osztályokat.

Képernyőkép az Osztályvarázslóról, amely metódusok, tagváltozók és még sok más beállítási lehetőséggel rendelkezik.

További információ: Funkciók hozzáadása kódvarázslókkal (C++).

Refaktorálás

Az újrabontások a Gyorsművelet helyi menüben vagy a szerkesztőben található villanykörte ikonra kattintva érhetők el. Néhány az Újrabontás szerkesztése > menüben is megtalálható. Ezek a funkciók a következők:

Kódstílus-kényszerítés a ClangFormat és a EditorConfig használatával

A Visual Studio 2017 és újabb verziói beépített támogatást nyújtanak a ClangFormathoz, amely a C++ népszerű kódformázási segédprogramja a Clang/LLVM-en alapul. Írja be a "ClangFormat" kifejezést a Fontos rovatok mezőbe, és állítsa be az alábbi gyakori formátumok egyikét:

  • LLVM
  • Google
  • Króm
  • Mozilla
  • WebKit
  • Visual Studio

Saját vagy .clang-format fájlokat is megadhat_clang-format, hogy egyéni szabályokat alkalmazzanak az összes azonos szintű vagy alacsonyabb szintű kódfájlra.

A fájlok könnyen megoszthatók a forrásvezérlőn keresztül, így a kódolási konvenciók az egész fejlesztői csapatra érvényesek.

Képernyőkép egy .clang formátumú fájlról, amelynek számos lehetősége van, például az oszlopkorlát, a behúzás szélessége, a lapszélesség stb.

A Visual Studio 2017 és újabb verziók szintén támogatják a EditorConfigot, amely hasonló módon működik. A ClangFormat azonban több stíluslehetőséget kínál, mint a EditorConfig, beleértve a C++-ra jellemző szabályokat is. A Szerkesztőkonfigurációval.editorconfig fájlokat hozhat létre, és a kódbázis különböző mappáiba helyezheti őket a mappák és almappáik kódstílusainak megadásához. A .editorconfig fájl felülírja a szülőmappákban lévő többi .editorconfig fájlt, és felülírja az Eszközök>beállításaival konfigurált formázási beállításokat. A tabulátorok és szóközök, behúzási méret stb. szabályai beállíthatók. További információ: Hordozható, egyéni szerkesztőbeállítások létrehozása a Szerkesztőkonfigurációval.

Egyéb formázási beállítások

A gyorsindítási keresőmezővel a leggyorsabban megkeresheti a beállításokat vagy eszközöket. A főmenüben található. Kezdjen el gépelni, és az automatikus kiegészítési lista szűri az eredményeket.

Képernyőkép a Fontos rovatok keresőmezőről. A C és a speciális kereséseket jeleníti meg, amelyek a szövegszerkesztő beállításait eredményezik.

A formázási beállítások, például a behúzás, a kapcsos kitöltés és a színezés beállításához írja be a "C++ Formázás" szöveget a Fontos rovatok ablakba.

Képernyőkép a C++ formázási lehetőségekről, például arról, hogy a lap beírásakor automatikusan be kell-e húzni.

A főmenüSpeciális> területén további formázási beállítások találhatók.

Képernyőkép a speciális szerkesztési lehetőségekről, például a szabad terület megtekintéséről, a szótörésről, a kijelölés megjegyzésének megadásáról, a sorbehúzás növeléséről és egyebekről.

A C++-specifikus szerkesztési funkciók engedélyezésére és konfigurálására szolgáló beállítások az Eszközök>beállításai>szövegszerkesztő>C/C++ területen találhatók. Miután kiválasztotta a beállítani kívánt beállítást, további segítséget kaphat az F1 billentyű lenyomásával, amikor a párbeszédpanel a fókuszban van. Az általános kódformázási beállításokhoz írja be Editor C++ a Fontos rovatok mezőbe.

Képernyőkép a Kijelölt Visual Studio menüelemről, valamint a Beállítások menüelem kiemelésével.

A Visual Studio jövőbeli verziójában esetleg nem szereplő kísérleti funkciók a Szövegszerkesztő C++ Kísérleti párbeszédpanelén találhatók. A Visual Studio 2017-ben és újabb verzióiban ezen a párbeszédpanelen engedélyezheti a Prediktív IntelliSense funkciót.

Lásd még

C++ kód
olvasása és értelmezéseNavigálás a C++ kódbázisban a Visual Studióban
Együttműködés a C++ élő megosztásával