檢視 AI 生成的程式碼編輯

當您在 Visual Studio Code 中與聊天功能互動時,AI 可能會針對專案中的多個檔案產生程式碼編輯內容。本文將說明如何審查、接受或捨棄這些由 AI 產生的程式碼編輯內容。

待處理變更

一旦 AI 對您的檔案進行變更,這些變更會直接套用並儲存至磁碟。VS Code 會追蹤哪些檔案有待處理的編輯內容,並讓您逐一或一次全部審查它們。

聊天檢視(Chat view)會顯示已編輯且尚待您審查的檔案清單。有待處理編輯內容的檔案,其檔案總管檢視(Explorer view)和編輯器分頁標籤上也會有一個方形點圖示作為標記。

Screenshot that shows the Chat view, highlighting the changed files list and the indicator in the Explorer view and editor tabs.

當您開啟已變更的檔案時,編輯器會顯示已套用變更的行內差異(inline diff)。

當您關閉 VS Code 時,系統會記憶待處理編輯內容的狀態,並在您重新開啟 VS Code 時予以復原。

審查變更

請依照下列步驟審查檔案中的 AI 產生程式碼編輯內容

  1. 從聊天檢視中的已變更檔案清單,或從檔案總管檢視中選取檔案,以開啟有待處理編輯內容的檔案。

  2. 使用編輯器覆蓋層中的 向上向下 控制項,在檔案內的個別編輯項目之間進行瀏覽。

  3. 針對每個編輯項目,選擇下列其中一項操作

    • 選取 Keep(保留) 以接受編輯。
    • 選取 Undo(復原) 以拒絕編輯並還原變更。
    • 將滑鼠游標懸停在行內變更上,即可接受或拒絕該特定變更,而不影響檔案中的其他編輯內容。
  4. 或者,您也可以從聊天檢視中一次接受或拒絕所有檔案中的所有變更。

Screenshot showing the Editor with proposed changes, highlighting the review controls in the editor overlay controls.

下列鍵盤快速鍵有助於您瀏覽並審查編輯內容

動作 快速鍵
前往下一個編輯項目 編輯器覆蓋層中的 向下
前往上一個編輯項目 編輯器覆蓋層中的 向上

當您在檔案中保留或復原某項編輯時,編輯器會自動導航至下一個有待處理變更的編輯項目,該項目可能位於不同的檔案中。若要停用此自動導航功能並停留在目前檔案,請將 chat.editing.revealNextChangeOnResolve 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定為 false

原始碼控制整合

如果您在原始碼控制檢視中暫存您的變更,任何待處理的編輯內容都會被自動接受。另一方面,如果您捨棄變更,任何待處理的編輯內容也會被一併捨棄。

自動接受編輯

您可以設定 chat.editing.autoAccept 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定,讓 VS Code 在經過一段可設定的延遲時間後,自動接受 AI 產生的程式碼編輯內容。將滑鼠游標懸停在編輯器覆蓋層控制項上,即可停止自動接受的倒數計時。

重要

如果您自動接受所有編輯內容,強烈建議您在將其提交至原始碼控制之前先審查變更。深入了解 在 VS Code 中使用 AI 的安全性考量

編輯敏感檔案

為了防止對敏感檔案(例如工作區組態設定或環境設定)進行意外編輯,VS Code 會在套用編輯內容前提示您進行批准。在聊天功能中,您可以查看建議變更的差異檢視,並選擇批准或拒絕它們。

使用 chat.tools.edits.autoApprove 在 VS Code 中開啟 在 VS Code Insiders 中開啟 設定來配置哪些檔案需要批准。該設定使用全域模式(glob patterns)來比對工作區中的檔案路徑。

以下組態範例會自動允許對所有檔案進行編輯,但 .vscode 資料夾中的 JSON 檔案以及名為 .env 的檔案除外,這些檔案會提示您進行批准

"chat.tools.edits.autoApprove": {
  "**/*": true,
  "**/.vscode/*.json": false,
  "**/.env": false
}

從工作階段清單審查檔案變更

當工作階段完成並對您的專案進行程式碼變更時,工作階段清單會顯示該工作階段的檔案變更統計資料。若要審查變更,請從清單中選取該工作階段以開啟詳細資料。

Screenshot of the file changes diff editor in an agent session.

根據代理程式類型的不同,您可以選擇將變更套用到本機工作區,或是檢出(checkout)該工作階段的分支(適用於雲端代理程式)。

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