ist jetzt verfügbar! Lesen Sie über die neuen Funktionen und Fehlerbehebungen vom November.

Bearbeiten und Navigieren von C++-Code

Dieser Artikel bietet einen Überblick über die Funktionen zum Bearbeiten und Navigieren von Code, die spezifisch für die C/C++-Erweiterung sind. Weitere Informationen zum allgemeinen Bearbeiten und Navigieren in Visual Studio Code finden Sie unter Grundlegende Bearbeitung und Code-Navigation.

C++-Code bearbeiten

Die von der C/C++-Erweiterung bereitgestellten Quellcode-Bearbeitungsfunktionen sind leistungsstarke Werkzeuge zum Bearbeiten, Formatieren und Verstehen Ihrer Codebasis.

Header-Dateien identifizieren

Um die beste Bearbeitungserfahrung zu bieten, muss die C++-Erweiterung wissen, wo sie jede Header-Datei finden kann, auf die in Ihrem Code verwiesen wird. Standardmäßig durchsucht die Erweiterung das aktuelle Quellverzeichnis, seine Unterverzeichnisse und einige plattformspezifische Speicherorte. Wenn eine referenzierte Header-Datei nicht gefunden werden kann, wird unter der #include-Anweisung eine rote Wellenlinie angezeigt.

Um zusätzliche Include-Verzeichnisse anzugeben,

  1. Wählen Sie einen #include-Pfad, der keine Referenz hat.
  2. Wählen Sie die erscheinende Glühbirne aus und wählen Sie "includePath"-Einstellung bearbeiten, womit der Einstellungseditor der C/C++-Erweiterung geöffnet wird.
  3. Unter der Rubrik Include Path können Sie die Pfade für alle zusätzlichen Include-Verzeichnisse angeben.

Process of adding a new header to the include path

Mitglieder auflisten

Wenn Sie ein Mitgliedszugriffssymbol (. oder ->) eingeben, zeigt der Editor eine Liste von Mitgliedern an. Während Sie weitere Buchstaben eingeben, wird die Liste in Echtzeit gefiltert.

List members

Codeformatierung

Die C/C++-Erweiterung für Visual Studio Code unterstützt die Formatierung von Quellcode mit clang-format und vc_format. Beide Formatierungsoptionen sind in der Erweiterung enthalten, wobei clang-format die Standardeinstellung ist.

Sie können eine ganze Datei mit Dokument formatieren (⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I)) oder nur die aktuelle Auswahl mit Auswahl formatieren (⌘K ⌘F (Windows, Linux Ctrl+K Ctrl+F)) im Kontextmenü der rechten Maustaste formatieren. Sie können die Formatierung auch basierend auf Benutzergesten wie Eingabe, Speichern und Einfügen mit den folgenden Einstellungen auslösen.

  • editor.formatOnSave - zum Formatieren beim Speichern Ihrer Datei.
  • editor.formatOnType - zum Formatieren während der Eingabe (ausgelöst durch das Zeichen ;).

Weitere Informationen zur Formatierung finden Sie unter Formatierung.

Clang-format

Standardmäßig ist der clang-format-Stil auf file eingestellt. Das bedeutet, dass, wenn eine .clang-format-Datei in Ihrem Arbeitsbereich gefunden wird, die in der Datei angegebenen Einstellungen als Formatierungsreferenz verwendet werden. Andernfalls basiert die Formatierung auf dem Standardstil, der in der C_Cpp.clang_format_fallbackStyle Einstellung angegeben ist.

Derzeit ist der Standardformatierungsstil Visual Studio, eine Annäherung an den Standard-Code-Formatter in Visual Studio. Er impliziert die folgenden Einstellungen

UseTab: (VS Code current setting)
IndentWidth: (VS Code current setting)
BreakBeforeBraces: Allman
AllowShortIfStatementsOnASingleLine: false
IndentCaseLabels: false
ColumnLimit: 0

Um eine andere Version von clang-format als die, die mit der Erweiterung geliefert wird, zu verwenden, ändern Sie die C_Cpp.clang_format_path Einstellung auf den Pfad, unter dem die clang-format-Binärdatei installiert ist.

Zum Beispiel, unter Windows:

  "C_Cpp.clang_format_path": "C:\\Program Files (x86)\\LLVM\\bin\\clang-format.exe"

vc_format

Standardmäßig wird, wenn eine .editorconfig-Datei mit relevanten Einstellungen in der Nähe des zu formatierenden Codes gefunden wird, die Visual C++-Formatierungs-Engine anstelle von clang-format verwendet. Andernfalls navigieren Sie zur C_Cpp.formatting Einstellung und setzen Sie diese auf vc_format, um die Visual C++-Formatierungs-Engine zu verwenden.

Erweiterte semantische Hervorhebung

Wenn IntelliSense aktiviert ist, unterstützt die Visual Studio Code C/C++-Erweiterung die semantische Hervorhebung. Weitere Informationen zum Festlegen von Farben für Klassen, Funktionen, Variablen und mehr finden Sie unter Erweiterte Hervorhebung. Weitere Informationen zur Konfiguration von IntelliSense finden Sie unter IntelliSense-Konfiguration.

Schnelle Infos

Sie können mit der Maus über ein Symbol fahren, um eine Inline-Ansicht seiner Definition anzuzeigen.

Quick info

Doxygen-Kommentare

Doxygen ist ein Werkzeug, das Dokumentation aus Quellcode generiert. Wenn Sie Code mit Kommentaren annotieren, generiert Doxygen dann Dokumentation für diese Funktionen. Für Doxygen-Kommentare geben Sie /** ein und drücken Sie Enter, um einen Doxygen-Kommentarblock zu generieren. Unterstützte Doxygen-Tags sind: @brief,@tparam, @param, @return, @exception, @deprecated, @note, @attention und @pre.

Markdown-Kommentare

Standardmäßig unterstützt die C++-Erweiterung die Anzeige einer Teilmenge von Markdown in Ihrem Editor. Diese Teilmenge unterstützt alle Markdown-Kommentare außer den Symbolen _ und *. Schalten Sie die neue Einstellung Markdown in Kommentaren um, um entweder alles Markdown zu aktivieren, diese Teilmenge von Markdown beizubehalten oder die Markdown-Unterstützung zu deaktivieren.

Quellcode navigieren

Die Funktionen zur Quellcode-Navigation können Ihnen helfen, Ihren Code besser zu verstehen. Sie ermöglichen es Ihnen, schnell nach Symbolen in Ihrem Code zu suchen, zu deren Definitionen zu navigieren oder Referenzen darauf zu finden.

Die Navigation wird durch eine Reihe von Tags angetrieben, die in einer lokalen Datenbank mit Symbolinformationen gespeichert sind. Immer wenn ein Ordner, der C++-Quellcodedateien enthält, geöffnet wird, erstellt die C/C++-Erweiterung eine Datenbank der in diesen Dateien definierten Symbole. Diese Datenbank wird aktualisiert, wenn eine Datei geändert wird. Wenn ein Dokument ohne Speichern geschlossen wird, wird die Datenbank auf den letzten gespeicherten Zustand aktualisiert.

Symbole suchen

Sie können nach Symbolen in der aktuellen Datei oder im Arbeitsbereich suchen, um Ihren Code schneller zu navigieren.

Um ein Symbol in der aktuellen Datei zu suchen, drücken Sie ⇧⌘O (Windows, Linux Ctrl+Shift+O), und geben Sie dann den Namen des Symbols ein, nach dem Sie suchen. Eine Liste möglicher Treffer erscheint, die während der Eingabe gefiltert wird. Wählen Sie aus der Liste der Treffer aus, um zu diesem Symbol zu navigieren.

Searching the current file

Um ein Symbol im aktuellen Arbeitsbereich zu suchen, drücken Sie ⌘T (Windows, Linux Ctrl+T), und geben Sie dann den Namen des Symbols ein. Eine Liste möglicher Treffer wird angezeigt. Wenn der ausgewählte Treffer sich in einer Datei befindet, die noch nicht geöffnet ist, wird die Datei geöffnet, bevor zu diesem Treffer navigiert wird.

Searching in your workspace

Sie können Symbole auch durch Aufrufen dieser Befehle über die Befehlspalette(⇧⌘P (Windows, Linux Ctrl+Shift+P)) suchen. Verwenden Sie Schnell öffnen (⌘P (Windows, Linux Ctrl+P)), und geben Sie dann den Befehl @ ein, um die aktuelle Datei zu durchsuchen, oder den Befehl #, um den aktuellen Arbeitsbereich zu durchsuchen. ⇧⌘O (Windows, Linux Ctrl+Shift+O) und ⌘T (Windows, Linux Ctrl+T) sind Verknüpfungen für die Befehle @ und #.

Aufrufhierarchie

Die Aufrufhierarchieansicht zeigt alle Aufrufe an oder von einer Funktion. Sie ermöglicht es Ihnen, die komplexen Aufrufbeziehungen zwischen den Funktionen in Ihrem Quellcode zu verstehen.

Um die Aufrufhierarchie anzuzeigen, wählen Sie eine Funktion aus, klicken Sie mit der rechten Maustaste, um das Kontextmenü anzuzeigen, und wählen Sie Aufrufhierarchie anzeigen. Sie können auch die Tastenkombination verwenden (Shift+Alt+H unter Windows) oder die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) aufrufen und den Befehl Aufrufe: Aufrufhierarchie anzeigen ausführen. Dies füllt den Aufrufbaum in der Seitenleiste mit allen von Ihrer ausgewählten Funktion aufgerufenen Funktionen.

Selecting call hierarchy and showing calls in sidebar

Schalten Sie das Telefonsymbol in der Menüleiste der Seitenleiste um, um zu eingehenden Aufrufen zu wechseln. Eingehende Aufrufe zeigen an, wann Ihre Funktion von einer anderen Funktion referenziert wird. Sie können auch verschachtelte Aufrufe untersuchen, indem Sie eine Funktion auswählen, die bereits im Aufrufbaum angezeigt wird, und mit der rechten Maustaste auf diese Funktion klicken, um die verfügbaren Befehle anzuzeigen.

Nested Calls for Call Hierarchy

Einblenden

Die Peek-Funktion zeigt einige Codezeilen in einem Peek-Fenster an, damit Sie Ihren aktuellen Speicherort nicht verlassen müssen. Sie ist nützlich, um den Kontext eines Symbols schnell zu verstehen, ohne Ihren aktuellen Code verlassen zu müssen.

Um ein Peek-Fenster zu öffnen, navigieren Sie zum Kontextmenü, indem Sie mit der rechten Maustaste klicken, und wählen Sie dann Peek aus. Dort können Sie wählen, ob Sie die Definition, Deklaration, Typdefinition oder Referenzen eines Symbols anzeigen möchten.

Peek definition

Mit dem geöffneten Peek-Fenster können Sie die Liste der angezeigten Ergebnisse durchsuchen, um dasjenige zu finden, an dem Sie interessiert sind. Wenn Sie zu dem Speicherort eines dieser Ergebnisse navigieren möchten, wählen Sie das Ergebnis aus oder doppelklicken Sie in den Quellcode, der auf der linken Seite des Peek-Fensters angezeigt wird.

Zu Definition wechseln

Verwenden Sie die Funktion Zu Definition wechseln, um schnell zu der Stelle in Ihrem Quellcode zu navigieren, an der ein Symbol definiert ist. Wählen Sie ein Symbol in Ihrem Quellcode aus und drücken Sie dann F12, oder klicken Sie mit der rechten Maustaste und wählen Sie Zu Definition wechseln aus dem Kontextmenü. Wenn es nur eine Definition des Symbols gibt, werden Sie direkt zu dessen Speicherort navigiert, andernfalls werden konkurrierende Definitionen in einem Peek-Fenster angezeigt, wie im vorherigen Abschnitt beschrieben.

Wenn für das ausgewählte Symbol keine Definitionen gefunden werden können, sucht die C/C++-Erweiterung automatisch nach einer Deklaration des Symbols.

Zu Deklaration wechseln

Verwenden Sie die Funktion Zu Deklaration wechseln, um zu der Stelle in Ihrem Quellcode zu navigieren, an der ein Symbol deklariert ist. Diese Funktion funktioniert genauso wie Zu Definition wechseln, aber für Deklarationen. Wählen Sie ein Symbol in Ihrem Quellcode aus, klicken Sie mit der rechten Maustaste und wählen Sie Zu Deklaration wechseln aus dem Kontextmenü. Dies navigiert Sie zum Speicherort der Deklaration des Symbols.

Zu Referenzen wechseln

Verwenden Sie die Funktion Zu Referenzen wechseln, um zu verstehen, wie oft und wo ein Symbol in Ihrem Quellcode referenziert wird. Wählen Sie ein Symbol in Ihrem Quellcode aus und drücken Sie ⇧F12 (Windows, Linux Shift+F12) oder klicken Sie mit der rechten Maustaste und wählen Sie Zu Referenzen wechseln aus dem Kontextmenü. Wenn Referenzen gefunden werden, werden sie in einem Peek-Fenster angezeigt.

Zu Typdefinition wechseln

Verwenden Sie die Funktion Zu Typdefinition wechseln, um zu der Stelle in Ihrem Quellcode zu springen, an der ein Typ definiert ist. Wählen Sie einen Typ in Ihrem Quellcode aus, klicken Sie mit der rechten Maustaste, um das Kontextmenü zu öffnen, und wählen Sie Zu Typdefinition wechseln.

Nächste Schritte

Lesen Sie weiter, um mehr über Folgendes zu erfahren:

Wenn Sie weitere Fragen haben oder auf Probleme stoßen, melden Sie bitte ein Issue auf GitHub. Möglicherweise werden Sie gebeten, Protokollinformationen von der Erweiterung bereitzustellen, um das Problem zu diagnostizieren. Anleitungen zur Bereitstellung von Erweiterungsprotokollen finden Sie unter Protokollierung der C/C++-Erweiterung.

© . This site is unofficial and not affiliated with Microsoft.