Úprava a refaktoring kódu C++ v Visual Studio

Visual Studio poskytuje několik nástrojů, které vám pomůžou psát, upravovat a refaktorovat kód.

IntelliSense

IntelliSense je výkonný nástroj pro dokončování kódu, který navrhuje symboly a fragmenty kódu při psaní. technologie IntelliSense jazyka C++ v Visual Studio běží v reálném čase a analyzuje základ kódu při aktualizaci a poskytování doporučení. Při psaní více znaků se seznam doporučených výsledků zúží dolů.

Snímek obrazovky s rozevíracím seznamem členů C plus plus

Některé symboly jsou automaticky vynechány, aby lépe omezily výsledky. Například při přístupu ke členům objektu třídy z vnějšku třídy nebudete moci zobrazit soukromé členy ve výchozím nastavení nebo chráněných členů (Pokud nejste v kontextu podřízené třídy). Filtrování můžete upravit pomocí tlačítek v dolní části.

Když v rozevíracím seznamu vyberete symbol, můžete ho automaticky zadat pomocí tabulátoru, zadánímnebo jednoho z dalších znaků potvrzení (ve výchozím nastavení: ). Chcete-li přidat nebo odebrat znaky z tohoto seznamu, vyhledejte "IntelliSense" v panelu snadného spuštění (CTRL + Q) a vyberte Rozšířený parametr textový editor C/C++ . Možnost v seznamu členů seznam znaků potvrzení vám umožní přizpůsobit seznam požadovanými změnami.

Možnost režim filtrování seznamu členů určuje, jaké druhy návrhů automatického dokončování IntelliSense vidíte. Ve výchozím nastavení je nastavená na fuzzy. Pokud máte symbol nazvaný MyAwesomeClass, můžete při hledání přibližně zadat "Mac" a najít třídu v návrzích automatického dokončování. Nepřibližný algoritmus nastaví minimální prahovou hodnotu, kterou symboly musí splňovat, aby se v seznamu zobrazily. Inteligentní filtrování zobrazí všechny symboly obsahující podřetězce, které odpovídají zadaným hodnotám. Filtrování předpon vyhledá řetězce, které začínají zadaným textem.

Další informace o technologii IntelliSense jazyka C++ naleznete v tématu Visual C++ IntelliSense a konfigurace projektu C++ pro technologii IntelliSense.

IntelliCode

IntelliCode je technologie IntelliSense s asistencí AI. Nejpravděpodobnější kandidát v horní části seznamu dokončení. doporučení pro IntelliCode jsou založená na tisících open source projektů v GitHub každý s více než 100 hvězdičkami. V kombinaci s kontextem kódu je seznam pro doplňování přizpůsobený pro podporu běžných postupů.

Při psaní C++ vám IntelliCode pomůže při používání oblíbených knihoven, jako je standardní knihovna C++. Kontext kódu slouží jako první k poskytnutí nejužitečnější doporučení. V následujícím příkladu size je členská funkce běžně používána s sort funkcí, takže je umístěná v horní části seznamu výsledků.

Snímek obrazovky C plus plus IntelliCode

v Visual Studio 2022 a Visual Studio 2019 je IntelliCode k dispozici jako volitelná komponenta v úloze vývoj desktopových aplikací C++ . Abyste se ujistili, že IntelliCode je aktivní pro jazyk C++, použijte možnost nástrojeMožnostiIntelliCodeObecné a nastavte základní model C++ na povoleno.

v Visual Studio 2017 je IntelliCode k dispozici jako rozšíření na webu Visual Studio Marketplace.

Prediktivní technologie IntelliSense (experimentální)

Prediktivní technologie IntelliSense je experimentální funkce, která používá kontextové povědomí k omezení počtu výsledků zobrazených v rozevíracím seznamu technologie IntelliSense. Algoritmus používá porovnávání typů, takže zobrazuje pouze výsledky, které odpovídají očekávanému typu. V nejjednodušším případě, pokud zadáte int x = a vyvolá rozevírací seznam IntelliSense, se zobrazí pouze celá čísla nebo funkce vracející celá čísla. Tato funkce je ve výchozím nastavení vypnutá, protože stále probíhá vývoj. Funguje nejlépe s globálními symboly; Členské funkce ještě nejsou podporované. Můžete ji zapnout tak, že na panelu Snadné spuštění zadáte "prediktivní" nebo když přejdete na možnosti nástrojetextový editorC/C++experimentálníPovolit prediktivní IntelliSense.

Chcete-li přepsat prediktivní technologii IntelliSense a zobrazit seznam delší, stiskněte klávesovou zkratku CTRL + J. Pokud je prediktivní technologie IntelliSense zapnutá, volání CTRL + J odebere prediktivní filtr. Stisknutím kombinace kláves CTRL + J znovu odeberete filtr dostupnosti z výsledků seznamu členů, kde to bude relevantní. Tlačítko ([+]) v rozevíracím seznamu IntelliSense má stejný úkol jako CTRL + J. Když najedete myší na tlačítko, zobrazí se informace o tom, co se zobrazuje.

Snímek obrazovky C plus a prediktivní IntelliSense

Předchozí snímek obrazovky ukazuje několik tlačítek pod rozevíracím seznamem. Tyto funkce umožňují filtry IntelliSense pro různé druhy výsledků:

  • Proměnné a konstanty
  • Funkce
  • Typy
  • Makra
  • Výčty
  • Obory názvů

Tlačítko se zobrazí pouze v případě, že je relevantní pro vaši aktuální relaci technologie IntelliSense. Obvykle se všechna tlačítka nezobrazí současně.

IntelliSense šablony

Když je kurzor uvnitř definice šablony, zobrazí se panel šablony , který umožňuje poskytnout ukázkové argumenty šablony pro technologii IntelliSense.

Snímek obrazovky C plus a šablony IntelliSense zobrazí existující instance.

Kliknutím na ikonu T > rozbalíte nebo sbalíte >. Kliknutím na ikonu tužky nebo dvojitým kliknutím na panel šablon otevřete okno Upravit .

Snímek obrazovky C plus a šablony IntelliSense

Úpravy, které provedete v okně, se aplikují přímo na zdrojový kód, abyste viděli účinky v reálném čase.

Panel šablon může automaticky naplnit kandidáty na základě vytváření instancí v kódu. Kliknutím na Přidat všechny existující instance zobrazíte seznam všech konkrétních argumentů, které byly použity k vytvoření instance šablony v rámci vašeho základu kódu.

Snímek obrazovky se seznamem výsledků technologie IntelliSense pro C plus plus

Okno v dolní části editoru ukazuje, kde byla nalezena každá instance a jaké argumenty byly.

Snímek obrazovky C plus a šablony mapa vytváření instancí IntelliSense

Informace na panelu šablon se považují za specifické pro uživatele. Je uložen ve složce. vs a není svěřen do správy zdrojových kódů.

Chyby vlnovkou a rychlé opravy

Pokud editor detekuje problémy s vaším kódem, přidá se v rámci problému barevné vlnovky. Červené vlnovky označují kód, který se nebude kompilovat. Zelené vlnovky označují jiné druhy problémů, které mohou být stále závažné. Chcete-li získat další informace o problémech, můžete otevřít okno Seznam chyb .

V případě některých druhů chyb a také běžných vzorů kódování bude editor nabízet rychlou opravu ve formě žárovky, která se zobrazí, když najedete myší na vlnovku. Kliknutím na šipku dolů zobrazíte návrhy.

V následujícím příkladu vector byla deklarována, ale nebyla nalezena žádná definice, takže Editor nabízí zahrnutí potřebného hlavičkového souboru:

Snímek obrazovky znázorňující vlnovky chyb a rychlou opravu, kterou Editor nabízí

Editor také nabízí rychlé opravy pro některé příležitosti refaktoringu. například pokud deklarujete třídu v hlavičkovém souboru, Visual Studio bude nabízet vytvoření definice v samostatném souboru. cpp.

Snímek obrazovky s rychlou opravou s volbou vytvořit definici iterátoru trasy kanálu v kanálech – zvýrazní se možnost.

Sledování změn

Pokaždé, když provedete změnu souboru, zobrazí se na levé straně žlutý pruh, který indikuje, že byly provedeny neuložené změny. Po uložení souboru se změní pruh na zelenou. Zelené a žluté pruhy jsou zachovány, dokud je dokument otevřen v editoru. Představují změny, které byly provedeny od posledního otevření dokumentu.

Snímek obrazovky C plus plus a sledování změn.

Přesunout kód

Řádky kódu můžete přesunout nahoru a dolů tak, že je vyberete, podržíte klávesu Alt a stisknete klávesy se šipkami nahoru/dolů .

Vložit fragmenty

Fragment kódu je předdefinovaná část zdrojového kódu. Kliknutím pravým tlačítkem myši na jeden nebo vybraný text buď vložte fragment nebo Obklopte vybraný text pomocí fragmentu. Následující ilustrace znázorňuje tři kroky pro obklopení vybraného příkazu pomocí smyčky for. Žluté světla v konečném obrázku jsou upravitelná pole, ke kterým přistupujete pomocí klávesy TAB. Další informace naleznete v tématu fragmenty kódu.

Snímek obrazovky C plus a vložení ovládacího prvku rozevíracího seznamu pro vložení fragmentu

Přidat třídu

přidejte novou třídu z nabídky Project nebo z kontextové nabídky v Průzkumník řešení:

Přidejte novou třídu v C plus plus.

Můžete také použít Průvodce třídou pro úpravu nebo přezkoumání existující třídy.

Průvodce C plus třídou.

Další informace najdete v tématu Přidání funkce pomocí průvodců kódem (C++).

Refaktoring

Refaktoring je k dispozici v místní nabídce Rychlá akce nebo kliknutím na žárovku v editoru. Některé najdete také v nabídce Upravit refaktoring. Patří k nim:

Vynucení stylu kódu pomocí ClangFormat a EditorConfig

Visual Studio 2017 a novější se dodává s integrovanou podporou ClangFormat,oblíbeného nástroje pro formátování kódu pro C++ založeného na Clang/LLVM. Do pole Snadné spuštění "ClangFormat", abyste ho nastavili na použití jednoho z těchto běžných formátů:

  • LLVM
  • Google
  • Chromium
  • Mozilla
  • Webkit
  • Visual Studio

Můžete také zadat vlastní soubor ve formátu .clang nebo _clang, který použije vlastní pravidla pro všechny soubory kódu na stejné nebo nižší úrovni.

Soubory je možné snadno sdílet prostřednictvím správy zdrojového kódu, takže můžete vynutit konvence kódování v celém vývojovém týmu.

Snímek obrazovky s C plus a formátem Clang

Visual Studio 2017 a novější také podporuje EditorConfig,který funguje podobným způsobem. Formát ClangFormat má ale více možností stylu než EditorConfig, včetně pravidel, která jsou specifická pro jazyk C++. EditorConfig umožňujevytvořit soubory .editorconfig a umístit je do různých složek vašeho kódu a určit styly kódu pro tyto složky a jejich podsložky. Soubor .editorconfig nahrazuje všechny ostatní soubory .editorconfig v nadřazených složkách a přepíše veškeré nastavení formátování nakonfigurované prostřednictvím nástrojeMožnosti. Můžete nastavit pravidla pro tabulátory vs. mezery, velikost odsazení a další. Další informace najdete v tématu Vytvoření přenositelného vlastního nastavení editoru pomocí EditorConfig.

Další možnosti formátování

Vyhledávací Snadné spuštění nabízí nejrychlejší způsob, jak najít nastavení nebo nástroj. Nachází se v hlavní nabídce. Stačí začít psát a seznam automatického dokončování bude filtrovat výsledky.

Snímek obrazovky Visual Studio Snadné spuštění

Pokud chcete nastavit možnosti formátování, jako jsou odsazení, dokončování závorek a zabarvení, zadejte do okna Snadné spuštění C++.

Snímek obrazovky s možnostmi formátování C++

Další možnosti formátování najdete v části Upravitupřesnit v hlavní nabídce.

Snímek obrazovky s rozšířenými možnostmi úprav jazyka C++

Možnosti pro povolení a konfiguraci funkcí úprav specifických pro jazyk C++ najdete v části Nástroje MožnostiTextový editorC/C++. Po výběru možnosti, kterou chcete nastavit, získáte další nápovědu stisknutím klávesy F1, když je dialogové okno v fokusu. Obecné možnosti formátování kódu můžete zobrazit tak, že Editor C++ do Editor C++.

Snímek obrazovky Visual Studio Tools  možnosti editoru dialogového okna Možnosti

Experimentální funkce, které mohou nebo nemusí být zahrnuté v budoucí verzi Visual Studio, najdete v experimentálním dialogovém okně Textového editoru C++. V Visual Studio 2017 a novějších verzích můžete v tomto dialogovém okně povolit prediktivní technologii IntelliSense.

Viz také

Čtení a pochopení kódu C++Procházení základu kódu C++ v Visual Studiospolupráce s Live Share pro C++