Verwendung von C++-Entwicklungstools mit GitHub Copilot Chat
Das Refactoring und die Aktualisierung von C++-Code erfordern häufig die Nachverfolgung von Änderungen über mehrere Dateien hinweg sowie Kenntnisse über die Build-Konfiguration.
GitHub Copilot Chat kann die in VS Code integrierten C++-Tools nutzen, um kontextbezogene Unterstützung für Ihre C++-Projekte bereitzustellen. Durch die Verwendung von Code-Analyse- und CMake-Tools kann Copilot Ihre Codebasis-Struktur, Abhängigkeiten und Build-Konfigurationen verstehen, um Ihnen genauere, hilfreichere und schnellere Antworten zu geben.
Dieser Leitfaden behandelt die verfügbaren Tools und deren effektive Nutzung mit KI-Agenten, um Aufgaben zu bewältigen wie:
- Navigation in und Verständnis von komplexen C++-Codebasen
- Refactoring von Code mit vollständigem Kontextbewusstsein
- Effiziente Konfiguration und Erstellung von Projekten
Voraussetzungen
- C/C++ DevTools-Erweiterung
- C/C++-Erweiterung
- CMake Tools-Erweiterung
Diese Erweiterungen sind als Teil des C/C++ Extension Pack verfügbar.
Sie können jedes dieser Tools jederzeit aktivieren oder deaktivieren, indem Sie im Chat zur Option Tools navigieren und das jeweilige Tool auswählen, das Sie aktivieren oder deaktivieren möchten.

Aktivieren Sie nur die für Ihren Entwicklungsworkflow relevanten Tools, um eine Überlastung des Kontexts zu vermeiden. Sie können andere Tools, wie z. B. über MCP installierte, über denselben Dialog deaktivieren.
Tools zum Verständnis von C++-Code
Die C++-Erweiterung bietet Tools, die Sprachdienste nutzen, um Copilot Chat ein tiefgreifendes Verständnis Ihrer Codestruktur, Symbole und Beziehungen zu vermitteln. Stellen Sie sicher, dass Sie IntelliSense konfiguriert haben, um diese Tools nutzen zu können.
Um diese Tools zu aktivieren, wählen Sie die Einstellung Enable Cpp Code Editing Tools in Ihren VS Code-Benutzereinstellungen.

Symbolinformationen abrufen (GetSymbolInfo_CppTools)
Was es bewirkt: Ruft detaillierte Informationen über Symbole (Funktionen, Klassen, Variablen usw.) in Ihrer Codebasis ab, einschließlich deren Definitionen, Typen und Dokumentation.
Beispielanwendungsfall: Speicherleistung optimieren und nicht-unterbrechende Änderungen sicherstellen

Symbolreferenzen abrufen (GetSymbolReferences_CppTools)
Was es bewirkt: Findet alle Referenzen auf ein bestimmtes Symbol in Ihrer gesamten Codebasis und zeigt an, wo Funktionen, Klassen oder Variablen verwendet werden.
Beispielanwendungsfall: Hinzufügen zusätzlicher Funktionalität zu bestehenden Funktionen

Sie können die maximale Anzahl der vom Tool zurückgegebenen Symbolreferenzen steuern, indem Sie die Einstellung für das Symbolreferenz-Limit in VS Code anpassen.

Symbolaufrufhierarchie abrufen (GetSymbolCallHierarchy_CppTools)
Was es bewirkt: Zeigt die Aufrufhierarchie für Funktionen an und offenbart sowohl eingehende Aufrufe (wer diese Funktion aufruft) als auch ausgehende Aufrufe (was diese Funktion aufruft).
Beispielanwendungsfall: Abhängigkeitsanalyse für Modulmigrationen

CMake Tools-Integration
CMake-Tools ermöglichen es Copilot Chat, Ihre Build-Konfiguration, Ziele und Abhängigkeiten zu verstehen, was eine Build-bewusste Unterstützung ermöglicht.
CMake-Build (Build_CMakeTools)
Was es bewirkt: Erstellt Ihr CMake-Projekt unter Verwendung der aktuellen Konfiguration und des ausgewählten Ziels.
Beispielanwendungsfall: Behebung von Build-Fehlern

CTest ausführen (RunCTest_CMakeTools)
Was es bewirkt: Führt die von CTest in Ihrem Projekt definierte Testsuite aus.
Beispielanwendungsfall: Code gemäß Unit-Tests korrigieren

Tipps für effektive Prompts
- Seien Sie spezifisch: Identifizieren Sie genau das Symbol, die Datei oder die Komponente, nach der Sie fragen (z. B. "Refaktorisieren Sie die Funktion
getConfig()" statt "machen Sie dies schneller") - Referenzieren Sie Kontext: Bitten Sie Copilot Chat, bei der Analyse von Änderungen bestimmte Dateien, Funktionen oder Module zu berücksichtigen.
- Referenzieren Sie Tools direkt: Verwenden Sie im Chat das #-Symbol, um relevante Tools direkt anzusprechen und deren Aufruf sicherzustellen.
- Verwenden Sie benutzerdefinierte Anweisungen: Richten Sie benutzerdefinierte Anweisungen ein, um Copilot Chat zu steuern. Sehen Sie sich Beispielanweisungen zur Verbesserung der Aufrufraten von C++-Tools an, die im awesome-copilot-Repo dokumentiert sind.
- Nutzen Sie die neuesten Modelle: Verwenden Sie die neuesten KI-Modelle, die Tool-Aufrufe unterstützen, um ein genaueres Codeverständnis und eine optimale Tool-Nutzung zu erhalten.
- Optimieren Sie die Tool-Performance: Aktivieren Sie nur die für Ihren Workflow relevanten Tools, um eine Kontextüberlastung zu vermeiden.
Wann welches Tool zu verwenden ist
Symbolinformationen: Verwenden, wenn Sie die Struktur bestehenden Codes verstehen oder Eigenschaften vor Änderungen überprüfen müssen.
Symbolreferenzen: Verwenden beim Refactoring, um alle Verwendungen zu identifizieren und sicherzustellen, dass Änderungen keinen bestehenden Code beschädigen.
Aufrufhierarchie: Verwenden bei der Analyse von Abhängigkeiten, dem Verständnis von Aufrufketten oder der Planung von Modulmigrationen.
CMake-Build: Verwenden bei der Fehlerbehebung von Build-Problemen oder zur Überprüfung, ob Änderungen erfolgreich kompiliert werden.
CTest: Verwenden beim Validieren von Änderungen gegenüber Ihrer Testsuite oder beim Debuggen von Testfehlern.