在 Visual Studio 中設定 GitHub Copilot Chat 的內容,以取得更好的答案
您可以使用在 Visual Studio 中 GitHub Copilot Chat 取得撰寫程式碼的資訊和支援,例如語法、程式設計概念、內容特定的程式碼說明、測試案例、偵錯等等,而不需要離開 IDE。 Copilot Chat 已整合到 Visual Studio 中,這表示它可以透過從您在 IDE 中已具備的內容收集實用線索,來了解您正在處理的內容。
除了您的提示之外,Copilot 還使用其他內容,例如您目前檔案中的程式碼和聊天記錄,以生成回應。 在本文中,您將了解如何藉由提供更多資訊給 Copilot Chat,以取得更好的答案,包括:
- 使用斜線命令快速指定常見的工作,例如
/explain
以取得程式碼說明。 - 使用參考將聊天範圍設定為特定檔案。
- 檢閱 Copilot 用來產生答案的來源。
- 針對每個 Copilot 聊天使用不同的執行緒,讓您可以在每個聊天中維護不同的內容。
深入了解 Visual Studio 中的 AI 輔助開發,以及如何在 Visual Studio 中使用 Copilot Chat。
必要條件
若要開始使用 Visual Studio 中的 GitHub Copilot Chat,您需要:
- Visual Studio 2022 版本 17.8 或更新版本
- 個人用 GitHub Copilot 或商務用 GitHub Copilot 的作用中訂閱
- Visual Studio 中的 GitHub Copilot
- Visual Studio 中的 GitHub Copilot Chat
- 使用有作用中 GitHub Copilot 訂用帳戶的 GitHub 帳戶登入 Visual Studio
GitHub 會支援 GitHub Copilot Chat,且可在 https://support.github.com 取得此支擾。
在 Copilot 聊天中使用 slash 命令執行一般工作
Copilot Chat 中的斜線命令可協助您快速設定一般開發工作的意圖。 藉由使用特定的斜線命令來形成您的問題,您可以取得更好的答案,而不需要寫出很長的問題。
您可以在聊天視窗中使用斜線命令,或使用內嵌程式碼助理,直接內嵌在您想要修的程式碼中。 有助於修改或新增至您已在編輯器中開啟的程式碼檔案的命令,可以在內嵌程式碼助理和聊天視窗中運作,而更為一般編碼問題的命令只能在聊天窗格中運作。
命令 | 使用方式 | 聊天視窗 | 內嵌聊天 |
---|---|---|---|
/doc | 為指定或選取的程式碼新增註釋。 例如: - /doc DeleteBasketAsync method in BasketService.cs - 選取想要程式碼並輸入 /doc |
Yes | Yes |
/explain | 取得程式碼說明。 例如: - /explain the AddItemToBasket method in BasketService.cs - 選取想要程式碼並輸入 /explain |
Yes | Yes |
/fix | 建議修正所選程式碼中的問題。 例如: - /fix the SetQuantities method in BasketService.cs - 選取想要程式碼並輸入 /fix |
Yes | Yes |
/generate | 產生程式碼以回答指定的問題。 範例: /generate code to add two numbers in Calculator.cs |
Yes | Yes |
/help | 取得關於使用 Copilot 聊天的説明。 範例: /help |
Yes | Yes |
/optimize | 分析並改善所選程式碼的執行時間。 範例: - /optimize the AddItemToBasket method in BasketService.cs - 選取想要程式碼並輸入 /optimize |
Yes | Yes |
/tests | 為選取的程式碼建立單元測試。 例如:選取想要程式碼並輸入 /tests using XUnit Framework |
Yes | Yes |
參考:將 Copilot 結果的範圍設定為特定檔案或整個方案
您可以使用自然語言詢問與撰寫程式碼相關的問題,GitHub Copilot Chat 會在您於 Visual Studio 中開啟的程式碼基底內容中回答這些問題。 透過參考,您可以取得您希望 Copilot 在回答問題時考量的更具體資訊。
藉由在程式碼基底中選取特定內容,您可以輕鬆地形成更好的問題,而不必撰寫或貼上長篇資訊。 指定內容也可讓 Copilot 為您提供更相關的答案。
參考檔案
若要輕鬆地參考 GitHub Copilot Chat 中的檔案,只要在檔案名稱開頭新增 # 符號即可。 例如,如果您有名為 BasketService.cs 的檔案,在聊天中將其參考為 #BasketService.cs。
參考方法、類別或函式
在 Visual Studio 2022 版本 17.11 中,您現在可以在 GitHub Copilot Chat 中參考特定方法、類別或函式。
要在 GitHub Copilot Chat 中輕鬆參考方法、類別或函式,只需在方法、類別或函式名稱的開頭新增 # 符號即可。 例如,如果您有一個名為 BasketAddItem 的方法,請在聊天中以 #BasketAddItem 的形式進行參考。
參考整個解決方案
使用 @workspace 參考 IDE 中作用中的方案,以取得內容。 當使用 @workspace 作為內容時,Copilot Chat 會利用有關 IDE 中目前開啟和正在處理的檔案、專案和設定的資訊。 這可讓 Copilot Chat 能夠提供更相關且具有內容感知的建議和答案。
使用 Visual Studio 2022 17.11 版,GitHub Copilot Enterprise 訂閱者現在可以在聊天中使用 @github
,以包含來自其整個存放庫的內容,以及搜尋 Web(如果管理員已啟用搜尋)。 若要深入了解在使用 @github
時,Copilot 可用來回答您問題的 GitHub 特定技能集合,請參閱「適用於 Copilot 的 GitHub 技能」。
使用範例
以下是使用內容控制項參考的一些範例:
範例 | Copilot 用來形成問題的內容 |
---|---|
#MyFile.cs:66-72 的用途是什麼? | 檔案的精確區段 |
#BasketService.cs 中的測試在哪裡? | BasketService.cs |
/解釋 #BasketService.cs 中的 #AddItemToBasket | BasketService.cs 中的 AddItemToBasket 方法 |
此 @workspace 中是否有 delete basket 方法 | 在 IDE 中開啟目前的解決方案 |
我有一個名為 #TestCalculator 的測試方法。 如何確保它正確執行? | TestCalculator 方法 |
是否可以解釋 #BasketService 和 #OrderService 類別之間的差異? | BasketService 類別和 OrderService 類別 |
在我的 @workspace 中,#AddItemToBasket 在哪裡? | 在 IDE 中開啟目前的解決方案 |
檢閱 Copilot 聊天使用的來源
Copilot Chat 會在每個結果之後顯示所使用的內容,讓您可以分辨回答問題時所考量的內容。 當您向 Copilot 聊天提問並在聊天視窗中獲得回覆時,回應下方會顯示一個參考下拉式清單。 [參考] 下拉式清單中的項目顯示 Copilot 聊天產生該回應時所引用的上下文。 這項資訊可協助您修改問題,以取得更好且更相關的答案。
組織:將與 Copilot 的聊天隔離成執行緒
如果您在撰寫程式碼時廣泛地使用 Copilot Chat 詢問問題,可以透過讓交談保持主題的方式進行組織。 適用於 Visual Studio 的 Copilot Chat 現在提供簡單的方法來啟動新的交談 (執行緒),讓他們專注於手邊的工作,並讓內容保持清晰,使答案以相關的歷程記錄為基礎。
新增聊天對話
您可以選取聊天視窗中的 [建立新執行緒] 來啟動新的執行緒。
切換聊天對話
您可以在多個進行中的執行緒之間選取,為您的問題提供正確的歷程記錄內容。
將內嵌聊天提升到聊天視窗
在 Visual Studio 2022 版本 17.11 中,您現在可以透過將內嵌聊天提升到聊天視窗來保留其歷史記錄。 選取 [在聊天視窗中繼續...],以維護對話的記錄和內容,然後在聊天視窗中繼續。
最佳作法
Copilot Chat 會使用聊天記錄來取得您要求的內容。 若要只提供 Copilot 相關的記錄:
- 使用對話來為新工作啟動新對話。
- 刪除不再相關或未達到預期結果的要求。
保持聊天對話開啟,並繼續迭代和提示 Copilot,以改進建議的解決方案。 Copilot 擁有生成的程式碼上下文,以及您目前的對話記錄。 隨著您繼續提出額外問題,Copilot 會根據您的要求進一步完善回應。 請參閱「GitHub Copilot 的提示工程」,以了解有效提示的策略,以改善您的 Copilot 結果。