現已釋出!閱讀關於 11 月新增功能和修復的內容。

2025 年 10 月 (版本 1.106)

釋出日期:2025 年 11 月 12 日

更新 1.106.1:此更新解決了這些 問題

更新 1.106.2:此更新解決了這些 問題

更新 1.106.3:此更新解決了這些 問題

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


歡迎來到 Visual Studio Code 2025 年 10 月釋出版。

Graphic showing the key highlights of the October 2025 release: Agent HQ, Security and trust, and great editor experience.

本次釋出版在三個關鍵領域帶來了重大更新

  • Agent HQ 是您啟動、監控和審查代理會話的單一檢視,無論是本地還是遠端,無論是來自 Copilot 還是 OpenAI Codex。
  • 安全和信任 幫助您保持控制,並自信地將更多工委託給 AI。
  • 出色的編輯器體驗,讓您的日常編碼更順暢、更愉快。

觀看我們的 VS Code 1.106 釋出亮點影片,聽我們的工程師介紹這些功能!

編碼愉快!


如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。

Insiders:想盡快嘗試新功能?
您可以下載每晚的 Insiders 構建版本,並儘快嘗試最新更新。
下載 Insiders

代理

代理會話檢視

設定chat.agentSessionsViewLocation

當您將任務交給各種編碼代理時,擁有所有活動會話的清晰概覽非常重要。代理會話檢視提供了一個集中的位置來管理您的活動聊天會話。這包括 VS Code 中的本地會話以及其他環境中後臺代理建立的會話,例如 Copilot 編碼代理GitHub Copilot CLIOpenAI 的 Codex。代理會話檢視現在預設啟用,並且可以透過 chat.agentSessionsViewLocation 設定進行管理。

預設情況下,代理會話檢視按來源列出您所有活動的聊天會話。該檢視分為 VS Code 中的本地聊天會話以及後臺代理會話的區域。

Screenshot of the Agent Sessions view in the Primary Side Bar, showing a view for local chat sessions, and coding agents like Copilot coding agent, Copilot CLI and Codex.

如果您希望擁有一個跨所有提供商的統一會話檢視,您可以為 chat.agentSessionsViewLocation 設定啟用 single-view 選項。此選項還會將代理會話檢視移至輔助側邊欄的聊天檢視旁邊,從而更輕鬆地在聊天和管理會話之間切換。

請注意,統一檢視中並非所有功能都可用。我們正在積極努力使該檢視在不久的將來成為預設檢視。

代理會話檢視現在也支援搜尋(⌥⌘F (Windows, Linux Ctrl+Alt+F)),以幫助您輕鬆查詢列表中的會話。

在 VS Code 文件中瞭解有關 代理會話檢視 的更多資訊。

計劃 Agent

新的計劃代理可幫助開發人員在編寫任何程式碼之前按部就班地分解複雜任務。從“聊天”檢視中的代理下拉列表中選擇“計劃”即可開始。在處理多步實現時,VS Code 會透過澄清性問題提示您,並生成一個詳細的實現計劃,您首先需要批准該計劃,以確保所有要求和上下文都已在開始時捕獲。

我們建議在實現之前花時間對計劃進行迭代。您可以多次完善要求、調整範圍並解決未決問題,以建立堅實的基礎。批准計劃後,Copilot 會在 VS Code 中本地或透過 雲代理 來實現計劃,從而為您提供更大的開發過程控制和可見性。這有助於您及早發現差距或遺漏的決策,從而減少返工並提高程式碼質量。

您還可以建立自己的自定義計劃代理,以適應您團隊特定的工作流程和工具。使用“配置自定義代理”選單將內建計劃代理作為起點複製,然後自定義計劃風格、工具和提示以匹配您的開發過程。瞭解有關 VS Code 聊天中的計劃建立自定義代理 的更多資訊。

雲代理

在此版本中,我們對編輯器中的雲代理會話進行了一些更新。

我們將 Copilot 編碼代理整合從 GitHub Pull Request 擴充套件遷移到了 Copilot Chat 擴充套件,以便在 VS Code 中提供更原生的雲代理體驗。此整合將為 VS Code 和 GitHub Mission Control 之間的更平滑的過渡和互動鋪平道路,例如直接從瀏覽器中的代理會話檢視開啟雲代理會話,反之亦然。

CLI 代理

在此版本中,我們還發布了與 Copilot CLI 的初步整合。您可以在聊天編輯器或整合終端中建立新的 CLI 代理會話並恢復現有會話。

Screenshot of the CLI dropdown menu showing options to create a new CLI agent session or resume an existing one.

在 CLI 代理編輯器中,您可以像在終端中一樣向 Copilot CLI 傳送訊息、切換模型並附加上下文。

Screenshot showing a CLI agent editor and an integrated terminal with Copilot CLI sessions.

代理委託

我們持續改進委託給雲代理的體驗。

當您使用聊天面板中的雲按鈕委託給代理時,系統將為您提供一組可供委託的可用代理。您也可以透過 CLI 中的 /delegate 命令在 CLI 編輯器或終端例項中委託給 Copilot 編碼代理。

Screenshot showing delegating from a CLI agent editor.

CLI 代理編輯跟蹤

聊天編輯會話現在會跟蹤後臺代理(如 Copilot CLI)所做的編輯。當您從代理會話檢視建立會話時,可以透過內聯編輯氣泡和工作集檢視檢視跟蹤的編輯,從而更輕鬆地瞭解代理正在對您的工作區進行的更改。

聊天模式重新命名為自定義代理

為了更好地與其他環境使用的術語保持一致,VS Code 中的聊天模式已重新命名為自定義代理。

Screenshot of the agent picker control.

當您建立自定義代理時,定義檔案現在位於工作區的 .github/agents 中。這些檔案可以使用 .agents.md 字尾,並且還可以用作 GitHub Copilot 雲代理和 CLI 代理。

使用“聊天: 新建自定義代理...”建立新代理,並使用“聊天: 配置自定義代理...”進行管理。

如果您有現有的自定義聊天模式(.github/chatmodes 中的 .chatmode.md 檔案),它們將繼續工作並自動被視為自定義代理。當您在編輯器中開啟聊天代理檔案時,第一行會出現一個資訊標記,並提供一個快速修復程式將其遷移到自定義代理檔案。

自定義代理元資料

自定義代理 .agent.md 檔案現在接受額外的 target frontmatter 屬性來描述代理如何在不同環境中執行。

  • target: vscode:針對本地聊天最佳化代理,並啟用 namedescriptionargument-hintmodeltoolshandoffs 屬性。可以使用 VS Code 中安裝的任何工具。
  • target: github-copilot:為 Copilot 雲代理或 GitHub CLI 準備代理,支援 namedescriptiontoolsmcp-serverstarget。工具可以是 editsearchshellcustom-agent 以及來自 MCP 伺服器的工具。

所有代理都可以在所有環境中執行。每個環境都會忽略未知的屬性和工具。

  • name:允許您在不重新命名檔案的情況下覆蓋代理標籤。
  • argument-hint:在聊天輸入中顯示提示,以便團隊成員知道如何提示代理。
  • handoffs:連線到其他代理的引導式轉換,讓您可以連結多步工作流。

代理檔案編輯器提供驗證、程式碼補全、懸停和程式碼操作。

GIF of validation while editing custom agent files.

在我們的文件中瞭解有關 自定義代理和代理交接 的更多資訊。

程式碼編輯

差異編輯器中的已刪除程式碼現在可選

以前,當您刪除程式碼並在差異編輯器中檢視更改時,無法複製這些已刪除的行。在此版本中,在使用內聯差異檢視時,您現在可以從差異編輯器中的已刪除行選擇和複製文字。

內聯建議是開源的

此版本繼續我們使 VS Code 成為開源 AI 編輯器的旅程。繼我們開源 GitHub Copilot Chat 的第一個里程碑之後,我們現在已將內聯建議合併到 vscode-copilot-chat 儲存庫中,從而實現了開源。

作為此里程碑的一部分,我們將 GitHub Copilot 擴充套件和 GitHub Copilot Chat 擴充套件合併為一個擴充套件體驗。Chat 擴充套件現在支援所有內聯建議,提供您習慣的相同智慧程式碼建議,同時保留所有聊天和代理功能。此更改應該是透明的,您在輸入時將繼續獲得相同的程式碼建議。如果您遇到任何問題,可以使用 chat.extensionUnification.enabled 設定暫時恢復。

GitHub Copilot 擴充套件將於 2026 年初棄用。請參閱我們的 部落格文章,瞭解此里程碑的更多資訊並探索開原始碼。

從標尺停用內聯建議

您現在可以直接從標尺圖示中暫停內聯建議。當您將滑鼠懸停在標尺圖示上時,會出現一個帶有“暫停”選項的控制元件。選擇它並選擇一個持續時間來暫停建議。

Screenshot showing the Snooze button in the gutter context menu for inline suggestions.

轉到行改進

在此迭代中,我們對“轉到行”命令(⌃G (Windows, Linux Ctrl+G))進行了多項增強,改進了檔案內的導航。

轉到行”命令現在支援透過使用 :: 語法導航到檔案中的特定字元位置。當工具在特定字元偏移量處報告錯誤時(例如,“錯誤發生在位置 599”),這非常有用。

要導航到字元偏移量,請在“轉到行”輸入框中鍵入 ::,後跟字元編號。例如

  • ::599 - 導航到檔案中的第 599 個字元
  • ::-100 - 從檔案末尾向前導航 100 個字元

使用輸入框中的切換按鈕在 1 基(預設)和 0 基偏移量計算之間切換。

此外,“轉到行”命令還能更優雅地處理超出範圍的值,並可以更輕鬆地導航到檔案和行的開頭或結尾。

  • 行號:鍵入大於檔案行數的行號將導航到最後一行。
  • 列號:使用負數列號可以從行尾導航。例如,:12:-1 將您帶到第 12 行的最後一個字元。鍵入大於行長度的列號將帶您到行尾。

編輯器體驗

重新整理圖示

在此版本中,codicon 圖示集已進行了改頭換面。新圖示經過了曲線、新修飾符設計和更精確的比喻的細化,使其看起來現代、友好且更易讀。

Screenshot of updated product icons showing a more modern appearance and increased legibility.

Linux 策略支援

我們引入了支援使用 JSON 檔案在 Linux 系統上管理 VS Code 策略。這使得管理員可以在 Linux 計算機上的所有使用者之間強制執行特定的設定和配置。

有關更多詳細資訊,請參閱 Linux 上的 JSON 策略

多檔案差異編輯器中的導航更改

就像您可以導航到單個檔案的差異編輯器中的下一個或上一個更改一樣,現在您可以在多檔案差異編輯器中跨檔案進行導航。使用快捷鍵或向上和向下箭頭鍵來檢視跨檔案的更改。

複製診斷懸停文字

診斷懸停(錯誤、警告、資訊和提示)中現在會出現一個複製按鈕,使複製錯誤訊息更加容易。當您將滑鼠懸停在診斷標記上時,將滑鼠移到懸停訊息上,將在右上角顯示一個複製按鈕。

Screenshot of hovering over a diagnostic hover revealing a copy button in the top-right corner.

區分重音的命令過濾

命令面板現在在搜尋命令時會忽略字元重音,從而更容易找到所需內容,無論您的鍵盤佈局或語言偏好如何。例如,在搜尋包含法語詞 Générer(意為 Generate)的命令時,鍵入不帶重音的 generer 即可在結果中顯示匹配的命令。

這在使用不同鍵盤佈局或在查詢命令時輸入錯誤時非常有用。過濾基於 Unicode 標準化形式 D,並支援所有 Unicode 語言。

高階 VS Code 設定

VS Code 現在支援高階設定的概念。這些設定用於配置專門的場景,並面向需要對其環境進行精細控制的高階使用者。預設情況下,高階設定在設定編輯器中隱藏,以保持介面簡潔,同時在需要時提供這些強大的選項。

要檢視和配置高階設定,請在設定編輯器的過濾器下拉選單中選擇“高階”,或在搜尋框中鍵入 @tag:advanced

Screenshot showing the Settings editor with the Advanced filter applied, displaying advanced settings with the Advanced tag badge

當您按確切名稱搜尋特定設定或使用 @id: 過濾器時,高階設定將顯示在結果中,而無需應用“高階”過濾器。這可確保您始終能找到所需的設定。

高階設定可以與其他過濾器(如 @modified@feature:)結合使用,以幫助您準確找到所需內容。例如,@tag:advanced @feature:terminal 只顯示與終端相關的高階設定。

注意:擴充套件作者可以透過將 advanced 標籤新增到設定配置來將其設定標記為高階。

聊天

基於嵌入的工具選擇

在此版本中,我們顯著改進了過濾和分組工具的方式,以支援擁有大量(超過 100 個)已啟用工具的聊天使用者。您應該會更少地看到“正在最佳化工具選擇...”載入狀態,並且持續時間更短。我們還透過降低代理混淆的機率來改進工具選擇,以確保選擇正確的工具。

工具批准和信任

外部資料的會後批准

提取外部資料的代理工具現在支援會後批准。這有助於防止潛在的提示注入攻擊,允許您在資料用於聊天會話之前進行審查。

#fetch 工具以及聲明瞭 openWorldHint 的模型上下文協議 (MCP) 工具支援會後批准。

信任伺服器或擴充套件的所有工具

您現在可以透過“允許”按鈕下拉選單在源級別信任 MCP 伺服器和擴充套件工具。這意味著您可以一次性批准來自特定 MCP 伺服器或擴充套件的所有工具,而無需單獨批准每個工具。

我們還更新了“聊天: 管理工具批准”命令體驗,讓您可以管理工具的預批准和會後批准。

Screenshot of the Manage Tool Approval command experience, enabling tools to skip approval and skipping content review.

工具自動批准狀態已移動

自動批准狀態已從聊天檢視內的行內移動到工具呼叫狀態/勾號圖示。

Screenshot of hovering a tool's tick icon will reveal why it was auto approved

終端工具

自動批准解析器改進

以前,終端工具中的子命令檢測使用了一種簡單的方法,即僅根據 |&& 等特定字串進行分割。這在多種方面存在問題,其中最嚴重的是當管道字元用在字串內部時,例如 echo "a|b|c",它會檢測到子命令 echobc"。另一個重要問題是,由於我們無法可靠地提取子命令,我們為了安全起見,完全禁止了括號對、花括號對和反引號,以防止意外執行。

在此版本中,我們將 解析器 整合到此功能中,並使用 PowerShell 語法bash 語法 來處理其他所有內容*。因此,即使是極其複雜的用例也應該被正確提取。

Screenshot of detecting "$()" inside echo calls.

*請注意,這意味著當 shell 語法與 bash 不同時(例如 zsh 中的 ;),它可能無法捕獲子命令

檔案寫入/重定向檢測(實驗性)

藉助新的解析器,我們可以相對可靠地提取透過重定向寫入的檔案。新增了實驗性設定 chat.tools.terminal.blockDetectedFileWrites,該設定可以有條件地阻止自動批准。

Screenshot showing that writing outside the workspace by default will block auto approval.

停用預設自動批准規則(實驗性)

新的實驗性設定 chat.tools.terminal.ignoreDefaultAutoApproveRules 允許停用預設規則(允許和拒絕規則)。如果您想要更多控制而不必查詢預設值,這很有用。

特定於 shell 的提示和命令重寫

終端工具現在為 PowerShell、bash、zsh 和 fish 提供了特定於 shell 的描述。這應該能使代理建議的命令更可靠,並且更不容易失敗,尤其是在 PowerShell 中。

此外,對於 PowerShell,我們還將 && 重寫為 ;,因為 && 鏈式運算子在 Windows PowerShell (v5) 中不受支援。請注意,這暫時也適用於 PowerShell 7,直到 vscode#274548 被處理。

將終端命令附加到聊天

您現在可以從命令裝飾的上下文選單中將終端命令作為上下文附加到聊天中。附件共享命令、捕獲的輸出和退出程式碼,以便代理能夠準確瞭解發生了什麼。這適用於 shell 整合跟蹤的任何命令,使得無需複製貼上文字即可輕鬆升級故障排除。

在聊天中檢視終端輸出(實驗性)

新的 chat.tools.terminal.outputLocation 設定控制輸出的顯示位置。預設的 none 值可防止終端充斥面板。

每次呼叫聊天終端都會在進度元素上顯示兩個操作。

  • 顯示終端可顯示並聚焦隱藏的會話,並且透過豐富的 shell 整合,可直接滾動到相關命令。對於基本或無 shell 整合,該操作仍會聚焦正確的終端標籤頁。
  • 顯示輸出會在聊天檢視中內聯開啟終端的最終輸出。當命令以非零程式碼退出時,輸出檢視會自動展開。

npm i 失敗時,輸出會自動展開。透過“顯示終端”內聯操作可以顯示終端。

發現隱藏的聊天終端(實驗性)

setting(chat.tools.terminal.outputLocation):none 時,當至少存在一個隱藏的聊天終端時,終端標籤頁檢視中會顯示一個新的“X 個隱藏終端”按鈕。它會開啟一個快速選擇器,列出每個聊天終端及其聊天會話,以便您可以立即聚焦正確的程序。從終端溢位選單下的“檢視隱藏的聊天終端”中也可以找到相同的選擇器,並且一旦所有聊天終端再次可見,它就會消失。

代理執行 ls -la,命令成功,因此輸出被摺疊。從選項卡檢視中執行“隱藏終端”操作,並選擇、顯示和滾動終端以突出顯示命令。

將對話另存為提示

您現在可以使用 /savePrompt 命令將聊天對話另存為可重用提示。當您在活動的聊天會話中呼叫 /savePrompt 時,VS Code 會生成一個提示檔案,其中包含基於您的對話的通用提示。編輯器會顯示一個藍色按鈕,讓您可以將此提示儲存到有效位置,無論是使用者級別還是工作區級別。

Screenshot of the Save prompt button in the editor.

此功能取代了之前的 /save 命令,併為捕獲和共享有用的對話模式提供了更流暢的工作流程。生成的提示可以輕鬆地在將來的聊天會話中重用,或與您的團隊共享。瞭解有關 自定義提示檔案 的更多資訊。

編輯歡迎提示

您現在可以右鍵單擊“聊天”歡迎檢視中的建議提示,以訪問其他操作。當您右鍵單擊提示(或按 Shift+F10)時,會出現一個上下文選單,其中包含“編輯提示檔案”選項,可直接在編輯器中開啟相應的提示檔案。

對於具有關聯檔案的提示(包括使用者定義的提示和透過 chat.promptFilesRecommendations 設定配置的專案特定提示)的編輯提示檔案工作正常。

Screenshot of a context menu for a suggested prompt.

瞭解有關 自定義提示檔案 的更多資訊。

自動開啟已編輯檔案

設定chat.openEditedFilesAutomatically

我們更改了代理的預設行為,不再自動在編輯器中開啟已編輯的檔案。如果您偏好之前的行為,可以啟用 accessibility.openChatEditedFiles 設定。

推理(實驗性)

設定chat.agent.thinkingStylechat.agent.thinking.collapsedTools

上個版本,我們添加了 chat.agent.thinkingStyle 設定,該設定啟用了在聊天中顯示思考令牌。現在更多模型支援此功能!從這個版本開始,GPT-5-Codex、GPT-5、GPT-5 mini 和 Gemini 2.5 Pro 都支援此功能。

chat.agent.thinkingStyle 已調整為三種更常見的樣式,預設值為 fixedScrolling,以顯示最新的思維鏈。

附加設定 chat.agent.thinking.collapsedTools 將工具呼叫新增到可摺疊的思考 UI 中。

Screenshot showing reasoning tokens displayed in chat with interleaved tool calls and reasoning output. This is the UI with  and  for the respective thinking settings.

內聯聊天 v2(預覽版)

設定inlineChat.enableV2

我們已加大了現代化內聯聊天的力度。它專為

  • 單一提示,
  • 單一檔案,
  • 以及僅用於程式碼更改而構建。

這使得整體體驗更加輕量化,並允許更簡化的 UI。對於它無法處理的任務,您將自動升級到聊天檢視。

聊天檢視 UX 改進

我們調整了聊天檢視的一些部分,使其使用起來更令人愉快。

  • 建立新聊天的操作現在是一個下拉選單,其中包含在編輯器中或在新視窗中建立聊天會話的選項。
  • 工具和 MCP 伺服器操作已移至模型選擇器旁邊。
  • 配置下拉選單已得到清理。

Screenshot of the action to create a new chat dropdown menu.

現在還可以透過右鍵單擊聊天檢視中的數學表示式來複制數學源。

MCP

您的組織的 MCP 伺服器訪問許可權

設定chat.mcp.gallery.serviceUrlchat.mcp.access

VS Code 現在支援透過 GitHub 組織策略配置的 MCP 登錄檔。這使得組織可以設定自定義 MCP 登錄檔並控制可以安裝和啟動哪些 MCP 伺服器。

當在組織的策略中配置了 MCP 登錄檔端點時,VS Code 將:

  • 提供來自已配置登錄檔的 MCP 伺服器的瀏覽和安裝。
  • 當啟用訪問限制時,將 MCP 伺服器的啟動限制為僅限登錄檔中可用的伺服器。

當您的組織配置了這些策略時,chat.mcp.gallery.serviceUrl 設定指定 MCP 登錄檔端點 URL,而 chat.mcp.access 設定控制訪問是否僅限於該登錄檔中的伺服器。在設定編輯器中,這些設定將標記為“(由組織管理)”。

Screenshot showing MCP settings managed by organization policy, including the Gallery Service URL and Access control settings

要了解有關為您的組織或企業配置 MCP 伺服器訪問的更多資訊,請參閱 配置 MCP 伺服器訪問

將 MCP 伺服器安裝到工作區配置

安裝 MCP 伺服器時,您現在可以選擇是全域性安裝還是安裝到工作區配置。右鍵單擊擴充套件檢視中的 MCP 伺服器,然後從上下文選單中選擇“安裝(工作區)”,或直接在 MCP 伺服器編輯器中使用“安裝(工作區)”操作。這會將 MCP 伺服器新增到當前工作區的 .vscode/mcp.json 檔案中,從而更輕鬆地與團隊共享 MCP 伺服器。

Screenshot showing the context menu for an MCP server with the Install (Workspace) option highlighted

身份驗證:客戶端 ID 元資料文件身份驗證流程

遠端 MCP 的身份驗證支援現已支援 客戶端 ID 元資料文件 (CIMD) 身份驗證流程,這是 MCP 中 OAuth 的未來標準。此流程透過 動態客戶端註冊 (DCR) 提供了更安全、更具可擴充套件性的身份驗證解決方案,因為現在授權伺服器無需擔心為每個客戶端發出客戶端 ID。

連線到使用支援 CIMD 的授權伺服器的 MCP 伺服器時,VS Code 將自動使用該流程而非 DCR。

有關 CIMD 的更多資訊,請參閱 oauth.net 上的資源

身份驗證:WWW-Authenticate 範圍升級

遠端 MCP 的身份驗證支援現在透過 WWW-Authenticate 標頭支援遠端 MCP 伺服器的動態範圍升級。這在 OAuth 2.0 規範 中有所說明。這允許 MCP 伺服器在需要時請求其他許可權,而不是要求所有範圍都預先提供。例如,連線到伺服器可能需要一組最小的範圍,但特定的工具呼叫僅在必要時可以請求更廣泛的許可權。這遵循最小許可權原則,提供了更好的安全性。

這在 MCP 規範的最新草案 中有所說明,該草案預計將很快定稿。

輔助功能

語音超時預設停用

配置 accessibility.voice.speechTimeout 的預設值已更改為 0。這意味著,語音會話不再會在延遲一段時間後自動結束(例如,如果您暫停,聊天請求不會自動觸發)。我們認為這是一個更好的預設體驗,但您始終可以改回之前的預設值(2500)。

聊天輸入改進

聊天輸入現在以更清晰的順序播報活動代理和模型,以便螢幕閱讀器使用者首先聽到最相關的上下文。聊天可訪問性幫助還指出,您可以透過按 Delete 鍵刪除附加的上下文項,從而使附件管理完全可以透過鍵盤訪問。

Notebook

筆記本現在支援跨單元格搜尋。使用快捷鍵(⌘G (Windows, Linux F3)⇧⌘G (Windows, Linux Shift+F3))在筆記本單元格之間導航到下一個和上一個匹配項,就像在編輯器中一樣。

原始碼管理

Git 提交訊息中的摺疊支援

設定: git.verboseCommit, git.useEditorAsCommitInput

在編輯器中編寫 git commit 訊息時,您現在可以摺疊 commit 訊息的部分內容,以保持整潔。要使用此功能,請啟用 git.verboseCommitgit.useEditorAsCommitInput 設定。

Screenshot showing folding nodes in the gutter and a partially collapsed commit message in the editor.

顯示傳入/傳出更改的圖表

設定: scm.graph.showIncomingChanges, scm.graph.showOutgoingChanges

在此版本中,我們增加了在原始碼管理圖檢視中輕鬆檢視傳入和傳出更改的功能。對於存在傳入或傳出更改的活動分支,圖表將顯示“傳入更改”和“傳出更改”節點。選擇每個節點將顯示傳入或傳出檔案的列表。

Screenshot showing incoming and outgoing changes nodes in the Source Control Graph view.

您可以使用 scm.graph.showIncomingChangesscm.graph.showOutgoingChanges 設定來隱藏圖檢視中的此資訊。

比較引用的圖表

我們在原始碼管理圖上下文選單中添加了一個新命令“與...比較”,該命令允許您將圖中的歷史項與任意分支或標籤進行比較。此功能可讓您檢視歷史項中存在但分支或標籤中不存在的更改。

在上下文選單中,有快捷命令“與遠端比較”和“與合併基線比較”,分別用於將歷史項與遠端分支和合並基線進行比較。

儲存庫選擇模式

設定: scm.repositories.selectionMode

原始碼管理儲存庫檢視顯示工作區中已開啟的儲存庫列表,並用於控制原始碼管理更改檢視中顯示的儲存庫。

我們正在尋求擴充套件儲存庫檢視的功能,併為此做準備,我們引入了一項設定 scm.repositories.selectionMode,用於將儲存庫檢視中的選擇模式控制為單個儲存庫或多個儲存庫。

除了儲存庫檢視中的新功能外,這還使我們能夠移除圖檢視標題中的儲存庫選擇器,並在所有原始碼管理檢視中擁有一個全域性儲存庫選擇器。您可以使用該設定或從儲存庫檢視的“...”選單中切換選擇模式。

Screenshot showing the Repositories view with single selection mode enabled and the context menu to toggle selection mode.

新儲存庫選單

使用者可以使用 scm/repository 選單 ID 將命令貢獻到新原始碼管理儲存庫檢視中的內聯原始碼管理提供程式行。貢獻到“內聯”組的命令將顯示在內聯,而所有其他命令將顯示在 ... 選單中。

儲存庫資源管理器(實驗性)

設定: scm.repositories.explorer, scm.repositories.selectionMode

我們正在著手增強儲存庫檢視並顯示每個儲存庫的附加資訊。要嘗試此實驗性功能,請設定 scm.repositories.selectionModescm.repositories.explorer

在第一個迭代中,我們專注於分支和標籤。您可以建立新分支、標籤,檢視分支和標籤列表,並對每個分支/標籤執行各種操作(例如:檢出等)。在下一個版本中,我們將新增更多資訊(例如:stashes、remotes 等)。嘗試一下此實驗性功能,讓我們知道您的想法。

Screenshot showing the Repositories explorer with branches and tags for a single selected repository.

測試

在測試覆蓋率中導航未覆蓋的行

在檢視測試覆蓋率時,您現在可以使用新的導航命令輕鬆地在未覆蓋的行之間導航。在檢視覆蓋率資訊時,編輯器工具欄中有兩個命令可用。

  • 轉到下一個未覆蓋行 - 跳轉到未被測試覆蓋的下一行。
  • 轉到上一個未覆蓋行 - 跳轉到未被測試覆蓋的上一個行。

這些命令可幫助您快速識別覆蓋率差距,並專注於需要額外測試覆蓋的區域,從而更輕鬆地提高程式碼庫的整體測試質量。

終端

終端 IntelliSense

終端 IntelliSense 作為一項實驗性/預覽功能已存在於產品中 約 1.5 年!在此版本中,我們將移除預覽標籤,並將其作為預設功能分階段推出給所有穩定版使用者。

啟用後,在終端中鍵入時會彈出 IntelliSense,類似於編輯器對 PowerShell、bash、zsh 和 fish 的支援。

Screenshot of typing "write" in PowerShell will bring up completions starting with the word write.

補全項有各種來源,例如路徑由核心處理。

某些命令具有高階規範,例如 git,它可以拉取分支名稱。

如果我們從中學到了任何東西,那就是“一刀切”不適合所有人,所以有很多選項可以調整行為以獲得您想要的結果。

如果您尚未看到此功能,請確保已啟用 shell 整合,並透過 terminal.integrated.suggest.enabled 在設定中明確啟用 IntelliSense。

除了整體的改進之外,本版本還為該功能帶來了以下內容:

  • copilotazd CLI 現在具有補全功能。
  • 擴充套件 API 即將最終確定。
  • Git commit 補全顯示 commit 訊息。

Screenshot of git commit completions showing branch names and their associated commit messages in the terminal suggest details view.

合併 shell 整合超時設定

我們現在有一個統一的可配置設定 terminal.integrated.shellIntegration.timeout,它控制 VS Code 在執行終端命令(包括透過 executeCommand API 和 Copilot 終端工具觸發的命令)之前等待 shell 整合準備就緒的時間。

chat.tools.terminal.shellIntegrationTimeout 已棄用,取而代之的是此合併設定。

認證

管理擴充套件賬戶偏好設定的可發現性

管理擴充套件賬戶偏好設定”命令現在更易於發現。除了在命令面板和擴充套件上下文選單中可用外,它現在還與“管理語言模型訪問許可權”一起出現在“賬戶”選單中。這使得查詢和配置擴充套件可以訪問的賬戶更加容易。

Screenshot of Manage Extension Account Preferences in the Account menu.

Microsoft 身份驗證的最後一個“classic”版本 - 如果遇到問題,請使用“msal-no-broker”。

我們將移除 microsoft-authentication.implementation 的“classic”選項。這意味著 VS Code 1.106 版本是最後一個具有“classic”選項的版本。

microsoft-authentication.implementation 設定一直存在,以便使用者在遇到問題時可以選擇退出 Microsoft 賬戶的原生代理身份驗證。此設定的值為:

  • msal - 在可用時使用 MSAL 進行代理身份驗證(預設)。
  • msal-no-broker - 使用 MSAL 而不進行代理身份驗證(最近引入)。
  • classic - 使用經典的 Microsoft 身份驗證流程,不使用 MSAL。

我們將移除“classic”選項,因為它的使用率非常低,並且“msal”選項的大多數問題都源於代理,而這可以透過“msal-no-broker”來解決。

Microsoft 身份驗證的裝置程式碼流

Microsoft 身份驗證現在支援非代理場景下的裝置程式碼流,這對於遠端開發環境尤其有用。當其他身份驗證方法失敗時,VS Code 會自動回退到裝置程式碼流,該流會顯示一個您可以在另一臺裝置上輸入的程式碼來完成身份驗證。

管理賬戶命令

使用“賬戶: 管理賬戶”命令直接從命令面板管理您的身份驗證賬戶。當“賬戶”選單隱藏或不易訪問時,此命令提供對賬戶管理功能的訪問。

Screenshot of the Manage Accounts menu.

執行“管理賬戶”命令時,您會看到一個快速選擇選單,列出您所有活動的賬戶。您可以選擇一個賬戶來檢視可用操作,包括:

  • 管理受信任的擴充套件 - 控制哪些擴充套件可以訪問選定的賬戶。
  • 管理受信任的 MCP 伺服器 - 管理支援此功能的賬戶的 MCP 伺服器訪問許可權。
  • 退出登入 - 退出賬戶。

語言

Python

Python 環境擴充套件:支援 python.poetryPath 設定

Python 環境擴充套件現在遵循現有的 python.poetryPath 使用者設定。這允許您指定要使用的 Poetry 可執行檔案。在管理 Poetry 環境時,將搜尋並選擇提供的路徑。

Python 環境擴充套件:改進的 venv 建立:dev-requirements.txt 檢測

在建立新的虛擬環境時,該擴充套件現在會檢測 requirements.txt 和 dev-requirements.txt 檔案,並自動安裝依賴項。

將 Copilot 懸停摘要新增為文件字串

您現在可以使用 Copilot 懸停摘要中的新“新增為文件字串”命令,將 AI 生成的文件直接作為文件字串新增到您的程式碼中。當您為函式或類生成摘要時,導航到符號定義並將其懸停,即可訪問“新增為文件字串”命令,該命令會將摘要插入到游標下方,格式化為標準的文件字串。

這簡化了程式碼文件記錄過程,使您無需重新輸入即可快速提高程式碼的可讀性和可維護性。

本地化的 Copilot 懸停摘要

Pylance 中的 GitHub Copilot 懸停摘要現在會尊重您在 VS Code 中的顯示語言。當您呼叫 AI 生成的摘要時,您將獲得以您為編輯器設定的語言顯示的字串,從而更容易理解生成的文件。

Screenshot of a Copilot Hover Summary generated in Portuguese.

萬用字元匯入的程式碼操作轉換

Python 中通常不鼓勵使用萬用字元匯入(from module import *),因為它們會弄亂您的名稱空間,並使名稱來源不明確,降低程式碼的清晰度和可維護性。Pylance 現在透過新的程式碼操作幫助您清理仍依賴 from module import * 的模組。它將萬用字元替換為顯式符號,保留別名並將匯入保留為單個語句。要嘗試一下,您可以單擊萬用字元匯入所在的行,然後按 Ctrl+.(macOS 上為 Cmd+.)來選擇“轉換為顯式匯入”程式碼操作。

Screenshot of the Convert wildcard imports Code Action.

dotenv

內建了對 dotenv 檔案(.env)的基本支援,這些檔案通常用於為應用程式定義環境變數。

對擴充套件的貢獻

GitHub 拉取請求

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

  • AI 生成的 PR 描述(透過 githubPullRequests.pullRequestDescription)將尊重儲存庫的 PR 模板(如果存在)。
  • Pull Requests 檢視中的草稿現在將以斜體顯示,而不是帶有 [DRAFT] 字首。
  • 可以從 URL 開啟 Pull Requests,例如:vscode-insiders://github.vscode-pull-request-github/checkout-pull-request?uri=https://github.com/microsoft/vscode-css-languageservice/pull/460

請參閱擴充套件的 0.122.0 版本更新日誌,瞭解該版本中的所有內容。

預覽功能

語言模型編輯器

新的“語言模型”編輯器提供了一個集中位置,用於檢視和管理 GitHub Copilot Chat 的所有可用語言模型。您可以從聊天模型選擇器開啟它,或透過命令“Chat: Manage Language Models”開啟。

注意:此功能僅在 VS Code Insiders 中可用。

Screenshot showing the Language Models editor with a list of models organized by provider.

編輯器顯示:

  • 按提供程式組織的、所有可用的模型。
  • 模型功能(工具、視覺、代理)。
  • 上下文大小和乘數資訊。
  • 模型可見性狀態。

您可以使用以下方式搜尋和過濾模型:

  • 文字搜尋(帶高亮顯示)。
  • 提供程式過濾器:@provider:"OpenAI"
  • 功能過濾器:@capability:tools@capability:vision@capability:agent
  • 可見性過濾器:@visible:true/false

將滑鼠懸停在模型名稱或上下文大小時,會看到詳細資訊,包括模型 ID、版本、狀態和令牌細分。

管理模型可見性

透過切換每個模型旁邊的眼睛圖示的可見性,來控制哪些模型顯示在聊天模型選擇器中。當模型可見時,它會在您使用 GitHub Copilot Chat 時顯示在模型選擇器下拉列表中,使其可供選擇。隱藏的模型仍保留在“語言模型”編輯器中,但不會顯示在模型選擇器中,這有助於您將模型選擇集中在最常用的模型上。

Screenshot showing the eye icon to toggle model visibility with a tooltip displaying "Show in the chat model picker"

這在您擁有許多模型可用並希望透過在選擇器中僅顯示首選模型來簡化工作流程時尤其有用。

新增已安裝提供程式的模型

使用“新增模型...”按鈕來配置和新增您已安裝的語言模型提供程式的模型。當您選擇此按鈕時,您將看到一個已安裝模型提供程式的下拉列表,例如 Copilot、Anthropic、Azure、Google、Groq、Ollama、OpenAI 等。從列表中選擇一個提供程式以進行配置,並在 GitHub Copilot Chat 中開始使用其模型。

Screenshot showing the Add Models dropdown with a list of installed language model providers including Copilot, Anthropic, Azure, Google, and more

這使得無需離開“語言模型”編輯器即可輕鬆啟用您已安裝的其他模型提供程式。透過選擇提供程式行上的齒輪圖示來訪問提供程式管理。

擴充套件開發

身份驗證會話中的 ID 令牌

AuthenticationSession 介面現在包含一個可選的 idToken 屬性。這允許身份驗證提供程式返回 ID 令牌和訪問令牌,這對於需要使用者身份資訊的場景尤其有用。Microsoft 身份驗證提供程式返回此欄位,而 GitHub 等其他提供程式可能不返回。

ID 令牌包含有關已認證使用者宣告的資訊,並由身份提供程式簽名,使其可用於驗證使用者身份。有關 ID 令牌和訪問令牌之間區別的更多資訊,請參閱 https://oauth.net/id-tokens-vs-access-tokens/

export interface AuthenticationSession {
  /**
   * The ID token.
   */
  readonly idToken?: string;
}

Git 擴充套件 getRepositoryWorkspace API

內建 Git 擴充套件提供了一個新的 API,用於獲取已知與 git 儲存庫遠端關聯的資料夾。這透過快取使用者開啟具有 git 遠端的資料夾時儲存庫-遠端到資料夾的對映來實現。

在輔助側邊欄中檢視容器

擴充套件作者現在可以使用新的 secondarySidebar 貢獻點在輔助側邊欄中註冊檢視容器。這允許擴充套件將自定義檢視與輔助側邊欄中的聊天等內建檢視放在一起,並提供與 VS Code 雙側邊欄佈局更好的整合。

{
  "contributes": {
    "viewsContainers": {
      "secondarySidebar": [
        {
          "id": "myExtensionViews",
          "title": "My Extension",
          "icon": "$(extensions)"
        }
      ]
    },
    "views": {
      "myExtensionViews": [
        {
          "id": "myCustomView",
          "name": "Custom View",
          "when": "true"
        }
      ]
    }
  }
}

提議的 API

快速選擇和快速輸入改進

快速選擇和快速輸入 API 包含多項新功能,為擴充套件開發人員提供了建立互動式使用者介面的更多靈活性。

提議的 API:切換按鈕支援

擴充套件可以透過 QuickInput 上的 toggles 屬性向快速選擇和快速輸入介面新增切換按鈕。這使得諸如輸入框區域的密碼可見性切換等場景成為可能,允許使用者與控制元件進行互動而無需離開快速選擇介面。

我們非常感謝您對此 API 提案的評論和反饋(請參考 GitHub issue)。

export enum QuickInputButtonLocation {
  ...

  /**
   * The button is rendered at the far end inside the input box.
   */
  Input = 3
}

export interface QuickInputButton {
  ...

  /**
   * When present, indicates that the button is a toggle button that can be checked or unchecked.
   *
   * **Note:** This property is currently only applicable to buttons with {@link QuickInputButtonLocation.Input} location.
   * It must be set for such buttons, and the state will be updated when the button is toggled.
   * It cannot be set for buttons with other location values.
   */
  readonly toggle?: { checked: boolean };
}

提議的 API:快速選擇的提示支援

快速選擇支援 prompt 屬性,類似於輸入框中可用的屬性。提示在輸入框下方顯示持久文字,在使用者鍵入時保持可見,提供有用的指導或說明,而不會在使用者開始輸入文字時消失。

我們非常感謝您對此 API 提案的評論和反饋(請參考 GitHub issue)。

export interface QuickPick<T extends QuickPickItem> extends QuickInput {
  /**
   * Optional text that provides instructions or context to the user.
   *
   * The prompt is displayed below the input box and above the list of items.
   */
  prompt: string | undefined;
}

export interface QuickPickOptions {
  /**
   * Optional text that provides instructions or context to the user.
   *
   * The prompt is displayed below the input box and above the list of items.
   */
  prompt?: string;
}

提議的 API:檔案圖示用於快速選擇項

快速選擇項可以透過 QuickPickItem 上的 resourceUri 屬性顯示檔案型別特定的圖示。當您提供資源 URI 時,VS Code 會根據資源型別自動派生適當的標籤、描述和圖示,與您當前主題的檔案圖示集匹配。這在構建檔案或資料夾選擇介面時特別有用,因為使用者可以透過熟悉的圖示快速識別項。

我們非常感謝您對此 API 提案的評論和反饋(請參考 GitHub issue)。

export interface QuickPickItem {
  /**
   * A {@link Uri} representing the resource associated with this item.
   *
   * When set, this property is used to automatically derive several item properties if they are not explicitly provided:
   * - **Label**: Derived from the resource's file name when {@link QuickPickItem.label label} is not provided or is empty.
   * - **Description**: Derived from the resource's path when {@link QuickPickItem.description description} is not provided or is empty.
   * - **Icon**: Derived from the current file icon theme when {@link QuickPickItem.iconPath iconPath} is set to
   *   {@link ThemeIcon.File} or {@link ThemeIcon.Folder}.
   */
  resourceUri?: Uri;
}

MarkdownString 中的 GitHub 風格警報(#209652

透過設定新的 supportAlertSyntax 屬性,我們增加了對渲染 GitHub 風格警報語法的支援。

const markdown = new vscode.MarkdownString();
markdown.supportAlertSyntax = true;
markdown.value = `
> [!NOTE]
> Useful information that users should know, even when skimming content.

> [!TIP]
> Helpful advice for doing things better or more easily.

> [!IMPORTANT]
> Key information users need to know to achieve their goal.

> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.

> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.
`;

這使得擴充套件能夠在 UI 的各個位置渲染警報,例如評論。

Screenshot showing GitHub-style alerts displayed in a comment thread showing each alert type with their respective icons and styling.

TreeItem 標籤中的 MarkdownString 支援(#115365

擴充套件作者現在可以在樹檢視項標籤中使用 MarkdownString,支援 Markdown 語法的子集,包括 codicons 和文字格式。這允許擴充套件建立更具視覺吸引力的樹檢視。

// Codicons
const itemWithIcon = new vscode.TreeItem({
  label: new vscode.MarkdownString('$(star) Starred item', true)
});

// Text formatting (must surround the entire string)
const italicItem = new vscode.TreeItem({
  label: new vscode.MarkdownString('_Italic item_')
});

// Formatting and codicons can be combined
const combined = new vscode.TreeItem({
  label: new vscode.MarkdownString('_~~**$(check) Done $(star)**~~_', true)
});

上面的專案顯示為:顯示三個專案的樹檢視截圖:一個帶圖示的星標專案,一個斜體專案,以及一個帶複選標記和星標圖示以及粗體、斜體和刪除線格式的組合專案。

工程

自動化 UX PR 測試的探索

我們引入了一種新的自動化工作流程,可幫助審閱者在不手動簽出和執行程式碼的情況下理解 pull request 中的 UI 更改。透過向包含 UI 更改的 pull request 新增 ~copilot-video-please 標籤,會自動啟動一個流程,該流程:

  • 從 PR 分支構建 VS Code。
  • 使用 GitHub Copilot CLI 與更改進行互動並在此過程中錄製影片,利用 playwright-mcp
  • 生成 Playwright 跟蹤以進行詳細檢查。
  • 將結果作為評論釋出到 PR。

儘管尚處於早期階段,但此工作流程可以減少程式碼審查所需的手動工作量,尤其對於小型 UI 更改。影片和跟蹤有助於審閱者快速驗證更改是否按預期工作。目前,影片僅供團隊成員訪問。

有關此自動化的更多詳細資訊,請參閱 https://github.com/microsoft/vscode/issues/272529

macOS 11.0 支援已結束

VS Code 1.106 是支援 macOS 11.0(macOS Big Sur)的最後一個版本。有關更多資訊,請參閱我們的 FAQ

值得注意的修復

  • vscode#258236 - 新增用於安裝擴充套件時使用的擴充套件請求超時的設定
  • vscode#272945 - 任務不觸發 onDidStartTerminalShellExecution
  • vscode#273372 - /** 在 .gitignore 檔案中會自動關閉為 */
  • vscode#243584 - pwsh/conpty 上忽略第一個輸入
  • vscode#271952 - Copilot 'configure instructions' quickpick 不顯示工作區級別的 agent 指令檔案 (copilot-instructions.md, AGENTS.md)
  • vscode#274631 - Network: 在 Windows 上載入中間證書頒發機構

感謝

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-copilot-chat 的貢獻

vscode-html-languageservice 的貢獻

vscode-json-languageservice 的貢獻

vscode-languageserver-node 的貢獻

vscode-pull-request-github 的貢獻

vscode-test-cli 的貢獻

debug-adapter-protocol 的貢獻

language-server-protocol 的貢獻

monaco-editor 的貢獻

node-pty 的貢獻

python-environment-tools 的貢獻

我們非常感謝大家在新功能準備就緒後立即進行試用,請經常回來檢視並瞭解新功能。

如果您想閱讀以前 VS Code 版本的發行說明,請訪問 code.visualstudio.com 上的更新頁面。

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