Copilot 下一次編輯建議(預覽)
2025年2月12日,由 Brigit Murtaugh、Burke Holland 撰寫
我們激動地宣佈,在 Visual Studio Code 的本次釋出中,GitHub Copilot 將推出不是一個,不是兩個,而是三個預覽功能
- 後續編輯建議
- Copilot Edits 的代理模式
- 視覺
在本文中,我們將深入探討“後續編輯建議” (Next Edit Suggestions),並瞭解您編輯器中 AI 驅動程式碼補全的下一步發展。
後續編輯建議 (NES)
GitHub Copilot 的程式碼補全功能——也被稱為幽靈文字(ghost text)——在自動完成方面表現非常出色。使用 GitHub Copilot 時,最令人難以置信的體驗之一,就是它能在你甚至還未開口請求時,就建議出你腦海中想要的程式碼。但大多數編碼活動不僅包括編寫新程式碼,同樣也涉及編輯現有程式碼。因此,讓程式碼補全功能同樣作用於現有程式碼,是很自然的一步。
我們稱之為“後續編輯建議”(Next Edit Suggestions),簡稱 NES。是的——當我們看到這個縮寫時,也感受到了對那款遊戲機的懷舊之情。
開始使用 NES
要開始使用 Copilot NES,首先請啟用 VS Code 設定 github.copilot.nextEditSuggestions.enabled。
和程式碼補全一樣,要開始從 NES 獲取建議,你所需要做的就是開始編碼!
當出現編輯建議時,使用 Tab 鍵導航到它,然後再次按 Tab 鍵接受。忘掉手動搜尋相關檔案或引用的煩惱吧。Copilot NES 會為你留意下一個相關的編輯!
邊欄中的箭頭表示有可用的編輯建議。將滑鼠懸停在箭頭上可以瀏覽編輯建議選單,其中包括鍵盤快捷鍵和設定選項。
滾動時錯過了那個編輯建議?箭頭會提示你下一個編輯建議的位置,根據你在檔案中的位置指向上方或下方。
建議可以涵蓋單個符號、一整行或多行,具體取決於潛在更改的範圍。
重新載入 VS Code,使您更新的設定生效。
如果您是 Copilot Business 或 Enterprise 使用者,除了在您的編輯器中設定 github.copilot.nextEditSuggestions.enabled 之外,您所在組織的管理員還必須選擇加入使用 Copilot 的“編輯器預覽功能”。
您可以瞭解更多關於在您的組織中管理 Copilot 策略的資訊。
示例場景
當您進行可能影響整個檔案或專案的更改時,Copilot NES 是您的 AI 夥伴。您將在多種場景中見證它的出色表現。
捕捉和糾正錯誤: 錯誤是編寫程式碼過程中的自然組成部分,而 Copilot NES 會幫助捕捉它們(有時甚至在您意識到錯誤存在之前!)。
NES 有助於處理像拼寫錯誤這樣的小失誤——也許你正在快速編碼並沉浸其中,不小心把 const
寫成了 conts
。
NES 也能幫助處理更具挑戰性的邏輯錯誤,比如一個反向的三元表示式。
我們的開發團隊一直在內部使用 NES。在我們撰寫這篇部落格時,我們的一位工程師回想起了他與 NES 的第一個“頓悟”時刻。他當時正在編寫一個類似 if (something !== 'a' || something !== 'b')
的條件。NES 發現這個語句將永遠評估為 true(感謝德摩根定律!),並建議將 ||
替換為 &&
以使程式碼有效。
意圖變更: Copilot NES 會根據意圖的變更提出相應的修改建議。例如,將一個類從 Point
改為 Point3D
後,它會建議在類定義和距離計算中新增一個 z
變數。
使用新新增的變數或邏輯: Copilot NES 幫助您使用剛剛新增的新程式碼。這可能是一個小改動,比如在實際方法中呼叫一個新的方法引數。
也可能更復雜:如果你在 VS Code 擴充套件的 extension.ts
中添加了一個新命令,NES 會首先建議在 extension.ts
中清理該命令。然後當你開啟 package.json
時,NES 會建議也註冊該命令。
重構: 如果您使用了一個新的名稱或命名模式,Copilot NES 會建議對後續程式碼進行類似的更新。
隨著我們擴充套件 NES 的體驗,請閱讀我們的完整 NES 文件以獲取更多資訊和場景。
分享您的反饋
Copilot NES 正在快速發展,我們迫不及待地希望透過我們的倉庫中的 issue 獲得您的反饋——這將對改善體驗至關重要。
請務必使用 VS Code Insiders 和 GitHub Copilot Chat 擴充套件的預釋出版本,以獲取所有最新的功能和修復。獲取更多關於如何安裝擴充套件預釋出版本的詳細資訊。
隨著我們擴充套件 NES 的體驗,您可以閱讀我們的完整 NES 文件以獲取更多資訊和場景。
我們對 AI 的下一步發展感到興奮,Copilot 能夠預測您接下來想做什麼——最好的提示就是那個您無需編寫的提示。我們希望您也同樣興奮,並期待看到您構建的成果!
代理模式
自上週釋出的 VS Code Insiders 版本起,GitHub Copilot Edits 現已提供代理模式選項。
Copilot Edits 中的代理模式能夠迭代自己的程式碼——自動識別並修復錯誤,執行完成請求任務所需的任何終端命令,並具備自我修復能力來解決執行時錯誤。GitHub Copilot 現在不再僅僅執行使用者請求的任務,而是能推斷出所有未明確指出但為使主要請求正常工作而必須完成的其他任務。
我們看到了 GitHub Copilot 代理模式的巨大潛力。它每天都在進步,但我們希望能儘快將其交到您的手中。請關注此領域,在接下來的幾周內,我們將對體驗進行重大更改和改進。在您試用時(目前在 VS Code Insiders 中,稍後在 VS Code Stable 中),請分享您的反饋。
您可以在我們的文件中閱讀更多關於代理模式的資訊。
視覺
此版本的 VS Code Insiders 還為 GitHub Copilot 帶來了視覺支援。
不得不一次又一次地將您所看到的內容翻譯成描述給 Copilot,這可能令人沮喪。在處理使用者介面或詢問如何在編輯器中配置某些內容時尤其如此。現在,您只需在提示中附上一張截圖,Copilot 就能看到您所看到的一切。您可以……
- 從剪貼簿貼上
- 從資源管理器檢視拖放圖片
- 附上當前 VS Code 視窗的截圖(選擇“附加” > “視窗截圖”)
這開啟了各種各樣的場景……
- 將設計稿交給 Copilot,讓它生成 UI 程式碼。
- 提供一個不正確的介面截圖,讓 Copilot 幫助您修復佈局。
- 為 HTML 和 Markdown 中的圖片生成替代文字。
- 提供錯誤的截圖
視覺功能現已在 VS Code Insiders 中可用,並向所有人開放。目前唯一支援的模型是 GPT 4o,對其他模型的支援正在開發中。當前支援的圖片型別包括 JPEG/JPG、PNG、GIF 和 WEBP。
新年,新 Copilot
我們對 Copilot 作為 AI 結對程式設計師有著宏偉的計劃,它不僅向所有人免費提供,而且不斷突破 AI 的界限,從而極大地提升您的生產力和幸福感。
我們從未停止改進 VS Code 本身,所以請檢視我們最近的釋出說明,瞭解所有全新的功能。我們堅持確保您擁有最佳版本的程式碼編輯器和最棒的 AI 結對程式設計師。
我們知道 AI 世界日新月異,因此請務必在 X/Bluesky/LinkedIn 上關注我們,我們將讓您輕鬆掌握所有最新最強的 Copilot 功能。
程式設計愉快!
Brigit 和 Burke