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

2025 年 8 月 (版本 1.104)

釋出日期:2025 年 9 月 11 日

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


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


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

內部版本:想盡快試用新功能嗎?
您可以下載每晚的內部版本,並在最新更新可用時立即試用。
下載內部版本

聊天

自動模型選擇 (預覽)

在此迭代中,我們在聊天中引入了自動模型選擇。當您在模型選擇器中選擇自動模型時,VS Code 會自動選擇一個模型,以確保您獲得最佳效能並避免速率限制。

自動模型選擇目前處於預覽階段,我們將在接下來的幾周內將其推廣給所有 VS Code 中的 GitHub Copilot 使用者,從個人 Copilot 計劃開始。

Screenshot that shows the model picker in the Chat view, showing the Auto option.

自動模型將在 Claude Sonnet 4、GPT-5、GPT-5 mini 和 GPT-4.1 以及 Gemini Pro 2.5 之間進行選擇,除非您的組織已停用對這些模型的訪問。使用自動模型選擇時,VS Code 會根據所選模型使用可變模型乘數。如果您是付費使用者,自動模型將應用 10% 的請求折扣。

您可以透過將滑鼠懸停在聊天檢視中的響應上來檢視所選模型和模型乘數。

Screenshot of a chat response, showing the selected model on hover.

瞭解有關 VS Code 中自動模型選擇的更多資訊。

確認敏感檔案的編輯

設定chat.tools.edits.autoApprove

在代理模式下,代理可以自主編輯工作區中的檔案。這可能包括意外或惡意修改或刪除重要檔案(例如配置檔案),這可能會對您的機器產生直接的負面副作用。瞭解有關使用 AI 驅動的開發工具時的安全注意事項的更多資訊。

在此版本中,代理現在會在編輯某些檔案之前明確請求使用者確認。這在使用代理模式時提供了額外的安全層。透過 chat.tools.edits.autoApprove 設定,您可以配置檔案模式以指示哪些檔案需要確認。

預設情況下,通用系統資料夾、點檔案和工作區外的檔案將需要確認。

Screenshot showing the confirmation dialog for sensitive file edits in the Chat view.

支援 AGENTS.md 檔案 (實驗性)

設定chat.useAgentsMdFile

AGENTS.md 檔案允許您向代理提供上下文和指令。從這個版本開始,當您的工作區根目錄中有一個 AGENTS.md 檔案時,它會自動作為聊天請求的上下文。這對於使用多個 AI 代理的團隊很有用。

預設情況下啟用對 AGENTS.md 檔案的支援,並且可以使用 chat.useAgentsMdFile 設定進行控制。有關 AGENTS.md 檔案的更多資訊,請參閱 https://agents.md/

瞭解有關根據您的實踐和團隊工作流自定義 VS Code 中的聊天的更多資訊。

改進的已更改檔案體驗

在此迭代中,已更改檔案列表已透過多項生活質量功能進行了重新設計。這些更改應能改善您在代理模式下的體驗!

  • 預設情況下,已更改檔案列表現在是摺疊的,以為聊天對話留出更多空間。摺疊時,您仍然可以看到已更改檔案數以及已新增或刪除的行數。

  • 當您保留或接受建議的更改時,該檔案將從已更改檔案列表中刪除。

  • 當您使用“原始碼管理”檢視暫存或提交檔案時,這將自動接受建議的檔案更改。

  • 列表中的每個專案現在都顯示每個檔案的更改(新增或刪除的行)。

在提示檔案中使用自定義聊天模式

提示檔案是 Markdown 檔案,您可以在其中編寫可重用的聊天提示。要執行提示檔案,請在聊天輸入欄位中鍵入 /,然後鍵入提示檔名,或者在編輯器中開啟提示檔案時使用“播放”按鈕。

您可以指定用於執行提示檔案的聊天模式。以前,您只能在提示檔案中使用內建聊天模式,如 agenteditask。現在,您還可以在提示檔案中引用自定義聊天模式。

Screenshot showing IntelliSense for custom chat modes in prompt files.

瞭解有關使用提示檔案、聊天模式和自定義指令自定義 VS Code 中的聊天的更多資訊。

配置提示檔案建議 (實驗性)

設定chat.promptFilesRecommendations

團隊通常會建立自定義提示檔案來標準化 AI 工作流,但當用戶最需要這些提示時,它們可能很難被發現。您現在可以根據上下文條件配置哪些提示檔案在“聊天歡迎”檢視中顯示為建議。

新的 chat.promptFilesRecommendations 設定支援簡單的布林值和用於上下文感知建議的 when-clause 表示式。

{
  "chat.promptFilesRecommendations": {
    "plan": true,                            // Always suggest
    "a11y-audit": "resourceExtname == .html", // Only for HTML files
    "document": "resourceLangId == markdown", // Only for Markdown files
    "debug": false                           // Never suggest
  }
}

這有助於團隊在正確的時間浮現正確的 AI 工作流,使自定義提示更易於發現並與您的工作區和檔案型別相關。

在工具集中選擇工具

工具集是一種將相關工具分組的便捷方式,VS Code 有幾個內建工具集,如 editsearch

工具選擇器現在顯示每個工具集中的工具,您可以單獨啟用或停用每個工具。您可以透過“聊天”檢視中的“配置工具...”按鈕訪問工具選擇器。

Screenshot showing the tools picker with an expanded edit tool set, listing all available tools.

配置聊天中使用的字型

設定chat.fontFamily, chat.fontSize

VS Code 允許您選擇在編輯器中使用的字型,但“聊天”檢視缺乏該可配置性。我們現在添加了兩個新設定,用於配置聊天訊息的字體系列 (chat.fontFamily) 和字型大小 (chat.fontSize)。

Screenshot showing the Chat view with a custom font and font size.

注意:列表內容目前尚未遵循這些設定,但我們正在努力在即將釋出的版本中解決此問題。

與編碼代理協作 (實驗性)

透過編碼代理,您可以將任務委託給 AI 代理在後臺進行處理。您可以讓多個此類代理並行工作。我們正在不斷改進聊天會話體驗,以幫助您更有效地與編碼代理協作。

聊天會話檢視

設定chat.agentSessionsViewLocation

“聊天會話”檢視提供了一個統一檢視,用於管理本地和貢獻的聊天會話。我們顯著增強了“聊天會話”檢視,您現在可以在其中執行所有關鍵操作,從而更輕鬆地迭代和完成您的編碼任務。

  • 狀態列跟蹤:直接從狀態列監視多個編碼代理的進度。
  • 多會話支援:從同一檢視啟動和管理多個聊天會話。
  • 擴充套件上下文選單:訪問更多操作以高效地與您的編碼代理互動。
  • 豐富描述:啟用豐富描述後,每個列表條目現在都包含詳細上下文,以幫助您快速找到相關資訊。

GitHub 編碼代理整合

我們改進了 GitHub 編碼代理與聊天會話的整合,以提供更流暢、更直觀的體驗。

  • 聊天編輯器操作:直接從聊天編輯器輕鬆檢視或應用程式碼更改,並簽出拉取請求。
  • 無縫過渡:以改進的連續性從本地聊天切換到 GitHub 代理任務。
  • 更好的會話渲染:卡片和工具渲染的各種改進,以提供更好的視覺清晰度。
  • 效能提升:更快的會話載入,以獲得更靈敏的體驗。

委託給編碼代理

我們繼續擴充套件將 VS Code 中的本地任務委託給 Copilot 編碼代理的方式

  • 使用編碼代理修復待辦事項

    TODO 開頭的註釋現在顯示一個“程式碼操作”,可以快速啟動編碼代理會話。

    Screenshot of a code action above a TODO comment called Delegate to coding agent.

  • 從聊天中委託 (githubPullRequests.codingAgent.uiIntegration)

    當您在聊天中執行“委託給編碼代理”操作時,現在會將包括檔案引用在內的其他上下文轉發到 GitHub 編碼代理。這使您能夠在將任務移交給編碼代理完成之前精確規劃任務。將開啟一個新的聊天編輯器,即時顯示編碼代理的進度。

主題:Sharp Solarized (在 vscode.dev 上預覽)

使用 Google 社交登入

現在,使用 Google 帳戶登入或註冊 GitHub Copilot 的選項已正式推出,並將推廣給 VS Code 中的所有使用者。

Screenshot showing the sign in dialog showing the option to use a Google account.

您可以在 GitHub 部落格公告文章中找到有關此內容的更多資訊。

終端自動批准

設定chat.tools.terminal.enableAutoApprove

自動批准終端命令可以大大簡化代理互動,但它也伴隨著安全風險。此版本引入了對終端自動批准的幾項改進,以增強可用性和安全性。

  • 您現在可以使用 chat.tools.terminal.enableAutoApprove 設定啟用或停用終端自動批准。此設定也可以由組織透過裝置管理進行設定。

  • 在實際啟用終端自動批准之前,您需要透過聊天檢視中的下拉選單明確選擇啟用。

    Screenshot of a terminal command in the Chat view, showing the Enable Auto Approve dropdown.

  • 從“聊天”檢視中,您可以方便地為正在執行的命令新增自動批准規則,或開啟配置設定

    Screenshot that shows the three standard options are presented for "foo --arg && bar".

    主題:Sapphire (在 vscode.dev 上預覽)

    這為命令提供了一些基本支援,可以在更合適的地方建議子命令,例如建議 npm test 規則而不是 npm

  • 為了提高自動批准命令的透明度,我們在“聊天”檢視中顯示已應用的規則,還使您能夠配置該規則

    Screenshot showing the new links added under the tool call in the Chat view for adding new auto approve rules.

  • 我們改進了預設設定以提供安全性並減少干擾。您可以透過開啟 settings.json 檔案,然後輸入 chat.tools.terminal.autoApprove 並透過 Tab 鍵完成它來檢視該設定的預設值。

  • 包含反斜槓或正斜槓字元的非正則表示式規則現在被視為路徑,不僅批准該精確路徑,還允許兩種斜槓型別和 ./ 字首。使用 PowerShell 時,所有規則都強制為不區分大小寫。

  • 當代理模式想要使用 curlwgetInvoke-RestMethodInvoke-WebRequest 從網際網路拉取內容時,我們現在會顯示警告,因為這是提示注入攻擊的常見向量。

在我們的文件中瞭解有關終端自動批准的更多資訊。

全域性自動批准

v1.99 以來,全域性自動批准一直是實驗性設定。我們觀察到使用者在啟用此設定時沒有深入考慮後果。此外,一些使用者認為啟用 chat.tools.autoApprove 設定是啟用終端自動批准的先決條件,但事實並非如此。

為了消除這些誤解並進一步保護我們的使用者,現在首次嘗試使用全域性自動批准時會出現一個令人毛骨悚然的警告,以便使用者可以輕鬆退出並停用該設定

Screenshot of a warning dialog that appears when global auto approve is used for the first time.

該設定也已更改為更清晰的 chat.tools.global.autoApprove,沒有任何自動遷移,因此所有使用者(意外或有意)都需要再次明確設定它。

預設啟用數學渲染

設定chat.math.enabled

聊天響應中的數學方程渲染現在已普遍可用並預設啟用。您可以使用 chat.math.enabled 設定停用此功能。

Screenshot of the Chat view, showing inline and block equations in a chat response.

此功能由 KaTeX 提供支援,並支援行內和塊級數學方程。行內數學方程可以透過用單個美元符號 ($...$) 包裹標記來編寫,而塊級數學方程使用兩個美元符號 ($$...$$)。

聊天檢視預設可見性

設定workbench.secondarySideBar.defaultVisibility

當您首次開啟工作區時,帶有“聊天”檢視的“輔助側邊欄”預設可見,邀請您立即提出問題或開始代理會話。您可以使用 workbench.secondarySideBar.defaultVisibility 設定或透過“聊天”檢視本身的下拉選單配置此行為

Screenshot showing Chat view menu with the option to set the default Secondary Side Bar visibility.

改進的任務支援

  • 輸入請求檢測

    當您在代理模式下執行任務或終端命令時,代理現在會檢測程序何時請求使用者輸入,並提示您在聊天中響應。如果您在提示出現時在終端中鍵入,提示將自動隱藏。如果提供了選項和描述(例如 [Y] Yes [N] No),這些選項和描述將顯示在確認提示中。

  • 帶有問題匹配器的任務的錯誤檢測

    對於使用問題匹配器的任務,代理現在會根據問題匹配器結果收集並顯示錯誤,而不是依賴語言模型來評估輸出。問題以下拉選單的形式顯示在聊天進度訊息中,允許您直接導航到問題位置。這確保僅在與當前任務執行相關時才報告錯誤。

  • 複合任務支援

    代理模式現在支援運行復合任務。當您運行復合任務時,代理會顯示每個依賴任務的進度和輸出,包括任何使用者輸入提示。這使得更復雜的工作流和多步任務執行的更好可見性成為可能。

    在下面的示例中,運行了 VS Code - Build 任務。評估每個依賴任務的輸出,並在響應和進度訊息下拉選單中向用戶顯示問題。

改進的終端支援

  • 將更多終端工具移至核心

    上個版本中的 runInTerminal 工具一樣,terminalSelectionterminalLastCommand 工具已從擴充套件移至核心,這應該會提供一般的可靠性改進。

  • 可配置的終端工具 Shell 整合超時

    每當 runInTerminal 工具嘗試建立終端時,它都會等待一段時間以啟用 Shell 整合。如果您的 Shell 啟動特別慢,例如您有一個非常重的 PowerShell 配置檔案,這可能會導致它等待之前固定的 5 秒超時,並且最終仍然失敗。此超時現在可以透過 chat.tools.terminal.shellIntegrationTimeout 設定進行配置。

  • 防止使用命令提示符

    由於命令提示符中無法真正實現 Shell 整合,至少在 Copilot 所需的功能方面,Copilot 現在選擇使用 Windows PowerShell,它應該預設具有 Shell 整合。這應該可以提高當您的預設 Shell 是命令提示符時 runInTerminal 工具的可靠性。

    如果出於某種原因,您希望 Copilot 使用命令提示符,目前尚不可能。我們可能會很快新增自定義 Copilot 使用的終端配置檔案​​的功能,這在 #253945 中進行跟蹤。

待辦事項列表工具

待辦事項列表工具可幫助代理將複雜的、多步驟的任務分解為更小的任務,並報告進度以幫助您跟蹤單個專案。我們對該工具進行了改進,現在預設啟用。

工具進度顯示在“聊天”檢視頂部的“待辦事項”控制元件中,該控制元件會在待辦事項列表處理完畢後自動摺疊,並僅顯示當前正在進行的任務。

跳過工具呼叫

當代理請求工具呼叫的確認時,您現在可以選擇跳過工具呼叫並讓代理繼續。您仍然可以透過聊天輸入框取消請求或輸入新請求。

我們已升級 #codebase 工具,使用新的嵌入模型對工作區中的程式碼進行語義搜尋。這個新模型為程式碼搜尋提供了更好的結果。新嵌入還佔用更少的儲存空間,每個嵌入所需的磁碟儲存大小僅為我們之前模型的 6%。

我們將在接下來的幾周內逐步推出這個新的嵌入模型。您的工作區將自動更新以使用這個新的嵌入模型,因此無需採取任何操作。如果您想在它向您推出之前試用它,VS Code Insiders 已經在使用新模型。

隱藏和停用 GitHub Copilot AI 功能

設定chat.disableAIFeatures

我們引入了一個新設定 chat.disableAIFeatures,用於停用和隱藏 GitHub Copilot 提供的內建 AI 功能,包括聊天、程式碼完成和下一步編輯建議。

該設定相對於我們以前的解決方案具有以下優勢:

  • 除非您明確停用,否則會在您的裝置之間同步
  • 如果安裝了 Copilot 擴充套件,則停用它們
  • 按配置檔案或按工作區配置設定,可以輕鬆選擇性地停用 AI 功能

“隱藏 AI 功能”命令已重新命名以反映此更改,現在將在設定編輯器中顯示此新設定。

注意:以前隱藏 AI 功能的使用者將繼續看到 AI 功能被隱藏。如果您想在裝置之間同步您的選擇,可以額外更新該設定。

MCP

支援伺服器指令

VS Code 現在會讀取 MCP 伺服器指令並將其包含在其基本提示中。

預設停用 MCP 自動發現

設定chat.mcp.discovery.enabled

VS Code 支援自動發現安裝在其他應用程式(如 Claude Code)中的 MCP 伺服器。隨著 VS Code 中 MCP 支援的成熟,自動發現現在預設停用,但您可以使用 chat.mcp.discovery.enabled 設定重新啟用它。

啟用 MCP

設定chat.mcp.access

以前控制 MCP 伺服器是否可以在 VS Code 中執行的 chat.mcp.enabled 設定已遷移到一個新的 chat.mcp.access 設定,具有更具描述性的選項

  • all:允許所有 MCP 伺服器執行(等同於以前的 true 值)
  • none:完全停用 MCP 支援(等同於以前的 false 值)

輔助功能

聚焦聊天確認操作

我們添加了一個命令,“聚焦聊天確認(kb(workbench.action.chat.focusConfirmation)),它會聚焦確認對話方塊(如果存在),或者向螢幕閱讀器使用者宣佈不需要確認。

程式碼編輯

可配置的內聯建議延遲

設定editor.inlineSuggest.minShowDelay

一個新設定 editor.inlineSuggest.minShowDelay 使您能夠配置鍵入後內聯建議出現的快慢。如果您發現建議出現過快並干擾了您的鍵入,這會很有用。

編輯器體驗

Windows 上的視窗邊框顏色支援

設定window.border

我們很高興在 Windows 上添加了一個新設定 window.border,使您能夠在 VS Code 視窗周圍顯示彩色邊框。該設定具有以下選項:

  • default:遵循顏色主題設定,回退到 Windows 設定
  • system:僅遵循 Windows 設定(視窗標題強調色)
  • off:停用邊框顏色
  • <color>:以 Hex、RGB、RGBA、HSL、HSLA 格式表示的特定顏色

您可以按工作區配置顏色,從而更容易區分哪個視窗中打開了哪個工作區。

Screenshot of several VS Code windows with different border colors.

當您將 window.border 配置為 default 時,主題能夠使用 window.activeBorderwindow.inactiveBorder 顏色鍵為活動和非活動視窗設定邊框顏色。您可以從 workbench.colorCustomizations 設定進一步覆蓋這些顏色。

管理擴充套件帳戶首選項

我們已在命令面板中添加了“帳戶:管理擴充套件帳戶首選項”命令。呼叫時,它會顯示一個有權訪問身份驗證帳戶的擴充套件列表,並允許您更改這些擴充套件使用的帳戶。您甚至可以直接從列表中登入新帳戶。

這基於我們一年前新增的帳戶管理功能

編輯器選項卡索引

設定workbench.editor.showTabIndex

您現在可以在選項卡標籤中渲染編輯器選項卡的索引。當您開啟許多選項卡並希望使用鍵盤快捷鍵在它們之間快速導航時,這會很有幫助。使用 workbench.editor.showTabIndex 設定啟用此功能。

Screenshot of editor tabs with numbers in front of them, indicating their index.

編輯器選項卡欄捲軸可見性

設定workbench.editor.titleScrollbarVisibility

workbench.editor.titleScrollbarVisibility 允許您控制編輯器選項卡欄中的捲軸何時可見。預設值 auto 僅當選項卡溢位且滑鼠懸停在選項卡上時才顯示捲軸。您也可以將其設定為 visible 以在選項卡溢位時始終顯示捲軸,或設定為 hidden 以從不顯示它。

問題報告器改進

透過內建問題報告器報告 VS Code 或擴充套件中的問題時,您現在可以透過報告按鈕上的下拉選單選擇“在 GitHub 上建立”或“在 GitHub 上預覽”。如果按鈕沒有顯示下拉選單,並且只顯示“建立”或“預覽”,這很可能意味著您仍在載入擴充套件資料,或者需要確保您已登入具有正確範圍的 GitHub 帳戶。

Screenshot of a dropdown showing Create on Github and Preview on Github in the issue reporter.

Notebook

改進的 NES 建議 (實驗性)

設定github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled

我們正在試驗改進筆記本的下一步編輯建議的質量。目前,語言模型在生成建議時可以訪問活動單元格的內容。啟用 github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled 設定後,語言模型可以訪問整個筆記本,從而能夠生成更準確、更高質量的下一步編輯建議。

原始碼管理

預覽和遷移 Git 工作區更改

您現在可以透過右鍵單擊工作區檔案以在“原始碼管理更改”檢視中開啟上下文選單並選擇“與工作區比較”來預覽工作區檔案與當前工作區之間的差異。

Screenshot of the context menu shown in the SCM view on a changed file in a worktree, with the Compare with Workspace option selected.

審查更改後,您可以使用命令面板中的“遷移工作區更改...”命令 () 將工作區中的所有更改合併到當前工作區中。這使得跨多個工作區工作並有選擇地將更改帶回主儲存庫變得容易。

瞭解有關 VS Code 中的 Git 工作區的更多資訊。

終端

終端視窗發現性和完善

一個常見請求是允許在單獨的視窗中開啟終端。此功能已存在一年半左右,但其可發現性一直不佳。在此迭代中,我們為此功能添加了多個入口點

  • 新命令 ⌃⇧⌥` (Windows、Linux Ctrl+Shift+Alt+`)
  • 空編輯器和選項卡井選單現在有一個“新終端”條目。
  • 新終端下拉選單已重新排列,現在有一個“新終端視窗”條目。
  • 頂級終端選單現在有一個“新終端視窗”條目。

我們還完善了這些新終端視窗在緊湊模式下開啟的體驗。如果您向視窗新增新選項卡,它會自動退出緊湊模式。

Screenshot of the terminal window open in compact mode, hiding tabs to make more room for terminal content.

終端編輯器中的終端操作

終端檢視中可用的操作(新終端下拉選單、清除終端等)現在也適用於編輯器區域和終端視窗中的終端。

Screenshot of different terminal actions in the editor actions menu.

就像在終端檢視中一樣,您可以右鍵單擊操作區域將其移出溢位選單。

終端 IntelliSense 改進 (預覽)

此版本中終端 IntelliSense 將獲得多項改進

  • 多項效能改進,這些改進不成比例地影響 Windows 上的體驗。
  • 由於移除了在 Windows 上不可用的 sed 依賴項,git 完成現在在 Windows 上更可靠。
  • git 完成現在具有熟悉的圖示來表示提交、分支、遠端、儲藏和標籤。顯示“git checkout”完成的標籤和分支新圖示的螢幕截圖
  • 添加了大量完成規範:adbbasenamebundleclearcutdatedddiffdigdirnamedocker-composedockerdotnetenvexportfdiskfmtfoldghgohtopidjqlnlsblklsofmountnlodpastepingpkillreadlinkrsyncrubyruffsedseqshredsortsourcesplitstatsusudotactarteetimetrtraceroutetreetruncateuniqunzipwcwherewhereiswhichwhoxargsxxdyozip

終端粘性滾動改進

我們現在預設啟用了終端粘性滾動。我們進行了一些改進以獲得更好的體驗,例如使用分頁器時改進了行為。終端粘性滾動現在與 editor.tabFocusMode 設定相容。

語言

JavaScript 和 TypeScript

審查使用情況資料後,我們決定刪除內建的 bower.json IntelliSense。Bower 自 2017 年以來已棄用,我們的內建支援使用率低且未積極維護。

Bower 建議使用者遷移到 npmyarn。對 VS Code 中 Bower 的持續支援可以透過擴充套件提供。

Python

Python 環境擴充套件對 Pipenv 的支援

現在可以像在 Python 擴充套件中一樣發現和選擇 Pipenv 環境。此外,它們會出現在 Python 側邊欄的“環境管理器”檢視中,在那裡它們與其他環境型別一起分組和顯示。

Screenshot showing the Python sidebar with Pipenv environments expanded.

配置環境變數注入

當啟用 Python 環境擴充套件時,新設定 python.useEnvFile 控制是否將 .env 檔案中的環境變數和 python.envFile 設定注入到終端中。

Python 環境擴充套件改進

作為穩定使用者受控推出的一部分,Python 環境擴充套件繼續收到錯誤修復和改進。要在推出期間使用 Python 環境擴充套件,請確保已安裝該擴充套件,並將以下內容新增到您的 VS Code settings.json 檔案中:"python.useEnvironmentsExtension": true

Pylance 提供 AI 驅動的懸停摘要 (實驗性)

當使用 Pylance 的最新預釋出版本時,Python 現在提供了一項新的實驗性 AI 懸停摘要功能。當您啟用 python.analysis.aiHoverSummaries 設定後,您可以即時獲得對尚無文件的符號的有用摘要。這使得理解不熟悉的程式碼更容易,並提高了您探索 Python 專案時的生產力。AI 懸停摘要目前可供 GitHub Copilot Pro、Pro+ 和 Enterprise 使用者使用。

我們期待很快將此實驗性體驗帶到穩定擴充套件版本。

執行程式碼片段工具

Pylance 執行程式碼片段工具不再依賴於 python -c "code" 等終端命令或建立臨時檔案來執行,而是使 GitHub Copilot 能夠完全在記憶體中執行 Python 片段。它會自動使用為您的工作區配置的正確 Python 直譯器,並消除了終端執行時有時出現的 Shell 轉義和引用中的常見問題。

其突出優點之一是它提供清晰、格式良好的輸出,stdout 和 stderr 交錯以提高畫質晰度。這使得它在與 GitHub Copilot 一起使用代理模式時非常適合測試小塊程式碼、執行快速指令碼、驗證 Python 表示式或檢查匯入,所有這些都在您的工作區上下文中進行。

要試用它,請確保使用 Pylance 擴充套件的最新預釋出版本。然後,您可以透過“聊天”檢視中的“新增上下文...”>“工具”選單選擇 pylancerunCodeSnippet 工具。

注意:與所有 AI 生成的程式碼一樣,請確保在允許執行此工具之前檢查生成的程式碼。審查程式碼的邏輯和意圖可確保其符合您的專案目標並保持安全性和正確性。

Pylance IntelliSense 在所有 Python 文件中啟用

python.analysis.supportAllPythonDocuments 設定已從最新的 Pylance 預釋出版本中移除,Pylance IntelliSense 現在預設在所有 Python 文件中啟用,包括終端和差異檢視。這意味著您可以在 VS Code 中處理 Python 的任何地方獲得豐富的程式碼完成、懸停和程式碼導航。

啟用鉤子

Python 啟用鉤子現在可以從 Shell 整合指令碼中執行,而無需 Python 環境擴充套件修改您的 Shell 配置檔案。當 python-envs.terminal.autoActivationType 設定為 shellStartup 時,這提供了更可靠的終端啟用,並且更重要的是,確保 Copilot 終端按預期啟用。

對擴充套件的貢獻

GitHub 拉取請求

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

  • 側邊欄內容在狹窄視窗上摺疊
  • 重新載入後恢復拉取請求和問題 webviews
  • 新的“TODO”程式碼操作允許您直接委託給 Copilot 編碼代理
  • 子模組可以使用 githubPullRequests.ignoreSubmodules 忽略

檢視擴充套件 0.118.0 版本的更新日誌,瞭解該版本中的所有內容。

擴充套件開發

擴充套件啟動的終端的 shellIntegrationNonce

現在可以將 shellIntegrationNonce 傳遞給 TerminalOptionsExtensionTerminalOptions 中的 createTerminal。這使擴充套件能夠控制 nonce,該 nonce 用於驗證 Shell 整合轉義序列中的命令

語言模型聊天提供程式 API

在此迭代中,我們最終確定了 LanguageModelChatProviders API。這使擴充套件能夠貢獻一個或多個語言模型,無論是雲託管的還是本地的。透過安裝擴充套件,使用者可以透過聊天中的模型選擇器選擇這些模型。

已經有多個擴充套件利用此 API 來使用附加模型擴充套件 VS Code 中的聊天,包括 VS Code 的 AI 工具包Cerebras 推理Hugging Face

您可以在我們的語言模型聊天提供程式擴充套件指南或我們的擴充套件示例中瞭解如何利用此 API。

注意:透過此 API 提供的模型目前僅適用於個人 GitHub Copilot 計劃的使用者。

提議的 API

身份驗證:支援 getSession 中的 WWW-Authenticate 質詢

HTTP 的一個成熟模式是,對 API 的請求可以返回 401 Unauthorized 狀態碼,並帶有 WWW-Authenticate 標頭,該標頭定義了身份驗證質詢。這些本質上是 API 為了解決 401 錯誤所需的東西。

我們引入了一個提議的 API,它允許將這些質詢傳遞並處理給身份驗證提供程式。首先,從呼叫方您可以現在這樣傳遞質詢

export interface AuthenticationWWWAuthenticateRequest {
  /**
   * The raw WWW-Authenticate header value that triggered this challenge.
   */
  readonly wwwAuthenticate: string;

  /**
   * Optional scopes for the session.
   */
  readonly scopes?: readonly string[];
}

export namespace authentication {
  // NOTE: The only change is the 2nd parameter, the other variations of `getSession` have the same change
  export function getSession(
    providerId: string,
    scopeListOrRequest: ReadonlyArray<string> | AuthenticationWWWAuthenticateRequest,
    options?: AuthenticationGetSessionOptions
  ): Thenable<AuthenticationSession | undefined>;
}

在身份驗證提供程式方面,我們已將以下兩個新函式新增到 AuthenticationProvider

getSessionsFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<readonly AuthenticationSession[]>;
createSessionFromChallenges(constraint: AuthenticationConstraint, options: AuthenticationProviderSessionOptions): Thenable<AuthenticationSession>;

並且身份驗證提供程式可以在透過 AuthenticationProviderOptions 中的 supportsChallenges: true 註冊時宣告對質詢的支援。

示例:Azure MFA

這項工作最初是由於 Azure API 即將要求 MFA 的變更而完成的,因此我們也可以將其用作此 API 的示例。

假設您有一個在 Azure 中建立資源的擴充套件。它只是呼叫 Azure RM API,沒什麼花哨的……您的擴充套件可能已經熟悉呼叫 vscode.authentication.getSession 來獲取身份驗證會話,主要是訪問令牌,可用於呼叫此 API。現在,當您首次鑄造該身份驗證會話時,根據您的組織,您可能已經或可能沒有經過多重身份驗證 (MFA)。如果您已經經過 MFA,那麼 Azure API 將很高興。如果您沒有經過 MFA,那麼 Azure 的 API 將返回 401 和 WWW-Authenticate 標頭。

現在,VS Code 中新的 API 來了……您所要做的就是獲取該標頭值,並將其直接傳遞給 vscode.authentication.getSession

const newRequest = {
  wwwAuthenticate: theRawHeaderValue,
  scopes: scopesFromPreviousRequest
};
const sessionWithMFA = await vscode.authentication.getSession(
  'microsoft',
  newRequest,
  options
);

這將把該標頭值傳遞給 microsoft 身份驗證提供程式,並且身份驗證提供程式將負責鑄造一個會話,其中滿足了質詢。

後續步驟

下一次迭代,我們將最終確定此提案的 getSession(即擴充套件請求身份驗證)部分,因此如果您對此或 AuthenticationProvider 更改的形狀有任何反饋,請告訴我們!您可以在GitHub 上找到完整的提案

另一個即將出現的關於 WWW-Authenticate 的用例是,MCP 伺服器發出 WWW-Authenticate 標頭,要求提供具有更多範圍的令牌。MCP 規範中對此有一個提案

輔助側邊欄中的檢視容器

擴充套件可以將檢視容器貢獻給 activitybarpanel。我們現在也添加了對貢獻給 secondarySidebar 的支援。這目前在 contribSecondarySideBar 提議的 API 之後。我們希望儘快最終確定此 API。

工程

探索 VS Code 內部開發迴圈中的 Playwright 和 Playwright MCP

代理模式和 VS Code 的其他 AI 功能已成為 VS Code 團隊構建 VS Code 本身的核心工具(無雙關語)。我們希望探索如何進一步應用這些功能,以使 VS Code 的內部開發迴圈變得更好。為此,我們一直在嘗試擴充套件我們現有的冒煙測試自動化專案,該專案使用Playwright,以建立一個 MCP 伺服器,該伺服器可以驅動 VS Code 的本地例項。這允許我們現有的代理流,該流側重於從構建/測試時工件(編譯、linter、測試等)接收上下文,現在還可以與 VS Code 的即時例項互動……驗證更改在執行時是否具有所需的效果。

這項工作的第一部分可以在 vscode 倉庫的test/mcp 資料夾中找到。如果您有興趣試用它,入門非常容易

  1. 遵循貢獻指南以執行 Code OSS 的本地版本
  2. 然後,您可以使用我們微不足道的(目前)提示檔案,在代理模式下提出問題 /playwright your question here

這仍然是早期探索,但我們對這為我們在內部開發迴圈中進一步使用 AI 帶來的可能性感到興奮。基礎工作已經奠定,我們將在此基礎上進行迭代,使其對團隊更加健壯和有用。

這項工作最近在 VS Code Insiders 播客中得到了專題報道,我們在其中討論了此探索背後的動機和一些技術細節。您可以收聽VS Code Insiders 播客的這一集。

值得注意的修復

  • vscode#151902 - 終端:選擇時複製 + 1.68 中的新高亮在 CMD+F 上覆制前一個術語
  • vscode#222075 - 使用分頁器進行向下翻頁時,終端粘性滾動可能會顯示一幀
  • xtermjs/xterm.js#5390 - 修復退出 alt 緩衝區後捲軸瞬移問題

感謝

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

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-copilot-chat 的貢獻

vscode-eslint 的貢獻

vscode-extension-samples 的貢獻

vscode-js-debug 的貢獻

vscode-jupyter 的貢獻

vscode-languageserver-node 的貢獻

vscode-markdown-languageservice 的貢獻

vscode-markdown-tm-grammar 的貢獻

vscode-pull-request-github 的貢獻

vscode-python-environments 的貢獻

vscode-vsce 的貢獻

debug-adapter-protocol 的貢獻

language-server-protocol 的貢獻

node-jsonc-parser 的貢獻

python-environment-tools 的貢獻

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

如果您想閱讀以前的 VS Code 版本的釋出說明,請訪問 code.visualstudio.com 上的更新