您可以要求 GitHub Copilot Chat 提供程式碼建議、說明程式代碼、產生單元測試,以及建議程式代碼修正。 如果您提供正確的內容,Visual Studio 中的聊天可以提供回應,並產生符合程式代碼撰寫做法和專案需求的程式代碼。 您可以不要在每個聊天提示中重複新增這項資訊,而是將此內容儲存在檔案中,並自動將其包含在每個聊天要求中。
在本文中,您會瞭解如何藉由提供詳細資訊給 Copilot Chat 來取得更好的答案:
深入了解 Visual Studio 中的 AI 輔助開發,以及如何在 Visual Studio 中使用 Copilot Chat。
先決條件
若要開始使用 Visual Studio 中的 GitHub Copilot Chat,您需要:
- Visual Studio 2022 17.10 版 或更新版本
-
登入 Visual Studio 使用 GitHub 帳戶 並擁有 Copilot 存取權
** 您可以免費註冊 GitHub Copilot。
GitHub Copilot Chat 的支援由 GitHub 提供,您可以透過 https://support.github.com 聯絡。
提示指引
Visual Studio 17.12 和更新版本中的引導式聊天體驗可協助您精簡提示,以釐清內容以取得更好的答案。 GitHub Copilot Chat 現在會引導您釐清內容不清楚的問題。
使用自訂指示
自訂說明功能可讓您自動將預先指定的上下文詳細資訊新增至聊天問題。 Copilot Chat 在生成回應時,會使用這些根據您特定情境量身打造的指示,例如,您的小組運作方式、您使用的工具,或專案的具體細節。
使用 .github/copilot-instructions.md 檔案
若要使用 .github/copilot-instructions.md 檔案:
-
在存放庫根目錄中建立/新增 自定義指示檔案
.github/copilot-instructions.md。
- 從 [工具>選項] 窗格在 Visual Studio 中啟用此功能。 展開 [所有設定>GitHub>Copilot>Copilot 聊天 ] 區段,然後選取 [啟用自訂指示從 .github/copilot-instructions.md 檔案載入並新增至要求 ] 核取方塊。
- 從 [ 工具>選項] 對話方塊在 Visual Studio 中啟用此功能。 展開 GitHub>Copilot 區段,然後選取 Copilot 聊天群組中的 啟用自訂指示從 .github/copilot-instructions.md 檔案載入並新增至要求核取方塊。
自訂指示不會顯示在 Chat 檢視或內嵌聊天中。 不過,當 Copilot 使用時,.github/copilot-instructions.md 檔案會列在回應的 [參考] 清單中。
使用 .instructions.md 檔案
您可以建立多個 *.instructions.md 適用於特定檔案類型或任務的檔案,而不是使用適用於所有聊天請求的單一指示檔案。 例如,您可以為不同的程式設計語言、框架或專案類型建立指示檔案。
若要使用 .github/instructions/*.instructions.md 檔案:
如果目錄尚不存在,請建立
.github/instructions目錄。新增一或多個
.github/instructions/*.instructions.md檔案。在指示檔案的 frontmatter 區段中新增
applyTo屬性。 使用 glob 語法來指定指示套用的檔案或資料夾。在 Visual Studio 中啟用此功能。
在 [工具>選項] 窗格中,展開 [所有設定>GitHub>Copilot Copilot>聊天 ] 區段,然後選取 [啟用自訂指令從 .github/copilot-instructions.md 檔案載入並新增至要求] 核取方塊。
在 [工具>選項] 對話方塊中,展開 [GitHub>Copilot ] 區段。 在 Copilot 聊天 群組中,選取啟用 自訂指示從 .github/copilot-instructions.md 檔案載入並新增至要求 核取方塊。
指導檔案格式
目標指令檔案使用 .instructions.md 副檔名,並具有以下結構:
-
標頭 (可選):YAML frontmatter
-
description:在聊天檢視中懸停時顯示的說明 -
applyTo:與您要套用指示的檔案或資料夾相符的 Glob 圖案
-
- 正文:Markdown 格式的說明
Example
以下是 C# 自訂指令範例:
## C# Instructions
---
applyTo: `**/*.cs`
---
- Write clear and concise comments for each function.
- Use PascalCase for component names, method names, and public members.
- Use camelCase for private fields and local variables.
- Add a newline before the opening curly brace of any code block
(such as after `if`, `for`, `while`, `foreach`, `using`, `try`, etc.).
- Ensure that the final `return` statement of a method is on its own line.
將這些指示複製到您的 .github/instructions/*.instructions.md 檔案中,以使用並自動套用至 Copilot 行為。
如需自訂指示的更多範例,請參閱 GitHub 上的指示範例清單。
指令檔案的運作方式
當您開始使用 Copilot 時,它會自動偵測哪些指令檔案與您目前的上下文相關,並將它們附加為參考。 這可確保無論您在程式碼庫中的哪個位置工作,Copilot 的建議始終符合專案的規則。
Copilot 使用的指令檔案會列在回應的參考清單中。
使用提示檔案
您現在可以在存放庫中建立可重複使用的提示檔案,以執行或共用常用提示。
若要建立提示檔案:
- 如往常在提示方塊中撰寫提示,使用
#參考來包含解決方案的特定資訊,例如方法、類別和檔案。 您甚至可以參考其他提示檔案以取得共用指示。 - 將提示複製到 Markdown 檔案中,並將其以
.prompt.md擴展名儲存在你的存放庫根目錄下的.github/prompts資料夾中。
若要使用提示檔案:
- 在聊天輸入欄中輸入
#prompt:,以參考您.github/prompts資料夾中的任何提示檔案,或點擊聊天輸入中的➕圖示,作為上下文新增。 - 新增任何額外的詳細數據,或只要依目前輸入提示即可。
使用斜線命令來設定一般工作的內容
Copilot Chat 中的斜線命令可協助您快速設定一般開發工作的意圖。 藉由使用特定的斜線命令來形成您的問題,您可以取得更好的答案,而不需要寫出很長的問題。
您可以在聊天視窗中使用斜線命令,或使用內嵌程式碼助理,直接內嵌在您想要修的程式碼中。 協助修改或新增至您在編輯器中開啟的程式碼檔案的命令可在內嵌程式碼助理和聊天視窗中運作,而更一般的編碼問題的命令只能在聊天窗格中運作。
| 命令 | 使用方式 | 聊天視窗 | 內嵌聊天 |
|---|---|---|---|
| /文件 | 為指定或選取的程式碼新增註釋。 例子: - /doc DeleteBasketAsync method in BasketService.cs
- 選取想要程式碼並輸入 /doc |
是的 | 是的 |
| /解釋 | 取得程式碼說明。 例子: - /explain the AddItemToBasket method in BasketService.cs
- 選取想要程式碼並輸入 /explain |
是的 | 是的 |
| /修復 | 建議修正所選程式碼中的問題。 例子: - /fix the SetQuantities method in BasketService.cs
- 選取想要程式碼並輸入 /fix |
是的 | 是的 |
| /生成 | 產生程式碼以回答指定的問題。 範例: /generate code to add two numbers in Calculator.cs |
是的 | 是的 |
| /幫助 | 取得關於使用 Copilot 聊天的説明。 範例: /help |
是的 | 是的 |
| /優化 | 分析並改善所選程式碼的執行時間。 範例: - /optimize the AddItemToBasket method in BasketService.cs
- 選取想要程式碼並輸入 /optimize |
是的 | 是的 |
| /測試 | 為選取的程式碼建立單元測試。 例如:選取想要程式碼並輸入 /tests using XUnit Framework |
是的 | 是的 |
使用 Visual Studio 2022 17.13 版時,當使用者輸入斜線命令時,命令會以自然語言展開提示,以顯示命令的內容。
使用 Copilot 動作
您可以使用內容功能表中的 Copilot 動作來快速存取常見開發任務的預先設定提示和斜線命令。
每個動作的行為取決於您在開啟內容功能表時是否已選取程式碼:
| Action | 代碼已選擇 | 未選擇代碼 |
|---|---|---|
| 解說 | 解釋所選代碼 | 解釋游標位置附近的代碼 |
| 最佳化選取 | 優化所選代碼的性能、可維護性、可靠性和架構 | 不適用 |
| 產生註解 | 為選取的程式碼產生註解 | 為游標位置附近的程式碼產生註解 |
| 產生測試 | 產生所選程式碼的測試 | 為游標位置附近的程式碼產生測試 |
| 加入聊天室 | 將選取的程式碼新增至 Chat 做為參考 | 將整個檔案新增至 Chat 作為參考 |
當您選取最佳 化選取範圍以外的任何動作時,聊天視窗會自動開啟,並傳送 斜線命令 給具有適當範圍內容的 Copilot。 然後,您可以在聊天視窗中查看 Copilot 的回應並與之互動。
使用最佳化選取選項以獲得更好的程式碼
選取程式碼的特定區段,然後選擇 [最佳化選取範圍 ] ,讓 Copilot 只分析和改善該區段,而不是整個檔案。
Copilot 會檢查選取的程式碼及其周圍的上下文,以提供有意義的、上下文感知的建議。 優化保留了您現有的程式碼樣式、結構和功能,使您的程式碼庫保持井井有條且一致。 與其他使用聊天面板的動作不同, 「最佳化選取範圍」 會將建議呈現為內嵌差異,您可以直接檢閱、接受或拒絕。
Copilot 提供以下領域的最佳化建議:
- 效能: 更快的演算法、減少記憶體使用量、非同步模式
- 可維護性: 簡化邏輯、更清晰的結構、更好的命名
- 可靠性: 錯誤處理、資源清理、執行緒安全
- 建築學: 依賴注入、更好的介面、模組化設計
後續步驟
- Visual Studio 的 GitHub Copilot 體驗
- Visual Studio 的 GitHub Copilot Chat 體驗
- GitHub Copilot 信任中心
- 傳送建議、意見反應和問題給我們
- GitHub Copilot Chat 的 支援
- 如何使用 GitHub Copilot:提示、技巧和使用案例