在 GitHub Copilot Chat 中使用 C++ 開發工具

重構與更新 C++ 程式碼時,通常需要追蹤跨多個檔案的編輯內容,並需了解您的建置設定。

GitHub Copilot Chat 可以使用內建於 VS Code 的 C++ 工具,為您的 C++ 專案提供具備情境感知的協助。透過使用程式碼理解工具與 CMake 工具,Copilot 能夠理解您的程式碼庫結構、相依性與建置設定,從而提供更精確、實用且快速的回應。

本指南介紹了現有的工具,以及如何有效地將其與 AI 代理結合使用,以完成以下任務:

  • 瀏覽並理解複雜的 C++ 程式碼庫
  • 在具備完整情境感知的情況下重構程式碼
  • 有效率地設定與建置專案

先決條件

這些擴充功能皆包含在 C/C++ Extension Pack 中。

您可以隨時在聊天視窗中導覽至 Tools 選項,並選擇您想要啟用或停用的對應工具來進行切換。

Screenshot showing the list of cpp tools in the chat tools Quick Pick.

注意

僅啟用與您開發工作流程相關的工具,以避免造成情境內容過於冗長。您也可以透過同一個對話方塊,停用透過 MCP 安裝的其他工具。

C++ 程式碼理解工具

C++ 擴充功能提供的工具,利用語言服務讓 Copilot Chat 深入理解您的程式碼結構、符號與關係。請確保您已 設定好 IntelliSense,以充分利用這些工具。

若要啟用這些工具,請在 VS Code 使用者設定中勾選 Enable Cpp Code Editing Tools 設定。

Screenshot of the Settings editor, showing the Enable Cpp Code Editing Tools setting.

取得符號資訊 (GetSymbolInfo_CppTools)

功能:擷取程式碼庫中符號(函式、類別、變數等)的詳細資訊,包含其定義、型別與說明文件。

使用案例:最佳化記憶體效能並確保修改不會中斷現有功能

Screenshot of the Chat view, showing a prompt to refactor a symbol to be memory-safe, which invokes the get symbol info tool.


取得符號參考 (GetSymbolReferences_CppTools)

功能:找出程式碼庫中所有指向特定符號的參考,顯示函式、類別或變數的使用位置。

使用案例:為現有函式增加額外功能

Screenshot of the Chat view, showing a prompt to update an existing function and add a parameter for logging, which invokes the get symbol references tool.

注意

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

Screenshot of the Settings editor, showing the symbol references limit setting.


取得符號呼叫階層 (GetSymbolCallHierarchy_CppTools)

功能:顯示函式的呼叫階層,揭示傳入呼叫(誰呼叫此函式)與傳出呼叫(此函式呼叫了什麼)。

使用案例:模組遷移的相依性分析

Screenshot of the Chat view, showing a prompt to migrate a module into a separate library and thus requesting a dependency analysis, which invokes the get symbol call hierarchy tool.


CMake Tools 整合

CMake 工具讓 Copilot Chat 能夠理解您的建置設定、目標與相依性,從而提供具備建置感知能力的協助。

CMake 建置 (Build_CMakeTools)

功能:使用目前的設定與所選目標來建置您的 CMake 專案。

使用案例:解決建置錯誤

Screenshot of the Chat view, showing a prompt to resolve build errors, which invokes the CMake build tool.


執行 CTest (RunCTest_CMakeTools)

功能:執行專案中由 CTest 定義的測試套件。

使用案例:根據單元測試修復程式碼

Screenshot of the Chat view, showing a prompt to fix failing unit tests, which invokes run ctest.


有效提示詞的建議

  • 明確具體:明確指出您詢問的符號、檔案或元件(例如:「重構 getConfig() 函式」而非「讓這個變快」)。
  • 引用情境:在分析變更時,要求 Copilot Chat 參考特定的檔案、函式或模組。
  • 直接引用工具:在聊天中使用 # 直接引用相關工具,以確保其被觸發。
  • 使用自訂指令:設定 自訂指令 來引導 Copilot Chat。請參閱 awesome-copilot 儲存庫 中記錄的範例,了解如何改進 C++ 工具的呼叫頻率。
  • 利用最新模型:使用支援工具呼叫 (tool-calling) 的最新 AI 模型,以獲得最精確的程式碼理解與工具使用體驗。
  • 最佳化工具效能:僅啟用與您開發工作流程相關的工具,以避免造成情境內容過於冗長。

何時使用各項工具

符號資訊:當您需要理解現有程式碼結構,或在進行修改前驗證屬性時使用。

符號參考:當進行重構以識別所有用法,並確保修改不會破壞現有程式碼時使用。

呼叫階層:當分析相依性、理解呼叫鏈或規劃模組遷移時使用。

CMake 建置:當排查建置問題,或驗證變更是否能成功編譯時使用。

CTest:當針對測試套件驗證變更,或對測試失敗進行除錯時使用。

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