在 GitHub Copilot Chat 中使用 C++ 開發工具
重構與更新 C++ 程式碼時,通常需要追蹤跨多個檔案的編輯內容,並需了解您的建置設定。
GitHub Copilot Chat 可以使用內建於 VS Code 的 C++ 工具,為您的 C++ 專案提供具備情境感知的協助。透過使用程式碼理解工具與 CMake 工具,Copilot 能夠理解您的程式碼庫結構、相依性與建置設定,從而提供更精確、實用且快速的回應。
本指南介紹了現有的工具,以及如何有效地將其與 AI 代理結合使用,以完成以下任務:
- 瀏覽並理解複雜的 C++ 程式碼庫
- 在具備完整情境感知的情況下重構程式碼
- 有效率地設定與建置專案
先決條件
- C/C++ DevTools 擴充功能
- C/C++ 擴充功能
- CMake Tools 擴充功能
這些擴充功能皆包含在 C/C++ Extension Pack 中。
您可以隨時在聊天視窗中導覽至 Tools 選項,並選擇您想要啟用或停用的對應工具來進行切換。

僅啟用與您開發工作流程相關的工具,以避免造成情境內容過於冗長。您也可以透過同一個對話方塊,停用透過 MCP 安裝的其他工具。
C++ 程式碼理解工具
C++ 擴充功能提供的工具,利用語言服務讓 Copilot Chat 深入理解您的程式碼結構、符號與關係。請確保您已 設定好 IntelliSense,以充分利用這些工具。
若要啟用這些工具,請在 VS Code 使用者設定中勾選 Enable Cpp Code Editing Tools 設定。

取得符號資訊 (GetSymbolInfo_CppTools)
功能:擷取程式碼庫中符號(函式、類別、變數等)的詳細資訊,包含其定義、型別與說明文件。
使用案例:最佳化記憶體效能並確保修改不會中斷現有功能

取得符號參考 (GetSymbolReferences_CppTools)
功能:找出程式碼庫中所有指向特定符號的參考,顯示函式、類別或變數的使用位置。
使用案例:為現有函式增加額外功能

您可以透過調整 VS Code 中的符號參考限制設定,來控制工具所回傳的最大符號參考數量。

取得符號呼叫階層 (GetSymbolCallHierarchy_CppTools)
功能:顯示函式的呼叫階層,揭示傳入呼叫(誰呼叫此函式)與傳出呼叫(此函式呼叫了什麼)。
使用案例:模組遷移的相依性分析

CMake Tools 整合
CMake 工具讓 Copilot Chat 能夠理解您的建置設定、目標與相依性,從而提供具備建置感知能力的協助。
CMake 建置 (Build_CMakeTools)
功能:使用目前的設定與所選目標來建置您的 CMake 專案。
使用案例:解決建置錯誤

執行 CTest (RunCTest_CMakeTools)
功能:執行專案中由 CTest 定義的測試套件。
使用案例:根據單元測試修復程式碼

有效提示詞的建議
- 明確具體:明確指出您詢問的符號、檔案或元件(例如:「重構
getConfig()函式」而非「讓這個變快」)。 - 引用情境:在分析變更時,要求 Copilot Chat 參考特定的檔案、函式或模組。
- 直接引用工具:在聊天中使用 # 直接引用相關工具,以確保其被觸發。
- 使用自訂指令:設定 自訂指令 來引導 Copilot Chat。請參閱 awesome-copilot 儲存庫 中記錄的範例,了解如何改進 C++ 工具的呼叫頻率。
- 利用最新模型:使用支援工具呼叫 (tool-calling) 的最新 AI 模型,以獲得最精確的程式碼理解與工具使用體驗。
- 最佳化工具效能:僅啟用與您開發工作流程相關的工具,以避免造成情境內容過於冗長。
何時使用各項工具
符號資訊:當您需要理解現有程式碼結構,或在進行修改前驗證屬性時使用。
符號參考:當進行重構以識別所有用法,並確保修改不會破壞現有程式碼時使用。
呼叫階層:當分析相依性、理解呼叫鏈或規劃模組遷移時使用。
CMake 建置:當排查建置問題,或驗證變更是否能成功編譯時使用。
CTest:當針對測試套件驗證變更,或對測試失敗進行除錯時使用。