在 Visual Studio 中設定 GitHub Copilot Chat 的內容,以取得更好的答案

您可以使用在 Visual Studio 中 GitHub Copilot Chat 取得撰寫程式碼的資訊和支援,例如語法、程式設計概念、內容特定的程式碼說明、測試案例、偵錯等等,而不需要離開 IDE。 Copilot Chat 已整合到 Visual Studio 中,這表示它可以透過從您在 IDE 中已具備的內容收集實用線索,來了解您正在處理的內容。

在本文中,您將會了解如何藉由提供更多資訊給 Copilot Chat,以取得更好的答案,包括:

  • 使用斜線命令快速指定常見的工作,例如 /explain 以取得程式碼說明。
  • 使用參考將聊天範圍設定為特定檔案。
  • 檢閱 Copilot 用來產生答案的來源
  • 針對每個 Copilot 聊天使用不同的執行緒,讓您可以在每個聊天中維護不同的內容。

深入了解 Visual Studio 中的 AI 輔助開發,以及如何在 Visual Studio 中使用 Copilot Chat

必要條件

若要開始使用 Visual Studio 中的 GitHub Copilot Chat,您需要:

在 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
Yes Yes

螢幕擷取畫面:內嵌聊天檢視和聊天視窗中的斜線命令。

參考:將 Copilot 結果的範圍設定為特定檔案或整個方案

您可以使用自然語言詢問與撰寫程式碼相關的問題,GitHub Copilot Chat 會在您於 Visual Studio 中開啟的程式碼基底內容中回答這些問題。 透過參考,您可以取得您希望 Copilot 在回答問題時考量的更具體資訊。 藉由在程式碼基底中選取特定內容,您可以輕鬆地形成更好的問題,而不必撰寫或貼上長篇資訊。 指定內容也可讓 Copilot 為您提供更相關的答案。

若要輕鬆地參考檔案,只要在檔案名稱開頭新增 # 符號即可。 例如,如果您有名為 BasketService.cs 的檔案,在聊天中將其參考為 #BasketService.cs

螢幕擷取畫面:Copilot Chat 中的參考。

使用 #solution 參考 IDE 中作用中的方案,以取得內容。

螢幕擷取畫面:在 Copilot Chat 中參考方案內容。

以下是使用內容控制項參考的一些範例:

範例 Copilot 用來形成問題的內容
#MyFile.cs:66-72 的用途是什麼? 檔案的精確區段
#BasketService.cs 中的測試在哪裡? BasketService.cs
/explain #BasketService.cs 中的 AddItemToBasket 方法 BasketService.cs 中的 AddItemToBasket 方法
此 #solution 是否有 delete basket 方法 在 IDE 中開啟目前的方案

檢閱 Copilot 聊天使用的來源

Copilot Chat 會在每個結果之後顯示所使用的內容,讓您可以分辨回答問題時所考量的內容。 當您向 Copilot 聊天提問並在聊天視窗中獲得回覆時,回應下方會顯示一個參考下拉式清單。 [參考] 下拉式清單中的項目顯示 Copilot 聊天產生該回應時所引用的上下文。 這項資訊可協助您修改問題,以取得更好且更相關的答案。

螢幕擷取畫面:Copilot Chat 中使用的參考下拉式清單。

組織:將與 Copilot 的聊天隔離成執行緒

如果您在撰寫程式碼時廣泛地使用 Copilot Chat 詢問問題,可以透過讓交談保持主題的方式進行組織。 適用於 Visual Studio 的 Copilot Chat 現在提供簡單的方法來啟動新的交談 (執行緒),讓他們專注於手邊的工作,並讓內容保持清晰,使答案以相關的歷程記錄為基礎。

您可以選取聊天視窗中的 [建立新執行緒] 來啟動新的執行緒。

螢幕擷取畫面:Copilot Chat 中的建立新執行緒圖示。

您可以在多個進行中的執行緒之間選取,為您的問題提供正確的歷程記錄內容。

螢幕擷取畫面:在 Copilot Chat 中切換進行中的執行緒。