參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

2025 年 1 月 (版本 1.97)

更新 1.97.1:此更新修復了這些安全問題

更新 1.97.2:此更新修復了這些問題

下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap


歡迎使用 Visual Studio Code 2025 年 1 月版。此版本中有許多更新,希望您喜歡,其中一些主要亮點包括

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新Insiders:想盡快嘗試新功能嗎?您可以下載每晚Insiders版本並儘快嘗試最新更新。

GitHub Copilot

Copilot 下一個編輯建議 (預覽)

設定github.copilot.nextEditSuggestions.enabled

GitHub Copilot 的程式碼補全在自動補全方面表現出色,但由於大多數編碼活動都是編輯現有程式碼,因此補全自然而然地也演變為幫助編輯。因此,我們很高興釋出一個新的預覽功能,Copilot 下一個編輯建議 (Copilot NES)。

根據您正在進行的編輯,Copilot NES 既可以預測您想要進行的下一個編輯的位置,也可以預測該編輯應該是什麼。NES 會建議與您當前工作相關的未來更改,您可以簡單地使用 Tab 鍵快速導航並接受建議。

在以下示例中,請注意更改變數會觸發檔案下方的一個編輯建議。只需使用 Tab 鍵即可導航並接受建議。側邊欄指示器將引導您找到下一個編輯建議。

Video showing Copilot NES suggesting code edits at another location. The gutter shows an arrow indicating the relative position of the edit.

透過 VS Code 設定 github.copilot.nextEditSuggestions.enabled 啟用 Copilot NES。

根據編輯的大小和型別,建議的渲染可能會從並排動態更改為當前行下方。配置 editor.inlineSuggest.edits.renderSideBySide 設定,始終在當前行下方渲染建議。

Copilot NES 正在迅速發展,我們迫不及待地希望透過 我們的倉庫 中的問題獲取您的反饋。隨著我們擴充套件 NES 體驗,您可以閱讀我們的完整 Copilot NES 文件 以獲取更多資訊和場景。

注意:如果您是 Copilot Business 或 Enterprise 使用者,除了在編輯器中設定 github.copilot.nextEditSuggestions.enabled 之外,您組織的管理員還必須選擇加入使用 Copilot “編輯器預覽功能”。

Copilot 編輯

Copilot 編輯正式釋出

在 VS Code 10 月版中,我們宣佈了 Copilot Edits 的預覽版。今天,我們正式宣佈 Copilot Edits 正式釋出!Copilot Edits 經過程式碼編輯最佳化,使您能夠直接從聊天中對工作區中的多個檔案進行程式碼更改。

改進的編輯器控制元件

現在可以單獨接受和放棄編輯,為您提供更多控制。此外,新功能是,切換到並排檢視時,編輯的編輯器控制元件仍然可見。這對於理解較大的更改很有用。

顯示如何在編輯器中接受 Copilot Edits 的單個更改的螢幕截圖。 主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)

最後,我們添加了一個新設定,用於在可配置的超時後自動接受編輯建議。該設定為 chat.editing.autoAcceptDelay,它指定了更改被接受的秒數。當您與接受按鈕互動或開始審查更改時,倒計時停止。這對於任何在週末熬夜觀看的人來說都應該很熟悉。

主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)

在編輯器中應用

在 Copilot Chat 中,可以使用程式碼塊工具欄中的“應用到編輯器”操作將任何程式碼塊應用到工作區中的檔案。我們對這種體驗進行了一些改進:

  • 操作的懸停現在顯示了生成程式碼塊的檔案。

    Screenshot that shows the Apply Code Block hover text, indicating the target file name.

  • 如果程式碼塊對應一個不存在的檔案,系統會提示您在哪裡建立檔案。這可以是在 Copilot 建議的檔案路徑中,在無標題編輯器中,或在當前活動的編輯器中。

  • 計算並應用更改時,使用與 Copilot Edits 相同的流程和 UI。您可以單獨審查、改進或放棄每個更改。

時間上下文

時間上下文透過向語言模型提供您最近互動過的檔案資訊,幫助編輯或生成程式碼。我們正在試驗和衡量其有效性,但也可以手動啟用,github.copilot.chat.editor.temporalContext.enabled 用於內聯聊天,github.copilot.chat.edits.temporalContext.enabled 用於 Copilot Edits。

工作區索引狀態 UI

當您使用 @workspace#codebase 向 Copilot 提問有關專案中程式碼的問題時,我們使用索引快速準確地搜尋您的程式碼庫,以包含相關程式碼片段作為上下文。此索引可以是由 GitHub 管理的遠端索引本地儲存的索引,或基本索引,作為無法使用遠端索引的大型專案的備用。

本次迭代中,我們將新的工作區索引新增到了狀態列中的語言狀態指示器中,該指示器顯示了 Copilot 使用的索引型別和相關資訊,例如正在重新索引的檔案數量。要檢視此資訊,只需選擇 VS Code 狀態列中的 {} 圖示。

Screenshot that shows the status of the Copilot workspace indexing in the Status Bar.

檢視 Copilot 工作區文件 以獲取有關工作區索引型別以及如何在它們之間切換的更多資訊。

構建遠端工作區索引

遠端工作區索引由 GitHub 管理。遠端索引可以快速提供高質量的結果,即使對於大型專案也是如此。它們也只需要為每個 GitHub 專案構建一次,而不是每個使用者構建一次。

鑑於所有這些優點,我們增加了幾種將專案升級到遠端索引的新方法:

  • 執行新的GitHub Copilot: 構建遠端索引命令。

  • 工作區索引狀態 UI 中選擇“構建索引”按鈕。這僅在您的專案符合遠端索引的條件時顯示。

  • 在您看到的第一個 @workspace 響應中選擇“構建索引”按鈕。這僅在您的專案符合條件時顯示,並且每個工作區只顯示一次。

請記住,目前只有具有 GitHub 遠端的專案才能使用遠端索引。構建遠端索引可能也需要一些時間,特別是如果您的專案很大。檢視工作區索引狀態 UI 以檢視遠端索引是否已完成。

工作區搜尋改進

我們還繼續最佳化 @workspace#codebase 的程式碼搜尋。亮點包括:

  • 使用遠端索引時,改進了對本地更改檔案的跟蹤和處理。

  • 添加了本地索引中更改檔案的後臺更新,這樣 @workspace 問題就不必等待它們更新。

  • 優化了大型專案的基本索引

Git 更改上下文變數

現在,在編寫 Chat 或 Edits 的查詢時,可以使用 #changes 上下文變數引用 Git 原始碼管理中已修改的檔案。例如,您可以提示 summarize the #changes in my workspace

Screenshot of a Copilot chat response, which lists the modified files and changes when prompting for '#changes'.

模型可用性

現在,在使用 Copilot 時,您可以選擇更多模型。以下模型現在可在 Visual Studio Code 和 github.com 聊天中的模型選擇器中使用:

  • OpenAI 的 o3-mini:OpenAI 最新推理模型,將逐步推廣,並向 GitHub Copilot Pro、Business 和 Enterprise 使用者提供。在 GitHub 部落格文章 中瞭解有關 o3-mini 模型可用性的更多資訊。

  • Gemini 2.0 Flash:Google 的最新模型在程式碼建議、文件和解釋程式碼方面表現出強大的能力。此模型現已向所有 GitHub Copilot 客戶(包括 Copilot Free)提供。在 GitHub 部落格文章 中瞭解有關 Gemini 2.0 Flash 模型可用性的更多資訊。

輔助功能

增強的輔助功能聲音

我們根據使用者反饋改進了多項輔助功能聲音,以提高畫質晰度和區分度。以下聲音已更新:

您可以透過從命令面板執行命令 Help: List Signal Sounds 來預覽這些更新。

Copilot 編輯輔助功能幫助對話方塊

螢幕閱讀器使用者現在可以透過在輸入框中呼叫 ⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1) 來訪問有關與 Copilot 編輯互動的指南。

此外,當編輯器包含待處理的 Copilot 編輯時,此狀態現在會在編輯器幫助對話方塊中指示。我們還引入了用於導航下一個 ⌥F5 (Windows, Linux Alt+F5) / 上一個 ⇧⌥F5 (Windows, Linux Shift+Alt+F5)、接受 ⌘Y (Windows, Linux Ctrl+Y)、丟棄 ⌘N (Windows, Linux Ctrl+N) 和切換差異檢視 的鍵盤快捷鍵。

原始碼管理輔助功能幫助對話方塊

如果當“原始碼管理”檢視處於焦點時呼叫“顯示輔助功能幫助”命令,它將開啟“原始碼管理輔助功能幫助”對話方塊,為螢幕閱讀器使用者提供重要資訊。該對話方塊包含當前原始碼管理狀態的摘要以及有關檢視和如何導航它們的常規資訊。

改進的螢幕閱讀器通知

當檢測到螢幕閱讀器時,相關通知現在包含一個“瞭解更多”連結,提供額外的上下文和資源。

在文字轉語音中忽略程式碼塊

以前,當您使用文字轉語音朗讀 Copilot 響應時,程式碼塊也會被朗讀出來。您可以使用 accessibility.voice.ignoreCodeBlocks 設定從文字轉語音會話中忽略程式碼塊。

工作臺

移動命令面板和快速輸入

現在您可以將命令面板和其他快速輸入移動到新位置,而不是將其固定在視窗頂部。

功能

  • 拖放命令面板或任何其他快速輸入,並將其吸附到中心和頂部。
  • 重新載入後位置保持不變,允許您為快速輸入設定新的永久位置。
  • “自定義佈局”選擇器中提供了預設位置。

信任擴充套件釋出者

首次從釋出者安裝擴充套件時,您現在將看到一個對話方塊,幫助您評估擴充套件釋出者的可信度。此功能有助於確保您只從受信任的來源安裝擴充套件,從而增強開發環境的安全性。

Screenshot that shows the Trust Publisher dialog that is shown when a user installs an extension.

如果安裝擴充套件包或帶有依賴項的擴充套件,信任釋出者也將隱式信任隨之安裝的擴充套件的釋出者。

當您更新到 VS Code 1.97 版本時,當前已安裝擴充套件的釋出者將自動受信任。您可以使用Extensions: Manage Trusted Extensions Publishers命令管理受信任的擴充套件釋出者。此命令允許您重置或撤銷您之前信任的釋出者的信任。

Screenshot that shows the Quick Pick list of trusted publishers, enabling unchecking publishers to make them untrusted.

注意:當沒有 VS Code 視窗開啟並且您從 CLI (code-insiders --install-extension pub.name) 安裝擴充套件時,擴充套件會安裝,但釋出者不會新增到受信任列表中。

有關更多資訊,您可以訪問瞭解更多連結。

輸出面板篩選

現在可以篩選輸出面板的內容,這可以大大改善日誌的管理和分析,尤其是在處理大量日誌資料時。

Screenshot of the Output panel, highlighting the filtering dropdown.

  • 按日誌級別篩選: 根據日誌的嚴重性級別(例如,錯誤、警告、資訊)篩選日誌。這有助於您首先關注最關鍵的問題。
  • 按類別篩選: 按特定類別縮小日誌範圍,允許您隔離來自特定源或元件的日誌。類別將從日誌資料中自動獲取。
  • 按文字篩選: 在日誌中搜索特定文字以快速查詢相關條目。

複合日誌

有時,您會發現資訊分散在多個日誌中,需要將它們一起檢視才能獲得完整的情況。現在,您可以在一個複合日誌檢視中檢視多個日誌。結合新的篩選功能,分析日誌變得更好了!

要建立自定義複合日誌,請使用“輸出”面板溢位選單中的“建立複合日誌...”操作。

您還可以在編輯器或新的 VS Code 視窗中打開復合日誌,以實現靈活的監控和分析。此功能透過提供相關日誌的合併檢視來提高您診斷問題的能力。

注意: 複合日誌檢視目前不會在 VS Code 重啟後持久化。

匯出和匯入日誌

現在可以使用“輸出”檢視溢位選單中的操作匯出和匯入日誌。此功能透過簡化日誌共享和審查來增強協作和日誌管理。

選擇“輸出”面板溢位選單中相應的“匯出日誌”或“匯入日誌”操作來匯出或匯入日誌。

設定編輯器搜尋修復

本次迭代中,我們修復了一個迴歸問題,即缺少字母的搜尋查詢沒有顯示預期結果。例如,設定編輯器在搜尋“editor formonpast”時找不到 editor.formatOnPaste 設定。

我們還修復了一個問題,即設定編輯器在搜尋期間會顯示目錄,即使它在狹窄的編輯器組中。

Screenshot of a narrow-width Settings editor, with a search for 'edtor cursstyle' that shows the 'editor.cursorStyle' setting and does not reveal the settings table of contents.

主題:淺粉色(在 vscode.dev 上預覽)

擴充套件篩選器增強

為了幫助您跟蹤有可用更新的擴充套件以及查詢最近更新的擴充套件,您現在在“擴充套件”檢視中有了兩個新的篩選選項:@outdated@recentlyUpdated

Screenshot of the filtering options in the Extension view, highlighting the 'outdated' and 'recentlyUpdated' options.

SVG 影像預覽支援

內建影像預覽現在對 SVG 檔案預覽提供基本支援。

Screenshot that shows the default preview of an SVG image in VS Code.

請檢視 Visual Studio Marketplace 以獲取更高階的 SVG 預覽擴充套件。

從 CLI 中從工作區刪除根資料夾

以前,您已經可以使用 --add 命令列選項將根資料夾新增到多根工作區

現在,我們還增加了使用新的 --remove 命令列選項從多根工作區刪除根資料夾的功能。

code --remove /path/to/rootfolder

編輯器

持久化查詢和替換歷史記錄

上一個里程碑,我們為編輯器查詢控制元件引入了歷史記錄持久化。在這個里程碑中,我們將其進一步擴充套件到替換輸入控制元件,以便您可以跨多個會話分別維護兩者。替換歷史記錄按工作區儲存,可以透過 editor.find.replaceHistory 設定停用。

評論

關閉未提交評論時確認

當您 esc 或以其他方式關閉包含未提交評論的評論控制元件時,將顯示確認對話方塊。您可以使用設定 comments.thread.confirmOnCollapse 停用此確認。

評論編輯器中的快速操作

可以從評論編輯器使用快速操作。

Screenshot that shows Quick actions in the Comments editor.

原始碼管理

Git blame 資訊

本里程碑中,我們繼續完善在編輯器和狀態列中顯示 Git blame 資訊的功能。我們還改進了懸停在編輯器裝飾或狀態列專案上時顯示的資訊。

Screenshot that shows Git blame information when hovering over the git blame item in the Status Bar.

Git blame 狀態列項現在預設啟用,您可以使用 git.blame.statusBarItem.enabled 設定停用它。使用 git.blame.editorDecoration.enabled 設定啟用 Git blame 編輯器裝飾。

我們還添加了命令,可以透過命令面板或使用鍵繫結輕鬆切換 Git blame 資訊:Git: Toggle Git Blame Editor DecorationGit: Toggle Git Blame Status Bar Item

GitHub 倉庫

對於託管在 GitHub 上的倉庫,我們已在時間線上下文選單和懸停、原始碼管理圖上下文選單和懸停以及 Git blame 編輯器裝飾和狀態列專案懸停中添加了一個新命令“在 GitHub 上開啟”。

Screenshot of the Source Control history item hover, highlighting the Open on GitHub link.

GitHub 問題和拉取請求引用在時間線、原始碼管理圖以及 Git blame 編輯器裝飾和狀態列專案懸停中以連結形式呈現,以便可以輕鬆地在瀏覽器中開啟。

最後但同樣重要的是,我們還在時間線、原始碼管理圖以及 Git blame 編輯器裝飾和狀態列專案懸停中添加了 GitHub 頭像。使用 github.showAvatar 設定停用 GitHub 頭像的渲染。

原始碼管理圖操作

我們透過將限定於歷史項引用(例如,分支標記)的操作新增到上下文選單,擴充套件了原始碼管理圖檢視的功能。我們新增的第一個操作是檢出刪除分支刪除標記,它們允許您直接從原始碼管理圖檢視輕鬆檢出分支/標記、刪除分支和刪除標記。

我們計劃在未來的里程碑中新增更多操作。

Notebook

單元格執行時的內聯值

現在,Notebook 編輯器支援在單元格執行後透過設定 notebook.inlineValues 顯示內聯值。啟用後,在成功執行單元格後,將根據已註冊的 InlineValueProvider 的結果顯示內聯值。

如果沒有提供者,則回退方法透過簡單的正則表示式匹配將核心中找到的值與單元格文件進行匹配。建議使用語言擴充套件提供的提供者以確保更準確的結果。

Screenshot that shows inline values after cell execution in the notebook editor.

Markdown 單元格的自定義字體系列

Notebook 編輯器現在支援為渲染的 Markdown 單元格設定自定義字體系列。這可以透過 notebook.markup.fontFamily 設定進行控制。如果留空,則使用預設的 Workbench 字體系列。

Screenshot that shows a custom font for rendered Markdown cells.

終端

連字支援

此功能現在被認為是穩定的。以下是自上一個版本以來的更改摘要:

支援 ConEmu 的進度轉義序列

現在支援 ConEmu 首創的用於在終端中報告進度的 ESC ] 9 ; 4 轉義序列。一些 CLI 工具(例如 winget)使用它來報告進度。要在終端選項卡中檢視進度,請將 ${progress} 新增到 terminal.integrated.tabs.titleterminal.integrated.tabs.description。這通常顯示為進度旋轉器或百分比。

截斷命令的粘性滾動

終端中的粘性滾動 (terminal.integrated.stickyScroll.enabled) 現在在命令末尾帶有省略號時顯示

Screenshot that shows an ellipsis at the end of a command in Sticky Scroll when it is truncated.

配置最後一個終端關閉時的行為

新的 terminal.integrated.hideOnLastClosed 設定允許配置當最後一個終端關閉時是否關閉面板。與此同時,當沒有終端開啟時的體驗也得到了改善。

任務

列號變數

新的 ${columnNumber} 變數可用於 tasks.jsonlaunch.json 以引用游標位置的列號。請參閱 VS Code 文件中變數的完整列表。

除錯

按值篩選和搜尋

您現在可以在“變數”和“監視”檢視中搜索檢視 (⌥⌘F (Windows, Linux Ctrl+Alt+F)) 以按變數和表示式值進行篩選,而不僅僅是按名稱。

Screenshot that shows the search control in the Variables view when debugging.

在除錯控制檯中選擇

除錯控制檯現在支援更長、更可靠的內容選擇,從而更容易複製和貼上。

JavaScript 偵錯程式

現在可以使用命令面板或編輯器操作中的“Debug: Pretty print for debugging”命令對指令碼進行美化列印,即使它們不是偵錯程式當前暫停的源。

語言

TypeScript 5.7.3

此版本包含 TypeScript 5.7.3 恢復版本。此次小更新修復了一些匯入錯誤和迴歸。

右鍵單擊以從 Markdown 預覽中開啟影像

您現在可以右鍵單擊 Markdown 預覽中的工作區影像,然後選擇“開啟影像”以在新編輯器中開啟它。

Screenshot that shows the context menu option to open an image in the Markdown preview.

這適用於當前工作區中的任何影像。

VS Code 的內建 Markdown 功能支援自動驗證到檔案和影像的本地連結。這是發現常見錯誤的好方法,例如連結到已重新命名或磁碟上不再存在的檔案。

為了幫助您發現此功能,我們為連結驗證添加了一個新的語言狀態項:

Screenshot that shows the Markdown link validation language status item.

開啟 Markdown 檔案後,選擇狀態列中的 {} 以檢視連結驗證狀態。您還可以使用狀態項快速開啟和關閉連結驗證。

新的 Ruby 語法高亮語法

我們已放棄舊的、未維護的 Ruby 語法 (來自 textmate/ruby.tmbundle),現在我們的 Ruby 語法來自 Shopify/ruby-lsp

遠端開發

遠端開發擴充套件 允許您將 開發容器、透過 SSH 的遠端計算機或 遠端隧道,或 適用於 Linux 的 Windows 子系統 (WSL) 用作功能齊全的開發環境。

亮點包括:

  • 連線到 Linux 舊版伺服器的遷移路徑
  • SSH 聊天參與者改進
  • SSH 配置改進
  • SSH 的預設遠端擴充套件

您可以在 遠端開發發行說明 中瞭解有關這些功能的更多資訊。

對擴充套件的貢獻

Microsoft 帳戶

Microsoft 帳戶現在使用 MSAL (在 Windows 上支援 WAM)

注意:上個月推出的基於 MSAL 的 Microsoft 身份驗證由於一個關鍵錯誤而不得不回滾。此錯誤已修復,我們正在繼續推廣。

為了確保 Microsoft 身份驗證的強大安全基線,我們已在 Microsoft 帳戶擴充套件中採用了 Microsoft 身份驗證庫

這項工作的突出特點之一是 WAM (Web 帳戶管理器...也稱為 Broker) 整合。簡而言之,我們現在不再透過瀏覽器進行 Microsoft 身份驗證流,而是直接與作業系統通訊,這是獲取 Microsoft 身份驗證會話的推薦方式。此外,它更快,因為我們能夠利用您已在作業系統中登入的帳戶。

Screenshot that shows an authentication popup that the OS shows over VS Code.

如果您發現此新流程有任何問題,請告訴我們。如果您確實發現重大問題並需要恢復到舊的 Microsoft 身份驗證行為,您可以使用 microsoft-authentication.implementation (將其設定為 classic,並重新啟動 VS Code) 來實現,但請記住此設定不會再存在很長時間。因此,如果您在 MSAL 流程中遇到問題,請提出問題。

Python

從終端啟動本機 REPL

您現在能夠從終端中的 REPL 啟動 VS Code Native REPL。將 python.terminal.shellIntegration.enabled 設定為 true 應在終端中的 Python REPL 中顯示一個可點選的連結,允許您直接從終端開啟 VS Code Native REPL。

無配置除錯

您現在可以直接從終端除錯 Python 指令碼或模組,無需設定,作為新的無配置除錯功能的一部分!檢視有關該功能的wiki 頁面,瞭解所有詳細資訊和故障排除提示。

測試發現取消

當從“測試資源管理器”UI 觸發測試發現時,您現在可以取消正在進行的測試發現呼叫。在發現期間,使用“取消”按鈕,它會替換“重新整理”按鈕。

Screenshot that shows the Test Explorer, highlighting the Cancel button to cancel the test discovery.

轉到實現

Pylance 現在支援轉到實現,它允許您從函式或方法的用法直接更快地導航到其實現。當使用繼承類時,這是一個特別有用的功能。

Screenshot that shows the Go to Implementation displayed via the context menu

AI 程式碼操作:生成符號 (實驗性)

有一個新的實驗性 AI 程式碼操作,用於使用 Pylance 和 Copilot 生成符號。要試用它,您可以啟用以下設定:

"python.analysis.aiCodeActions": {"generateSymbol": true}

然後,一旦您定義了一個新符號,例如類或函式,您可以選擇“使用 Copilot 生成符號”程式碼操作,讓 Copilot 處理實現!如果您願意,您可以使用 Pylance 的“移動符號”程式碼操作將其移動到不同的檔案。

GitHub 拉取請求和議題

GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:

  • 全域性拉取請求查詢,帶有一個變數,用於指定相對於今天的日期範圍 (${today-7d})。
  • 現在註釋中支援 :<emoji-name>: 樣式的表情符號。
  • 當您開啟未檢出的拉取請求的描述時,所有非過時評論都將顯示在評論面板中。

檢視擴充套件 0.104.0 版本的 更新日誌,瞭解其他亮點。

預覽功能

代理模式 (實驗性)

我們一直在為 Copilot Edits 開發一種新的代理模式。在代理模式下,Copilot 可以自動搜尋您的工作區以獲取相關上下文,編輯檔案,檢查錯誤,並執行終端命令(經您許可)以端到端地完成任務。

Screenshot that shows agent mode in the Copilot Edits view.

您可以使用 Copilot Edits 檢視中的下拉選單在我們已經使用了幾個月的當前編輯模式和代理模式之間切換。要檢視下拉選單,請啟用 chat.agent.enabled 設定。您現在可以在 VS Code Insiders 中開始使用代理模式。我們將逐步將其推廣到 VS Code Stable 使用者。如果設定在 Stable 中沒有顯示給您,那麼它尚未為您啟用。

Screenshot of the agent mode setting in the Settings editor.

在代理模式下,Copilot 自主執行,但它只能編輯當前工作區中的檔案。當它想要執行終端命令時,它會向您顯示命令並等待您審查並選擇“繼續”後再進行。

注意:Copilot Edits 在代理模式下可能會使用許多聊天請求,因此它會定期暫停並詢問您是否繼續。您可以使用 chat.agent.maxRequests 自定義此行為。對於 Copilot 付費使用者,此預設值為 15;對於 Copilot 免費使用者,預設值為 5。

在 VS Code 文件中瞭解有關 Copilot Edits 中的代理模式 的更多資訊。

代理程式碼庫搜尋 (預覽)

您可以在查詢中新增 #codebase,Copilot Edits 將發現與您的任務相關的檔案。我們添加了實驗性支援,使用檔案和文字搜尋、Git 倉庫狀態和目錄讀取等附加工具發現相關檔案。此前,#codebase 僅執行語義搜尋。

您可以透過 github.copilot.chat.edits.codesearch.enabled 啟用它,並請與我們分享任何反饋

VS Code Insiders 中的 Copilot Vision (預覽)

我們正在 VS Code Insiders 的 GitHub Copilot Chat 預釋出版本中引入端到端視覺支援。這允許您在 Copilot Chat 提示中附加影像並與影像互動。例如,如果您在除錯時遇到錯誤,可以快速附加 VS Code 的螢幕截圖並請求 Copilot 幫助您解決問題。

Screenshot that shows an attached image in a Copilot Chat prompt. Hovering over the image shows a preview of it.

您現在可以使用多種方法附加影像:

  • 從作業系統或“資源管理器”檢視中拖放影像。
  • 從剪貼簿貼上影像。
  • 附加 VS Code 視窗的螢幕截圖(選擇“附加”>“螢幕截圖視窗”)。

如果所選模型目前不具備處理影像的能力,則會顯示警告。目前唯一支援的模型將是 GPT 4o。目前,支援的影像型別為 JPEG/JPGPNGGIFWEBP

可複用提示 (實驗性)

此功能允許您構建、儲存和共享可複用提示。提示檔案是遵循 Copilot Chat 中編寫提示的相同格式的 .prompt.md Markdown 檔案,它可以連結到其他檔案甚至其他提示。您可以附加提示檔案以獲取特定任務的指導、輔助程式碼生成或保留完整的提示以供以後使用。

要啟用提示檔案,請將 chat.promptFiles 設定為 true,或使用 { "/path/to/folder": boolean } 表示法指定不同的路徑。如果未指定其他路徑,則預設使用 .github/prompts 資料夾來查詢提示檔案 (*.prompt.md)。

在 VS Code 文件中瞭解有關 提示檔案 的更多資訊。

Linux 上的自定義標題欄 (實驗性)

本里程碑中,我們開始了一項實驗,為一部分 Linux 使用者啟用自定義標題欄。

Screenshot that shows the custom VS Code title bar on Linux.

如果您不是實驗的一部分,您可以手動將 window.titleBarStyle 配置為 custom 來試用。

您始終可以恢復到本機標題裝飾,無論是從自定義標題上下文選單還是透過將 window.titleBarStyle 配置為 native

Screenshot that shows the content menu option to disable the custom title bar on Linux.

TypeScript 5.8 beta 支援

此版本包含對 TypeScript 5.8 beta 版本的支援。檢視 TypeScript 5.8 部落格文章,瞭解此版本中的詳細資訊。

要開始使用 TypeScript 5.8 的預覽版,請安裝 TypeScript Nightly 擴充套件。分享您的反饋,並告訴我們您在 TypeScript 5.8 中是否遇到任何錯誤。

更多 Shell 的終端補全

我們迭代了上一版本中引入的基於新提出的 API 構建的通用終端補全功能。一旦透過 terminal.integrated.suggest.enabled 啟用,新的補全功能將取代以前內建的 PowerShell 提供程式,但現在可以使用 terminal.integrated.suggest.providers 進行自定義。

以下是本次釋出的主要更新:

  • 增強的小部件樣式和配置,以與編輯器的建議小部件保持一致。
  • 可配置的狀態列 (terminal.integrated.suggest.showStatusBar) 提供上下文操作和資訊。
  • 改進了對命令的引數感知,包括:codecode-insiderscdlsrmechomkdirrmdirtouch
  • 將命令或資源路徑顯示為附加詳細資訊。
  • 添加了對目錄導航快捷方式的支援,如 ...../../
  • 啟用螢幕閱讀器使用。
  • $PATH 中提取的條目現在只會在它們是可執行檔案時顯示。由於 Windows 在檔案元資料中沒有可執行位的概念,因此可以使用 terminal.integrated.suggest.windowsExecutableExtensions 配置擴充套件列表。這些現在還在可用時使用實際的 shell 環境,使用即將提出的 API。
  • 增強的鍵盤支援,用於切換詳細資訊 ⌃Space (Windows, Linux Ctrl+Space) 和切換建議詳細資訊焦點 ⌃⌥Space (Windows, Linux Ctrl+Alt+Space)
  • 建議現在將始終在每種型別上,更符合編輯器中快速建議的工作方式。
  • 現在將建議 PowerShell 特定的全域性補全,例如 Get-ChildItemWrite-Host 等。

基於 Tree-Sitter 的 TypeScript 語法高亮

由於我們的許多 Textmate 語法不再維護,我們一直在研究使用 Tree-Sitter 進行語法高亮。我們從 TypeScript 開始,以便團隊可以自行託管並提供反饋。您可以使用 editor.experimental.preferTreeSitter 設定試用它的早期預覽版。

擴充套件開發

文件貼上 API

文件貼上 API 允許擴充套件在文字文件中掛接複製/貼上操作。使用此 API,您的擴充套件可以:

  • 複製時,將資料寫入剪貼簿。這包括寫入可在貼上時獲取的元資料。

  • 貼上時,生成自定義編輯以應用貼上。這可以更改正在貼上的文字內容,或進行更復雜的工作區編輯,例如建立新檔案。

  • 提供多種貼上內容的方式。使用者可以使用貼上控制元件或 editor.pasteAs.preferences 設定選擇如何貼上內容。

VS Code 使用文件貼上 API 實現諸如 貼上 JavaScript 和 TypeScript 時更新匯入貼上 URL 時自動建立 Markdown 連結 等功能。

要開始使用文件貼上 API,請檢視 文件貼上擴充套件示例。要了解更復雜的示例,請檢視內建 Markdown 擴充套件如何 實現影像檔案貼上 以將影像插入 Markdown 文件。

檔案 openLabel 顯示在簡單檔案選擇器中

OpenDialogOptions 中的 openLabel 屬性現在在簡單檔案選擇器中得到支援(除了以前僅支援的系統檔案選擇器)。這允許您為檔案選擇器中的按鈕提供自定義標籤。

檔案級註釋 API

註釋 API 支援建立和顯示檔案級註釋。檔案級註釋顯示在檔案的頂部,第一行之前。它們不附著到檔案中的特定行或範圍。要顯示檔案級註釋,請將註釋的 range 設定為 undefined。要支援從註釋範圍提供程式留下檔案級註釋,請將 CommentingRangeProvider 上的 enableFileComments 屬性設定為 true

提議的 API

終端補全提供程式

您現在可以註冊一個終端補全提供程式,並在此 GitHub 問題中告訴我們您的想法。

可以在我們的終端建議擴充套件中找到一個示例,該擴充套件在透過 terminal.integrated.suggest.enabled 啟用時提供補全。

終端 Shell 型別

擴充套件將能夠訪問當前活動的 shell 型別資訊shellType 欄位將是 TerminalState 的一部分。

使用此 shell 型別資訊執行您需要的 shell 特定操作。

工程

內務管理

作為我們每年 12 月的內務管理工作的一部分,我們專注於清理所有倉庫中的 GitHub 問題和拉取請求。今年,我們淨減少了 3,821 個問題和拉取請求,確保我們的積壓工作保持相關性和可管理性。

透過遵循我們的問題清理指南,我們審查並分類了過時、重複且不再相關的問題。這有助於我們保持高效的開發工作流程,並專注於為使用者改進 Visual Studio Code。

感謝社群的持續參與和反饋——您的貢獻讓 VS Code 每天都變得更好!🚀

Chart that shows the trend of the number of open issues over the last years. The chart shows a steep decline each year during December, the housekeeping month.

TypeScript 工作區中檔案監視的資源最佳化

對減少大型 TypeScript 工作區(數千個 TypeScript 檔案或專案)中檔案監視的開銷進行了一些最佳化。具體來說,當開啟此類工作區並初始化監視器時,您應該不再看到 CPU 峰值,或者 CPU 使用率應該會快速穩定下來。

有關更多詳細資訊,請參閱此 VS Code 問題

值得注意的修復

  • 160325 按下 ctrl+D 後抑制終端啟動失敗
  • 230438 支援內碼表 1125 又名 cp866u
  • 238577 增加預設視窗大小
  • 197377 launch.json 或 tasks.json 中的 workspaceFolder 變數替換應使用 URI 用於虛擬檔案系統
  • 229857 執行 focus comment on line 後 a11y 檢視為空

感謝

最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-eslint 的貢獻

vscode-extension-samples 的貢獻

vscode-js-debug 的貢獻

vscode-jupyter 的貢獻

vscode-loc 的貢獻

vscode-prompt-tsx 的貢獻

vscode-pull-request-github 的貢獻

vscode-pylint 的貢獻

vscode-python-debugger 的貢獻

vscode-ripgrep 的貢獻

vscode-test 的貢獻

language-server-protocol 的貢獻