2025 年 4 月 (版本 1.100)
釋出日期: 2025 年 5 月 8 日
更新:在 VS Code Stable 中預設啟用下一編輯建議 (NES)(更多...)。
更新 1.100.1:本次更新解決了這些安全問題。
更新 1.100.2:本次更新解決了這些問題。
更新 1.100.3:本次更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel silicon | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2025 年 4 月版。此版本有許多更新,我們希望您會喜歡,其中一些主要亮點包括
-
聊天
-
聊天效能
-
編輯器體驗
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新。Insiders:想盡快嘗試新功能嗎?您可以下載每晚Insiders版本並儘快嘗試最新更新。
聊天
提示和指令檔案
您可以使用基於 Markdown 的指令和提示檔案,根據您的特定編碼實踐和技術棧來定製您在 VS Code 中的 AI 體驗。我們統一了這兩個相關概念的實現和用法,但它們各自有不同的目的。
指令檔案
設定:chat.instructionsFilesLocations
指令檔案(也稱為自定義指令或規則)提供了一種在 Markdown 檔案中描述 AI 模型通用指南和上下文的方法,例如程式碼風格規則,或要使用的框架。指令檔案不是獨立的聊天請求,而是提供您可以應用於聊天請求的上下文。
指令檔案使用 .instructions.md 檔案字尾。它們可以位於使用者資料資料夾或工作區中。 chat.instructionsFilesLocations 設定列出了包含指令檔案的資料夾。
您可以手動將指令附加到特定聊天請求,或者可以自動新增它們
-
要手動新增它們,請使用聊天檢視中的“新增上下文”按鈕,然後選擇“指令...” 。或者,使用命令面板中的“聊天: 附加指令...”命令。這將開啟一個選擇器,讓您可以選擇現有的指令檔案或建立一個新的指令檔案進行附加。
-
要自動將指令新增到提示中,請在指令檔案中新增
applyToFront Matter 標題,以指示指令適用於哪些檔案。如果聊天請求包含與給定 glob 模式匹配的檔案,則會自動附加指令檔案。以下示例為 TypeScript 檔案(
applyTo: '**/*.ts')提供了指令--- applyTo: '**/*.ts' --- Place curly braces on separate lines for multi-line blocks: if (condition) { doSomething(); } else { doSomethingElse(); }
您可以使用“聊天: 新建指令檔案...”命令建立指令檔案。此外,在使用者資料資料夾中建立的檔案可以透過“設定同步”服務自動同步到多個使用者計算機。請確保在“備份和同步設定...”對話方塊中選中“提示和指令”選項。
在我們的文件中瞭解有關指令檔案的更多資訊。
提示檔案
提示檔案描述了一個獨立的、完整的聊天請求,包括提示文字、聊天模式和要使用的工具。提示檔案對於為常見任務建立可重用的聊天請求非常有用。例如,您可以新增一個用於建立前端元件或執行安全審查的提示檔案。
提示檔案使用 .prompt.md 檔案字尾。它們可以位於使用者資料資料夾或工作區中。 chat.promptFilesLocations 設定列出了查詢提示檔案的資料夾。
有幾種方法可以執行提示檔案
-
在聊天輸入欄位中鍵入
/,然後輸入提示檔名。
-
在編輯器中開啟提示檔案,然後按編輯器工具欄中的“播放”按鈕。這使您無需切換回聊天檢視即可快速迭代並執行提示。

-
使用命令面板中的“聊天: 執行提示檔案...”命令。
提示檔案可以具有以下 Front Matter 元資料標題,以指示如何執行它們
mode:呼叫提示時使用的聊天模式(ask、edit或agent模式)。tools:如果mode是agent,則為提示可用的工具列表。
以下示例顯示了一個用於生成釋出說明的提示檔案,該檔案在代理模式下執行,並且可以使用一組工具
---
mode: 'agent'
tools: ['getCurrentMilestone', 'getReleaseFeatures', 'file_search', 'semantic_search', 'read_file', 'insert_edit_into_file', 'create_file', 'replace_string_in_file', 'fetch_webpage', 'vscode_search_extensions_internal']
---
Generate release notes for the features I worked in the current release and update them in the release notes file. Use [release notes writing instructions file](.github/instructions/release-notes-writing.instructions.md) as a guide.
要建立提示檔案,請使用命令面板中的“聊天: 新建提示檔案...”命令。
在我們的文件中瞭解有關提示檔案的更多資訊。
改進和說明
- 指令和提示檔案現在有自己的語言 ID,可以在任何開啟檔案的“語言模式”對話方塊中進行配置(分別為“Prompt”和“Instructions”)。例如,這允許使用未命名文件作為臨時提示檔案,然後再將其儲存為檔案到磁碟。
- 我們將“聊天: 使用提示”命令重新命名為“聊天: 執行提示”。此外,該命令現在會立即執行選定的提示,而不是像以前那樣將其附加為聊天上下文。
- 這兩種檔案型別現在也支援其標題中的
description元資料,為簡短且使用者友好的提示摘要提供了一個公共位置。將來,此標題計劃與applyTo標題一起用作確定檔案是否需要與聊天請求自動包含的規則(例如,description: 'Code style rules for front-end components written in TypeScript.')
更快的代理模式編輯
我們在代理模式下實現了對 OpenAI 的 apply patch 編輯格式(GPT 4.1 和 o4-mini)以及 Anthropic 的 replace string 工具(Claude Sonnet 3.7 和 3.5)的支援。這意味著您可以受益於顯著更快的編輯速度,尤其是在大型檔案中。
OpenAI 模型的更新在 VS Code Insiders 中預設啟用,並逐步推廣到 Stable。Anthropic 更新在 Stable 和 Insiders 中都可供所有使用者使用。
聊天中的基礎模型
我們正在 VS Code 中逐步推廣 GPT-4.1 作為聊天中的預設基礎模型。您可以使用聊天檢視中的模型選擇器隨時更改為其他模型。
使用 #githubRepo 工具搜尋 GitHub 儲存庫的程式碼
想象一下,您需要詢問有關 GitHub 儲存庫的問題,但您的編輯器中沒有開啟它。例如,您想知道在 microsoft/vscode 儲存庫中某個特定函式是如何實現的。
您現在可以使用 #githubRepo 工具搜尋您有權訪問的任何 GitHub 儲存庫中的程式碼片段。此工具將 user/repo 作為額外輸入。例如,“如何在 TS 中實現工廠模式 #githubRepo microsoft/vscode”。
您還可以使用自定義指令來提示何時以及如何使用此工具,如下例所示
---
applyTo: '**'
---
Use the `#githubRepo` tool with `microsoft/vscode` to find relevant code snippets in the VS Code codebase.
Use the `#githubRepo` tool with `microsoft/typescript` to answer questions about how TypeScript is implemented.

如果您想詢問您當前正在處理的儲存庫,您可以使用#codebase 工具。
此外,#githubRepo 工具僅用於搜尋相關程式碼片段。GitHub MCP 伺服器提供用於處理 GitHub issue 和 pull request 的工具。瞭解有關在 VS Code 中新增 MCP 伺服器的更多資訊。
使用擴充套件工具查詢 Marketplace 擴充套件
在聊天中使用擴充套件工具(#extensions)來查詢 Marketplace 中的擴充套件。根據您的聊天提示,該工具會自動呼叫,或者您可以在提示中顯式引用它(#extensions)。該工具會返回與您的查詢匹配的擴充套件列表。您可以直接從結果中安裝擴充套件。
改進網頁獲取工具
上個月,我們推出了獲取工具(#fetch),用於直接從聊天中檢索網頁內容,並將其作為上下文包含在提示中。如果您錯過了該釋出說明,請檢視獲取工具的初始釋出釋出說明和示例。
在此迭代中,我們對該工具進行了一些重大更改,包括
- 整個頁面作為上下文:我們現在將整個頁面作為上下文新增,而不是一部分。藉助更大的上下文視窗,我們能夠為模型提供整個頁面。例如,現在可以提出需要儘可能多頁面資訊的摘要問題。如果您確實設法填滿了上下文視窗,獲取工具足夠智慧,可以排除頁面中不太相關的部分。這樣,您就不會超出上下文視窗限制,同時仍保留重要部分。
- 標準化的頁面格式(Markdown):以前,我們將抓取的網頁格式化為自定義的層次結構格式,該格式可行,但由於其自定義性質,有時難以理解。現在,我們將抓取的網頁轉換為 Markdown,一種標準化語言。這提高了相關性檢測的可靠性,並且是大多數語言模型都非常瞭解的格式,因此它們可以更容易地對其進行推理。
我們很樂意聽取您如何使用獲取工具,以及您希望從中看到哪些功能!
聊天輸入改進
我們對聊天輸入框進行了一些改進
- 附件:當您使用
#在提示文字中引用上下文時,它們現在也會顯示為附件藥丸。這使得理解發送給語言模型的內容更加簡單。 - 上下文選擇器:我們簡化了上下文選擇器,使其更容易選擇檔案、資料夾和其他附件型別。
- 完成按鈕:我們聽取了您關於“完成”按鈕的反饋,並將其移除了!不再有關於意外會話結束的困惑。現在,只有當您建立新聊天時,我們才會開始新會話(⌘N (Windows、Linux Ctrl+N))。
聊天模式鍵盤快捷鍵
鍵盤快捷鍵 ⌃⌘I (Windows、Linux Ctrl+Alt+I) 仍然只打開聊天檢視,但是 ⇧⌘I (Windows Ctrl+Shift+I、Linux Ctrl+Shift+Alt+I) 快捷鍵現在開啟聊天檢視並切換到代理模式。如果您想為其他聊天模式設定鍵盤快捷鍵,則每種模式都有一個命令
workbench.action.chat.openAgentworkbench.action.chat.openEditworkbench.action.chat.openAsk
代理模式編輯的自動修復診斷
設定:github.copilot.chat.agent.autoFix
如果在代理模式下進行檔案編輯引入了新錯誤,代理模式現在可以檢測到這些錯誤,並自動建議後續編輯。這意味著您不必傳送後續提示來讓代理模式修復任何錯誤。您可以使用 github.copilot.chat.agent.autoFix 停用此行為。
代理模式下撤銷和手動編輯的處理
以前,在代理模式會話期間進行手動編輯可能會使模型感到困惑。現在,代理會收到關於您更改的通知,並在必要時重新讀取檔案,然後再編輯可能已更改的檔案。
對話摘要和提示快取
我們對代理模式提示的構建方式進行了一些更改,以最佳化提示快取。提示快取是透過維護提示的穩定字首來加速模型響應的一種方式。下一個請求可以從該字首繼續,結果是每個請求都應該更快一點。這在具有大型上下文的重複請求系列中尤其有效,例如您在代理模式下通常會遇到的情況。
當您的對話變長,或上下文變得非常大時,您可能會在代理模式會話中看到“已總結的對話歷史記錄”訊息

我們壓縮了迄今為止的對話,將其提煉成最重要的資訊和您任務的當前狀態,而不是將整個對話保持為 FIFO,打破快取。這可以保持提示字首的穩定,並保持響應速度。
MCP 支援流式 HTTP
此版本增加了對 Model Context Protocol (MCP) 伺服器的新 Streamable HTTP 傳輸的支援。Streamable HTTP 伺服器的配置與現有的 SSE 伺服器相同,我們的實現與 SSE 伺服器向後相容。
{
"servers": {
"my-mcp-server": {
"url": "https://:3000/mcp"
}
}
}
在 VS Code 中瞭解有關 MCP 支援的更多資訊。
MCP 支援影像輸出
我們現在支援 MCP 伺服器作為其工具輸出的一部分生成影像。
請注意,並非所有語言模型都支援從工具輸出讀取影像。例如,儘管 GPT-4.1 具有視覺能力,但目前不支援從工具讀取影像。
來自 MCP 伺服器的增強的輸入、輸出和進度
我們增強了顯示 MCP 伺服器工具輸入和輸出的 UI,並且還增加了對 MCP 新進度訊息的支援。
主題:Codesong(在vscode.dev上預覽)
MCP 配置生成使用輸入
為了幫助保護您的秘密安全,由“MCP: 新增伺服器”命令生成的 AI 輔助配置現在會為任何秘密生成 inputs,而不是將其內聯到生成的配置中。
內聯聊天 V2 (預覽)
我們一直在努力改進內聯聊天 ⌘I (Windows、Linux Ctrl+I)。它的主題仍然是“將聊天帶入程式碼”,但它在後臺使用與聊天編輯相同的邏輯。這意味著更好地利用可用上下文和更好的程式碼編輯策略。您可以透過 inlineChat.enableV2 啟用內聯聊天 v2。
此外,現在還有一個更輕量級的 UX 可以選擇啟用。使用 inlineChat.hideOnRequest 設定,內聯聊天會在請求發出後立即隱藏。然後它會最小化為聊天編輯覆蓋層,這允許接受或放棄更改,或恢復內聯聊天控制元件。
選擇 UI 元素並將其附加到聊天(實驗性)
設定:chat.sendElementsToChat.enabled
當您開發 Web 應用程式時,您可能希望詢問有關網頁特定 UI 元素的聊天。您現在可以使用內建的 Simple Browser 將 UI 元素作為上下文附加到聊天中。
透過內建的 Simple Browser 開啟任何本地託管的站點後(使用“Simple Browser: Show”命令啟動),現在會顯示一個新工具欄,您可以在其中選擇“Start”來選擇您想要的站點的任何元素。這將附加所選元素的螢幕截圖以及元素的 HTML 和 CSS。
使用以下項配置要附加到聊天中的內容
- chat.sendElementsToChat.attachCSS:啟用或停用附加關聯的 CSS
- chat.sendElementsToChat.attachImages:啟用或停用附加所選元素的螢幕截圖
此實驗性功能預設對所有 Simple Browsers 啟用,但可以透過 chat.sendElementsToChat.enabled 停用。
在代理模式下建立和啟動任務(實驗性)
設定:github.copilot.chat.newWorkspaceCreation.enabled
在上一版本中,我們引入了 github.copilot.chat.newWorkspaceCreation.enabled(實驗性)設定,以啟用透過代理模式建立工作區。
現在,在此建立流程的末尾,系統會提示您為啟動應用程式或專案建立並執行一個任務。這簡化了專案啟動流程,並支援輕鬆重用任務。
輔助功能
合併編輯器改進
合併編輯器現在更易於訪問。要了解可用操作,請在合併編輯器中開啟可訪問性幫助對話方塊(⌥F1 (Windows Alt+F1、Linux Shift+Alt+F1))。關鍵操作包括“合併編輯器: 完成合並”(⌘Enter (Windows、Linux Ctrl+Enter))和“在合併編輯器輸入之間切換”(⇧⌘T (Windows、Linux Ctrl+Shift+T))。當前聚焦的輸入現在也會通告給輔助技術。
下一編輯建議增強
新設定 accessibility.signals.nextEditSuggestion 會在預測建議可用時通知您。透過可訪問檢視(⌥F2 (Windows Alt+F2、Linux Shift+Alt+F2))審查和接受建議。此外,accessibility.signals.diffLineAdded 和 accessibility.signals.diffLineRemoved 在導航過程中提供音訊提示,使差異審查可訪問。
從可訪問檢視審查 Copilot 使用者請求
在代理模式下,工具呼叫或終端命令有時需要使用者許可權才能執行。在可訪問檢視(⌥F2 (Windows Alt+F2、Linux Shift+Alt+F2))中審查這些操作。
獨特的輔助功能聲音
accessibility.signals.save.sound 現在有了自己的獨特聲音,不再與 accessibility.signals.terminalCommandSucceeded.sound 共享音訊。
編輯器體驗
浮動視窗模式
VS Code 中的浮動視窗允許您將編輯器和某些檢視移出主視窗到較小的視窗中,以實現輕量級的多視窗設定。浮動視窗有兩種新模式
- 緊湊模式:我們隱藏了某些 UI 元素,為實際內容騰出更多空間
- 始終置頂:視窗將保持在所有其他視窗之上,直到您離開此模式
這是一個如何將浮動編輯器視窗轉換為緊湊模式的示例
我們在建立新視窗中的聊天時預設使用緊湊模式。結合始終置頂視窗的選項,您可以始終保留聊天檢視以提問!
我們引入了新的命令,如果您更喜歡使用鍵盤快捷鍵執行這些操作
workbench.action.toggleWindowAlwaysOnTop:切換始終置頂模式workbench.action.enableWindowAlwaysOnTop:將浮動視窗設定為始終置頂workbench.action.disableWindowAlwaysOnTop:將浮動視窗設定為正常workbench.action.toggleCompactAuxiliaryWindow:切換緊湊模式workbench.action.enableCompactAuxiliaryWindow:啟用緊湊模式workbench.action.disableCompactAuxiliaryWindow:停用緊湊模式
注意:即使在緊湊模式下,您也可以建立複雜的編輯器佈局並開啟其他編輯器。
次級邊欄預設可見性
設定:workbench.secondarySideBar.defaultVisibility
預設情況下,開啟新工作區或視窗時,次級邊欄是隱藏的。透過新設定 workbench.secondarySideBar.defaultVisibility,您可以控制是否在新的工作區或視窗中自動開啟次級邊欄。您可以從以下選項中選擇
hidden:這是預設設定,保持次級邊欄隱藏visibleInWorkspace:如果您開啟資料夾或多根工作區,則開啟次級邊欄visible:這將始終開啟次級邊欄
請注意,在工作區或視窗開啟後,可見性將成為工作區狀態並覆蓋設定值。如果您關閉次級邊欄,它在該工作區或視窗中將保持關閉狀態。
強制擴充套件簽名驗證
所有平臺:Windows、macOS 和 Linux 現在都強制進行擴充套件簽名驗證。以前,此驗證僅在 Windows 和 macOS 上強制執行。在此版本中,Linux 也強制執行擴充套件簽名驗證,確保所有擴充套件在安裝前都經過正確驗證。
此更改透過防止安裝潛在的惡意擴充套件進一步增強了安全性。有關更多資訊,請參閱擴充套件簽名。
注意:由於問題 #248308,在 Linux ARM32 構建上,強制擴充套件簽名驗證仍然停用。預計將在下一個版本中解決。
惡意擴充套件的“瞭解更多”連結
當擴充套件被識別為惡意時,VS Code 現在會提供指向附加資訊的連結,解釋為什麼該擴充套件被標記。這些“瞭解更多”連結將使用者連線到 GitHub issue 或文件,其中包含有關安全問題的詳細資訊,幫助您更好地瞭解潛在風險。
在 VS Code Stable 中阻止安裝 Copilot Chat 預釋出版本
VS Code 現在阻止在 VS Code Stable 中安裝 Copilot Chat 擴充套件的預釋出版本。這有助於避免您無意中安裝 Copilot Chat 預釋出版本並陷入損壞狀態的情況。這意味著您只能在 VS Code 的 Insiders 版本中安裝 Copilot Chat 擴充套件預釋出版本。
開啟檢視而不聚焦的命令
檢視(樹檢視和 Webview 檢視)現在可以開啟而無需聚焦。這對於希望開啟檢視但不將焦點移出當前編輯器的擴充套件和鍵盤快捷鍵很有用。該命令是 your-view-id.open,它接受一個屬性包引數:{ preserveFocus: boolean}。
使用關鍵字建議進行語義文字搜尋(實驗性)
設定:github.copilot.chat.search.keywordSuggestions
語義文字搜尋現在支援 AI 驅動的關鍵字建議。透過啟用此功能,您將開始看到相關的引用或定義,這些可能有助於您找到正在查詢的程式碼。
程式碼編輯
新的下一編輯建議 (NES) 模型
設定:github.copilot.nextEditSuggestions.enabled
我們很高興推出一個新模型來驅動 NES,該模型旨在提供更快、更具上下文相關性的程式碼建議。此更新模型提供了改進的效能,提供延遲更低的建議,並提供侵入性更小、與您最近的編輯更接近的建議。此更新是我們不斷致力於改進 Visual Studio Code 中 AI 輔助開發工具的一部分。
匯入建議
設定:github.copilot.nextEditSuggestions.fixes
下一編輯建議 (NES) 現在可以自動建議在 JavaScript 和 TypeScript 檔案中新增缺失的匯入語句。透過將 github.copilot.nextEditSuggestions.fixes 設定來啟用此功能。我們計劃在未來的更新中透過支援其他語言的匯入來進一步增強此功能。

下一編輯建議 (NES) 預設啟用
下一編輯建議 (NES) 現在在 VS Code Insiders 中預設啟用,並且我們正在逐步將其推廣到 Stable。
在 HTML 或 Markdown 中生成 alt 文字
您現在可以在 HTML 和 Markdown 檔案中生成或更新現有的 alt 文字。導航到包含嵌入式影像的任何行,並透過 ⌘. (Windows、Linux Ctrl+.) 觸發快速修復,或透過選擇燈泡圖示。

Notebook
查詢和替換歷史記錄持久化
筆記本查詢控制元件現在支援查詢和替換輸入欄位的持久化歷史記錄。這會在重新載入後保留,並由設定 editor.find.history 和 editor.find.replaceHistory 控制。
將單元格輸出拖放到聊天中
為了增強對聊天中單元格輸出使用的現有支援,現在可以將輸出拖到聊天檢視中,以實現無縫附加體驗。目前僅支援影像和文字輸出。具有影像 mime 型別的輸出是可直接拖動的,但為避免與文字選擇衝突,文字輸出需要按住 alt 修飾鍵才能啟用拖動。我們正在探索未來版本中的 UX 改進。
用於代理模式的筆記本工具
執行單元格
聊天現在有一個 LLM 工具來執行筆記本單元格,這允許代理根據單元格執行結果進行更新,或者在構建筆記本時進行自己的資料探索。
獲取核心狀態
代理可以使用 Kernel State 工具來了解當前核心會話中已執行哪些單元格,並讀取活動變數。
列出/安裝包
Jupyter 擴充套件為正在使用的筆記本核心的環境提供了列出和安裝包的工具。如果可用,操作將委託給 Python Environments 擴充套件;否則,它會嘗試使用 pip 包管理器。
原始碼管理
暫存更改的快速差異裝飾
為了滿足一個長期的功能請求,在此里程碑中,我們為暫存的更改添加了快速 diff 編輯器裝飾。現在,您無需開啟原始碼管理檢視,即可直接從編輯器中檢視暫存的更改。
您可以使用以下主題令牌自定義暫存更改的快速 diff 裝飾的顏色:editorGutter.addedSecondaryBackground、editorGutter.modifiedSecondaryBackground、editorGutter.deletedSecondaryBackground。
如果您不想看到暫存更改的快速 diff 裝飾,可以透過編輯器裝訂線上文選單中可用的 **Diff 裝飾** 子選單來隱藏它們。
除錯
反彙編檢視上下文選單
得益於社群的貢獻,反彙編檢視現在有了上下文選單。

JavaScript 偵錯程式網路檢視
最新版本的 Node.js 增強了其網路除錯功能。對於支援良好的最新版本 Node.js(v22.14.0 及以上版本),將預設啟用 實驗性網路檢視。
語言
顯示 CSS 和 HTML 的瀏覽器支援情況
當您將滑鼠懸停在 CSS 屬性、HTML 元素或 HTML 屬性上時,現在會看到一個使用 Baseline 的跨瀏覽器支援情況摘要。

.*.env 檔案的預設語法高亮
名稱格式為 .*.env 的檔案現在將作為 .ini 檔案進行語法高亮。
JavaScript 和 TypeScript 的可展開懸停(實驗性)
設定:typescript.experimental.expandableHover
我們一直在迭代 JavaScript 和 TypeScript 的可展開懸停功能。此功能允許您在懸停控制元件中使用 + 和 - 來顯示更多或更少的型別資訊。
此功能仍處於實驗階段,但您可以透過啟用 typescript.experimental.expandableHover 來立即試用。您必須使用 TypeScript 版本 5.9 或更高版本,例如透過安裝 TypeScript nightly 擴充套件。
遠端開發
遠端開發擴充套件允許您透過 SSH 或遠端隧道使用開發容器、遠端機器或適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
Dev 容器說明檔案
Dev Container 功能和映象現在包含說明檔案,描述了它們的工具和配置。VS Code 聊天可以自動利用此上下文,從而提高開發過程中建議的相關性和準確性。
對擴充套件的貢獻
Python
分支覆蓋率支援
Python 的測試資源管理器現在支援分支覆蓋率!請注意,您的 coveragepy 版本必須 >= 7.7 才能使用此功能。您可以透過執行 pip install coverage==7.7 來升級 coverage。
Python 環境快速建立命令
Python Environments 擴充套件增加了對快速建立的支援,使環境建立過程更加無縫。快速建立透過檢測您機器上的最新 Python 版本來最小化您建立新虛擬環境所需的輸入,並一鍵安裝任何工作區依賴項。這將在您的工作區中為 venv 型別環境建立 .venv,為 conda 型別環境建立 .conda。您可以透過命令面板中的 **Python: Create Environment** 命令訪問快速建立。

Python 環境聊天工具
Python Environments 擴充套件(預覽版)現在包含兩個聊天工具:“獲取 Python 環境資訊”和“安裝 Python 包”。要使用這些工具,您可以直接在提示中透過新增 #pythonGetEnvironmentInfo #pythonInstallPackage 來引用它們,或者代理模式將根據適用情況自動呼叫工具。這些工具可根據檔案或工作區上下文無縫檢測合適的環境資訊,並處理帶有準確環境解析的包安裝。
使用 Pylance 時的顏色選擇器
Pylance 現在可以在編輯器中直接顯示 Python 檔案中識別的顏色值的互動式顏色樣本,從而更容易在飛行中視覺化和選擇顏色。要進行嘗試,您可以啟用 python.analysis.enableColorPicker。支援的格式包括 #RGB(例如“#001122”)和 #RGBA(例如“#001122FF”)。

AI 程式碼操作:轉換格式字串(實驗性)
在使用 Pylance 時,有一個新的實驗性 AI 程式碼操作,用於將字串拼接轉換為 f-string 或 format()。要進行嘗試,請在選擇要轉換的字串中的符號時,透過燈泡圖示或透過 Ctrl + ./Cmd + . 選擇 **Convert to f-string with Copilot** 或 **Convert to format() call with Copilot** 程式碼操作。

此體驗透過以下設定啟用
"python.analysis.aiCodeActions": {"convertFormatString": true}
GitHub 拉取請求和議題
GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:
- 在聊天中詢問有關活動拉取請求的問題,例如“Address all comments in the #activePullRequest”。
- 在 Webview 中檢視問題,就像您可以檢視拉取請求一樣。
- “拉取請求”、“問題”和“通知”檢視的完善和對齊。
- 為 GitHub 的 Project Padawan 釋出做準備,啟用了將問題分配給 Copilot、@提及 Copilot,並確保它將在 UI 中正確顯示。
請檢視該擴充套件的 0.110.0 版本 更新日誌,瞭解其他亮點。
擴充套件開發
文字編碼
我們為 VS Code 中處理文字編碼的 API 最終確定了。
具體來說,此新 API 允許您
- 獲取
TextDocument的當前encoding - 使用特定的
encoding開啟TextDocument - 使用特定的
encoding將string編碼為Uint8Array - 使用特定的
encoding將Uint8Array解碼為string
擴充套件的 ESM 支援
NodeJS 擴充套件主機現在支援使用 JavaScript 模組 (ESM) 的擴充套件。只需在擴充套件的 package.json 檔案中新增 "type": "module" 條目即可。這樣,JavaScript 程式碼就可以使用 import 和 export 語句,包括特殊的模組 import('vscode')。在此處查詢示例:https://github.com/jrieken/vscode-esm-sample-extension。
請注意,ESM 支援尚未用於 Web Worker 擴充套件主機。還有一些技術挑戰需要克服。我們將在 https://github.com/microsoft/vscode/issues/130367 上釋出更新。敬請關注!
提議的 API
影像的工具呼叫
在上一個迭代中,我們添加了一個 提議的 API,以便擴充套件可以附加影像並將視覺請求傳送給語言模型。在此迭代中,我們擴充套件了此 API,以允許工具呼叫結果也包含影像。
檢視 此 API 提議問題 以檢視用法示例並瞭解此 API 的狀態。
擴充套件貢獻的 MCP 伺服器
擴充套件可以透過使用新的 提議的 API 以程式設計方式將伺服器貢獻給編輯器。這是使用者在設定或 mcp.json 中為每個伺服器硬編碼配置的替代方法。
如果您對這個 API 感興趣,請檢視 它的示例 和 API 提議問題 以瞭解此 API 的最新狀態。
MCP 工具註釋
VS Code 現在將顯示 MCP 伺服器的可讀名稱,這些伺服器的工具已配置了相應的 工具註釋。此外,在註釋中標記了 readOnlyHint: true 的工具將無需使用者確認即可執行。
可變行高
現在可以透過在 IModelDecorationOptions 型別中設定行高值,在 monaco 編輯器上定義可變行高。如果一行設定了兩個行高,則該行將使用兩者中的最大值。
請注意,為了簡化起見,目前行高僅設定在相應裝飾範圍的第一行。在以下螢幕錄製中,第 24 行和第 32 行的行高大於預設值。
此功能尚未提供給擴充套件,將在進一步測試後推出。
值得注意的修復
- 244939 - 個人 Microsoft 帳戶很快登出(幾分鐘到幾小時)
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @albertosantini (Alberto Santini)
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
拉取請求
對 vscode 的貢獻
- @ahojukka5 (Jukka Aho):更新 chatExecuteActions.ts PR #246494
- @alexweininger (Alex Weininger):fix: handle cancellation errors inside edit session identity provider PR #247450
- @andrewbranch (Andrew Branch):允許停用內建 TS/JS 擴充套件以支援 tsgo PR #246858
- @BABA983 (BABA):一個接受所有組合的命令 PR #225132
- @batsev:Git - 在建立之前驗證分支名稱 PR #245029
- @brthom (Ben Thomas):在測試資源管理器中修復測試項排序,以使用自然檔案順序 PR #246352
- @bytemain (Jiacheng)
- fix: 修正基於檔案的推薦的過濾邏輯 PR #245062
- refactor(nls): 使用 then 進行 JSON 解析 PR #247013
- @Cecil0o0 (hj):git:使 Letter/Text/Color 在語義上保持一致 PR #245889
- @eps1lon (Sebastian "Sebbie" Silbermann):弱化舊 JSX 轉換 PR #246738
- @futurist (James Yang):fix: runCommand 型別 PR #246198
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 重新新增可展開懸停 PR #246899
- [typescript-language-features] 預設啟用可展開懸停 PR #247343
- @guiserle (guiserle):config: 解析命令返回的變數 PR #246641
- @huntertran (Tuan Tran Van):在 git blame 懸停彈出視窗中,將提交描述的單換行符替換為雙換行符 PR #245779
- @johnscollins98 (John Collins):#245665 修復 task 提前退出,帶有空 promptString 輸入 PR #246834
- @KapitanOczywisty:修復 html derivative grammar 消耗 php 程式碼,修復 #237262 PR #245076
- @luantranminh (Tran Minh Luan):argv:更新
add-mcp的描述 PR #246473 - @manabu-nakamura (nakamura)
- 關閉按鈕的工具提示文字已國際化 PR #245190
- 關閉按鈕的工具提示文字已國際化 (2) PR #245333
- 規範省略號 PR #246447
- @mdanish-kh (Muhammad Danish):更新 WinGet 配置檔案位置和擴充套件 PR #242241
- @mkhuzaima (Muhammad Khuzaima Umair):設定拖動目錄時的 DragData PR #243656
- @mortalYoung (野迂迂):fix: 移除不必要的 async 宣告 PR #247213
- @nknguyenhc (Nguyen):HTML 指令碼中內建符號的轉到定義 PR #244074
- @noahbowman (Noah):#188711 - 流程圖可見大綱 PR #247650
- @pedrofrazaopacheco (Pedro Frazão Pacheco):修復 microsoft/vscode#240654:避免在 JSON schema URL 中編碼保留字元 PR #244934
- @pisv (Vladimir Piskarev):Merge Editor:修復
LineRange.join(other)中的一個錯誤 PR #227585 - @RedCMD (RedCMD)
- 修復 template.expression 括號 #190564 PR #245786
- YAML 在字串中自動觸發程式碼補全 #239679 PR #246939
- @s-rigaud (Samuel Rigaud)
- test: 修復拼寫錯誤 PR #247259
- fix: vscode-dts 拼寫錯誤 PR #247263
- fix: toggleApplicationScope 拼寫錯誤 PR #247264
- @sfaut:修復 PHP f* 檔案函式簽名 PR #246964
- @thegecko (Rob Moran):新增反彙編檢視上下文選單 PR #212500
- @theskcd:[vscode] 來自 #file 的裝飾效果更好,並且在新行上不會中斷 PR #231948
- @tjcork (tjcork):使用引數擴充套件來獲取 shellIntegration-bash.sh 中的 envVarCollections 的環境 PR #245264
- @tmm1 (Aman Karmani):tsb:小的構建改進 PR #237450
- @Victuracor (Victuracor):修復 extensions/typescript-language-features/package.nls.json 中的拼寫錯誤 PR #245713
- @whistlegraph (jeffrey):修復問題 #662(啟用 Pointer Lock Web API)PR #210875
- @wolfgang42 (Wolfgang Faust):feat: markdown-basics snippets:引用所有行 PR #246871
- @zobo (Damjan Cvetko):在變數替換的物件中也替換鍵 PR #245989
對 vscode-css-languageservice 的貢獻
- @AlterNT (NTPS):支援
@scopePR #434 - @rviscomi (Rick Viscomi):將 Baseline 狀態新增到懸停卡片 PR #428
對 vscode-js-debug 的貢獻
- @mikaelwaltersson (Mikael Waltersson):修復 repl/watch 中的“浮動”WASM 變數的展開 + 當 WASM 記憶體是 SharedArrayBuffer 時的 readMemory PR #2199
對 vscode-json-languageservice 的貢獻
- @fengzilong (MO):feat: 使 newJSONDocument 和 JSONDocument 保持一致 PR #259
對 vscode-jupyter 的貢獻
- @alexfanqi (Alex Fan):將 excludeUserSitePackages 的範圍更改為 window PR #16377
- @realDuang (Duang):fix: 修復環境服務中的 Python 程式碼轉義路徑 PR #16518
對 vscode-mypy 的貢獻
- @tdscheper (Tommy Scheper):當 cwd 配置選項是 ${nearestConfig} 時,查詢 mypy.ini、.mypy.ini、pyproject.toml、setup.cfg PR #357
對 vscode-notebook-renderers 的貢獻
- @marthacryan (Martha Cryan):將 plotly.js 版本更新到 3.0.0 PR #230
對 vscode-pull-request-github 的貢獻
- @kabel (Kevin Abel):修復 git 配置失敗時的合併電子郵件確認 PR #6797
- @timrogers (Tim Rogers):當
copilot-swe-agent是評論的作者時,以 Copilot 身份渲染 PR #6794
對 vscode-python-debugger 的貢獻
- @rchiodo (Rich Chiodo):允許在 attach 配置中 autoReload PR #676
對 vscode-python-environments 的貢獻
- @InSyncWithFoo (InSync):fix: 澄清
showSkipOption也適用於解除安裝 PR #288
對 language-server-protocol 的貢獻
- @hippietrail (Andrew Dunbar):多個語法修復 PR #2123
- @imbant (imbant):在客戶端請求之前確保文件狀態同步 PR #2017
- @ocfbnj:為 Thrift 新增 thrift-ls PR #2128
- @rtorralba (rtorralba)
對 monaco-editor 的貢獻
- @RoccoC (Rocco Cataldo):更新 webpack 外掛以支援模組工作 PR #4742