2025 年 4 月 (版本 1.100)
釋出日期:2025 年 5 月 8 日
更新:在 VS Code 穩定版中預設啟用下一條編輯建議 (NES)(更多...)。
更新 1.100.1:此更新解決了這些安全問題。
更新 1.100.2:此更新解決了這些問題。
更新 1.100.3:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用版 Intel Apple 晶片 | 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 設定列出了包含指令檔案的資料夾。
您可以手動將指令附加到特定的聊天請求,或者它們可以自動新增
-
要手動新增它們,請使用“聊天”檢視中的“新增上下文”按鈕,然後選擇“指令...”。或者,使用命令面板中的“聊天:附加指令...”命令。這會彈出一個選擇器,讓您可以選擇現有指令檔案或建立新指令檔案進行附加。
-
要自動將指令新增到提示中,請在指令檔案中新增
applyTo
Front Matter 標頭,以指示指令適用於哪些檔案。如果聊天請求包含與給定全域性模式匹配的檔案,則會自動附加指令檔案。以下示例提供了 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,可以在任何開啟文件的語言模式對話方塊中配置(分別為“提示”和“指令”)。例如,這允許在將未命名文件儲存為磁碟檔案之前,將其用作臨時提示檔案。
- 我們將“聊天:使用提示”命令重新命名為“聊天:執行提示”。此外,該命令現在立即執行選定的提示,而不是像以前那樣將其作為聊天上下文附加。
- 這兩種檔案型別現在還支援其標頭中的
description
元資料,為簡短且使用者友好的提示摘要提供了常用位置。將來,此標頭計劃與applyTo
標頭一起用作確定是否需要將檔案自動包含在聊天請求中的規則(例如,description: 'Code style rules for front-end components written in TypeScript.'
)
更快地編輯代理模式
我們已在代理模式中實現了對 OpenAI 的應用補丁編輯格式(GPT 4.1 和 o4-mini)和 Anthropic 的替換字串工具(Claude Sonnet 3.7 和 3.5)的支援。這意味著您可以受益於顯著更快的編輯,尤其是在大型檔案中。
OpenAI 模型的更新在 VS Code Insiders 中預設開啟,並逐漸向 Stable 版推出。Anthropic 更新在 Stable 版和 Insiders 版中都適用於所有使用者。
聊天中的基礎模型
我們正在逐步將 GPT-4.1 作為 VS Code 聊天中的預設基礎模型推出。您可以隨時使用聊天檢視中的模型切換器切換到其他模型。
使用 #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 問題和拉取請求的工具。瞭解有關在 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.openAgent
workbench.action.chat.openEdit
workbench.action.chat.openAsk
代理模式編輯的自動修復診斷
設定:github.copilot.chat.agent.autoFix
如果代理模式中的檔案編輯引入了新錯誤,代理模式現在可以檢測到它們,並自動建議後續編輯。這意味著您不必傳送後續提示來要求代理模式修復任何錯誤。您可以使用github.copilot.chat.agent.autoFix 停用此行為。
代理模式下撤消和手動編輯的處理
以前,在代理模式會話期間進行手動編輯可能會使模型混淆。現在,代理會收到有關您的更改的提示,並且在編輯可能已更改的檔案之前,應在必要時重新讀取檔案。
會話摘要和提示快取
我們對代理模式提示的構建方式進行了一些更改,以最佳化提示快取。提示快取是一種透過為提示維護穩定的字首來加快模型響應的方法。下一個請求能夠從該字首恢復,結果是每個請求都會更快一些。這在具有大上下文的重複請求系列中特別有效,就像您通常在代理模式中那樣。
當您的對話變得很長,或者您的上下文變得非常大時,您可能會在代理模式會話中看到“已總結對話歷史”訊息
我們不是將整個對話作為 FIFO(破壞快取),而是將迄今為止的對話壓縮為最重要資訊和任務當前狀態的摘要。這保持了提示字首的穩定,並使您的響應速度更快。
MCP 對可流式 HTTP 的支援
此版本增加了對模型上下文協議伺服器的新可流式 HTTP 傳輸的支援。可流式 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 元素向聊天提問。您現在可以使用內建的簡單瀏覽器將 UI 元素作為上下文附加到聊天中。
透過內建的簡單瀏覽器開啟任何本地託管站點後(使用“簡單瀏覽器:顯示”命令啟動),現在會顯示一個新工具欄,您可以在其中選擇“開始”以選擇您想要的站點中的任何元素。這會附加所選元素的螢幕截圖以及元素的 HTML 和 CSS。
配置附加到聊天的內容:
- chat.sendElementsToChat.attachCSS:啟用或停用附加關聯的 CSS
- chat.sendElementsToChat.attachImages:啟用或停用附加所選元素的螢幕截圖
此實驗性功能預設對所有簡單瀏覽器啟用,但可以使用chat.sendElementsToChat.enabled 停用。
在代理模式下建立並啟動任務(實驗性)
設定:github.copilot.chat.newWorkspaceCreation.enabled
在之前的版本中,我們引入了github.copilot.chat.newWorkspaceCreation.enabled(實驗性)設定,以啟用代理模式下的工作區建立。
現在,在此建立流程結束時,系統會提示您建立並執行任務以啟動您的應用程式或專案。這簡化了專案啟動過程並實現了任務的輕鬆重用。
輔助功能
合併編輯器改進
合併編輯器現在更容易訪問。要了解可用操作,請在合併編輯器中開啟輔助功能幫助對話方塊(⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1))。主要操作包括 Merge Editor: Complete Merge
(⌘Enter (Windows, Linux Ctrl+Enter))和 Toggle Between Merge Editor Inputs
(⇧⌘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 問題或文件,其中包含有關安全問題的詳細資訊,幫助您更好地理解潛在風險。
防止在 VS Code 穩定版中安裝 Copilot Chat 預釋出版本
VS Code 現在阻止在 VS Code 穩定版中安裝 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 檔案中新增缺失的 import 語句。透過設定github.copilot.nextEditSuggestions.fixes 啟用此功能。我們計劃在未來的更新中透過支援其他語言的 import 進一步增強此功能。
下一條編輯建議 (NES) 預設開啟
下一條編輯建議現在在 VS Code Insiders 中預設開啟,我們正在逐步將其推廣到 Stable 版本。
在 HTML 或 Markdown 中生成替代文字
您現在可以在 HTML 和 Markdown 檔案中生成或更新現有替代文字。導航到包含嵌入影像的任何行,然後透過 ⌘. (Windows, Linux Ctrl+.) 或選擇燈泡圖示來觸發快速修復。
Notebook
查詢和替換歷史記錄永續性
筆記本查詢控制元件現在支援查詢和替換輸入欄位的持久歷史記錄。這在重新載入後仍然存在,並由設定editor.find.history和editor.find.replaceHistory控制。
拖放單元格輸出到聊天
為了增強對聊天中單元格輸出使用的現有支援,現在可以將輸出拖動到聊天檢視中,以獲得無縫的附件體驗。目前,僅支援影像和文字輸出。具有影像 MIME 型別的輸出可以直接拖動,但是為了避免與文字選擇衝突,文字輸出需要按住 alt 修飾鍵才能啟用拖動。我們正在探索未來版本中的 UX 改進。
代理模式的筆記本工具
執行單元格
聊天現在擁有一個 LLM 工具來執行筆記本單元格,這允許代理根據單元格執行結果執行更新,或者在構建筆記本時執行自己的資料探索。
獲取核心狀態
代理可以使用核心狀態工具找出當前核心會話中已執行的單元格,並讀取活動變數。
列出/安裝包
Jupyter 擴充套件提供用於在用作筆記本核心的環境中列出和安裝包的工具。如果可用,該操作將委託給 Python 環境擴充套件;否則,它會嘗試使用 pip 包管理器。
原始碼管理
暫存更改的快速差異裝飾
為了解決長期以來的功能請求,本里程碑我們為暫存更改添加了快速差異編輯器裝飾。現在,您可以直接從編輯器中檢視暫存更改,而無需開啟原始碼管理檢視。
您可以使用以下主題標記自定義暫存更改快速差異裝飾的顏色:editorGutter.addedSecondaryBackground
、editorGutter.modifiedSecondaryBackground
、editorGutter.deletedSecondaryBackground
。
如果您不想看到暫存更改的快速差異裝飾,可以使用編輯器 gutter 上下文選單中提供的“差異裝飾”子選單將其隱藏。
除錯
反彙編檢視上下文選單
感謝社群的貢獻,我們現在在反彙編檢視中擁有了上下文選單。
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) 作為功能齊全的開發環境。
開發容器指令檔案
開發容器功能和映象現在包含描述其工具和配置的指令檔案。VS Code 聊天可以自動使用此上下文,從而提高開發過程中建議的相關性和準確性。
對擴充套件的貢獻
Python
分支覆蓋率支援
測試資源管理器現在支援 Python 的分支覆蓋率!請注意,您的 coveragepy
版本必須 >= 7.7 才能使用此功能。您可以透過執行 pip install coverage==7.7
升級 coverage。
Python 環境快速建立命令
Python Environments 擴充套件已添加了對快速建立的支援,使環境建立過程更加無縫。快速建立透過檢測您機器上最新的 Python 版本來建立虛擬環境並一鍵安裝任何工作區依賴項,從而最大程度地減少您所需的輸入。這將為基於 venv 的環境在您的工作區中建立 .venv
,併為基於 conda 的環境建立 .conda
。您可以透過命令面板中的“Python:建立環境”命令訪問快速建立。
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 + . 選擇“使用 Copilot 轉換為 f-string”或“使用 Copilot 轉換為 format() 呼叫”程式碼操作。
此體驗透過以下設定啟用
"python.analysis.aiCodeActions": {"convertFormatString": true}
GitHub 拉取請求和議題
GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:
- 在聊天中詢問有關活動拉取請求的問題,例如“解決 #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):修復:處理編輯會話身份提供程式內的取消錯誤 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)
- 修復:糾正基於檔案的推薦的過濾邏輯 PR #245062
- 重構 (nls):使用 then 進行 JSON 解析 PR #247013
- @Cecil0o0 (hj):git:使字母/文字/顏色語義一致 PR #245889
- @eps1lon (Sebastian "Sebbie" Silbermann):淡化舊的 JSX 轉換 PR #246738
- @futurist (James Yang):修復:runCommand 型別 PR #246198
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 重新新增可展開懸停 PR #246899
- [typescript-language-features] 預設啟用可展開懸停 PR #247343
- @guiserle (guiserle):配置:解析命令返回的變數 PR #246641
- @huntertran (Tuan Tran Van):在 git blame 懸停彈出視窗中用雙換行符替換提交描述中的單換行符 PR #245779
- @johnscollins98 (John Collins):#245665 修復空 promptString 輸入導致任務提前退出 PR #246834
- @KapitanOczywisty:修復 html 派生語法消耗 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 (野迂迂):修復:刪除不必要的非同步宣告 PR #247213
- @nknguyenhc (Nguyen):HTML 指令碼中內建符號的轉到定義 PR #244074
- @noahbowman (Noah):#188711 - 演練焦點可見輪廓 PR #247650
- @pedrofrazaopacheco (Pedro Frazão Pacheco):修復 microsoft/vscode#240654:避免在 JSON 模式 URL 中編碼保留字元 PR #244934
- @pisv (Vladimir Piskarev):合併編輯器:修復
LineRange.join(other)
中的錯誤 PR #227585 - @RedCMD (RedCMD)
- 修復 template.expression 括號 #190564 PR #245786
- YAML 字串中自動觸發程式碼補全 #239679 PR #246939
- @s-rigaud (Samuel Rigaud)
- 測試:修復拼寫錯誤 PR #247259
- 修復:vscode-dts 拼寫錯誤 PR #247263
- 修復: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 程式碼片段:引用所有行 PR #246871
- @zobo (Damjan Cvetko):在變數替換中也替換物件中的鍵 PR #245989
對 vscode-css-languageservice
的貢獻
- @AlterNT (NTPS):支援
@scope
PR #434 - @rviscomi (Rick Viscomi):向懸停卡新增基線狀態 PR #428
對 vscode-js-debug
的貢獻
- @mikaelwaltersson (Mikael Waltersson):修復 WASM 記憶體為 SharedArrayBuffer 時 repl/watch + readMemory 中“浮動”WASM 變數的擴充套件 PR #2199
對 vscode-json-languageservice
的貢獻
- @fengzilong (MO):feat:使 newJSONDocument 和 JSONDocument 保持一致 PR #259
對 vscode-jupyter
的貢獻
- @alexfanqi (Alex Fan):將 excludeUserSitePackages 的範圍更改為 window PR #16377
- @realDuang (Duang):修復:修復環境服務中 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 config 失敗時的合併電子郵件確認 PR #6797
- @timrogers (Tim Rogers):當
copilot-swe-agent
是評論作者時,使用 Copilot 身份渲染 PR #6794
對 vscode-python-debugger
的貢獻
- @rchiodo (Rich Chiodo):允許在附加配置中 autoReload PR #676
對 vscode-python-environments
的貢獻
- @InSyncWithFoo (InSync):修復:澄清
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 外掛以支援模組 worker PR #4742