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 計劃開始。
自動模型將在 Claude Sonnet 4、GPT-5、GPT-5 mini 和 GPT-4.1 以及 Gemini Pro 2.5 之間進行選擇,除非您的組織已停用對這些模型的訪問。使用自動模型選擇時,VS Code 會根據所選模型使用可變模型乘數。如果您是付費使用者,自動模型將應用 10% 的請求折扣。
您可以透過將滑鼠懸停在聊天檢視中的響應上來檢視所選模型和模型乘數。
瞭解有關 VS Code 中自動模型選擇的更多資訊。
確認敏感檔案的編輯
設定:chat.tools.edits.autoApprove
在代理模式下,代理可以自主編輯工作區中的檔案。這可能包括意外或惡意修改或刪除重要檔案(例如配置檔案),這可能會對您的機器產生直接的負面副作用。瞭解有關使用 AI 驅動的開發工具時的安全注意事項的更多資訊。
在此版本中,代理現在會在編輯某些檔案之前明確請求使用者確認。這在使用代理模式時提供了額外的安全層。透過 chat.tools.edits.autoApprove 設定,您可以配置檔案模式以指示哪些檔案需要確認。
預設情況下,通用系統資料夾、點檔案和工作區外的檔案將需要確認。
支援 AGENTS.md 檔案 (實驗性)
AGENTS.md
檔案允許您向代理提供上下文和指令。從這個版本開始,當您的工作區根目錄中有一個 AGENTS.md
檔案時,它會自動作為聊天請求的上下文。這對於使用多個 AI 代理的團隊很有用。
預設情況下啟用對 AGENTS.md
檔案的支援,並且可以使用 chat.useAgentsMdFile 設定進行控制。有關 AGENTS.md
檔案的更多資訊,請參閱 https://agents.md/。
瞭解有關根據您的實踐和團隊工作流自定義 VS Code 中的聊天的更多資訊。
改進的已更改檔案體驗
在此迭代中,已更改檔案列表已透過多項生活質量功能進行了重新設計。這些更改應能改善您在代理模式下的體驗!
-
預設情況下,已更改檔案列表現在是摺疊的,以為聊天對話留出更多空間。摺疊時,您仍然可以看到已更改檔案數以及已新增或刪除的行數。
-
當您保留或接受建議的更改時,該檔案將從已更改檔案列表中刪除。
-
當您使用“原始碼管理”檢視暫存或提交檔案時,這將自動接受建議的檔案更改。
-
列表中的每個專案現在都顯示每個檔案的更改(新增或刪除的行)。
在提示檔案中使用自定義聊天模式
提示檔案是 Markdown 檔案,您可以在其中編寫可重用的聊天提示。要執行提示檔案,請在聊天輸入欄位中鍵入 /
,然後鍵入提示檔名,或者在編輯器中開啟提示檔案時使用“播放”按鈕。
您可以指定用於執行提示檔案的聊天模式。以前,您只能在提示檔案中使用內建聊天模式,如 agent
、edit
或 ask
。現在,您還可以在提示檔案中引用自定義聊天模式。
瞭解有關使用提示檔案、聊天模式和自定義指令自定義 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 有幾個內建工具集,如 edit
或 search
。
工具選擇器現在顯示每個工具集中的工具,您可以單獨啟用或停用每個工具。您可以透過“聊天”檢視中的“配置工具...
”按鈕訪問工具選擇器。
配置聊天中使用的字型
設定:chat.fontFamily, chat.fontSize
VS Code 允許您選擇在編輯器中使用的字型,但“聊天”檢視缺乏該可配置性。我們現在添加了兩個新設定,用於配置聊天訊息的字體系列 (chat.fontFamily) 和字型大小 (chat.fontSize)。
注意:列表內容目前尚未遵循這些設定,但我們正在努力在即將釋出的版本中解決此問題。
與編碼代理協作 (實驗性)
透過編碼代理,您可以將任務委託給 AI 代理在後臺進行處理。您可以讓多個此類代理並行工作。我們正在不斷改進聊天會話體驗,以幫助您更有效地與編碼代理協作。
聊天會話檢視
設定:chat.agentSessionsViewLocation
“聊天會話”檢視提供了一個統一檢視,用於管理本地和貢獻的聊天會話。我們顯著增強了“聊天會話”檢視,您現在可以在其中執行所有關鍵操作,從而更輕鬆地迭代和完成您的編碼任務。
- 狀態列跟蹤:直接從狀態列監視多個編碼代理的進度。
- 多會話支援:從同一檢視啟動和管理多個聊天會話。
- 擴充套件上下文選單:訪問更多操作以高效地與您的編碼代理互動。
- 豐富描述:啟用豐富描述後,每個列表條目現在都包含詳細上下文,以幫助您快速找到相關資訊。
GitHub 編碼代理整合
我們改進了 GitHub 編碼代理與聊天會話的整合,以提供更流暢、更直觀的體驗。
- 聊天編輯器操作:直接從聊天編輯器輕鬆檢視或應用程式碼更改,並簽出拉取請求。
- 無縫過渡:以改進的連續性從本地聊天切換到 GitHub 代理任務。
- 更好的會話渲染:卡片和工具渲染的各種改進,以提供更好的視覺清晰度。
- 效能提升:更快的會話載入,以獲得更靈敏的體驗。
委託給編碼代理
我們繼續擴充套件將 VS Code 中的本地任務委託給 Copilot 編碼代理的方式
-
使用編碼代理修復待辦事項
以
TODO
開頭的註釋現在顯示一個“程式碼操作”,可以快速啟動編碼代理會話。 -
從聊天中委託 (githubPullRequests.codingAgent.uiIntegration)
當您在聊天中執行“委託給編碼代理”操作時,現在會將包括檔案引用在內的其他上下文轉發到 GitHub 編碼代理。這使您能夠在將任務移交給編碼代理完成之前精確規劃任務。將開啟一個新的聊天編輯器,即時顯示編碼代理的進度。
主題:Sharp Solarized (在 vscode.dev 上預覽)
使用 Google 社交登入
現在,使用 Google 帳戶登入或註冊 GitHub Copilot 的選項已正式推出,並將推廣給 VS Code 中的所有使用者。
您可以在 GitHub 部落格公告文章中找到有關此內容的更多資訊。
終端自動批准
設定:chat.tools.terminal.enableAutoApprove
自動批准終端命令可以大大簡化代理互動,但它也伴隨著安全風險。此版本引入了對終端自動批准的幾項改進,以增強可用性和安全性。
-
您現在可以使用 chat.tools.terminal.enableAutoApprove 設定啟用或停用終端自動批准。此設定也可以由組織透過裝置管理進行設定。
-
在實際啟用終端自動批准之前,您需要透過聊天檢視中的下拉選單明確選擇啟用。
-
從“聊天”檢視中,您可以方便地為正在執行的命令新增自動批准規則,或開啟配置設定
主題:Sapphire (在 vscode.dev 上預覽)
這為命令提供了一些基本支援,可以在更合適的地方建議子命令,例如建議
npm test
規則而不是npm
。 -
為了提高自動批准命令的透明度,我們在“聊天”檢視中顯示已應用的規則,還使您能夠配置該規則
-
我們改進了預設設定以提供安全性並減少干擾。您可以透過開啟
settings.json
檔案,然後輸入chat.tools.terminal.autoApprove
並透過 Tab 鍵完成它來檢視該設定的預設值。 -
包含反斜槓或正斜槓字元的非正則表示式規則現在被視為路徑,不僅批准該精確路徑,還允許兩種斜槓型別和
./
字首。使用 PowerShell 時,所有規則都強制為不區分大小寫。 -
當代理模式想要使用
curl
、wget
、Invoke-RestMethod
或Invoke-WebRequest
從網際網路拉取內容時,我們現在會顯示警告,因為這是提示注入攻擊的常見向量。
在我們的文件中瞭解有關終端自動批准的更多資訊。
全域性自動批准
自 v1.99 以來,全域性自動批准一直是實驗性設定。我們觀察到使用者在啟用此設定時沒有深入考慮後果。此外,一些使用者認為啟用 chat.tools.autoApprove 設定是啟用終端自動批准的先決條件,但事實並非如此。
為了消除這些誤解並進一步保護我們的使用者,現在首次嘗試使用全域性自動批准時會出現一個令人毛骨悚然的警告,以便使用者可以輕鬆退出並停用該設定
該設定也已更改為更清晰的 chat.tools.global.autoApprove,沒有任何自動遷移,因此所有使用者(意外或有意)都需要再次明確設定它。
預設啟用數學渲染
聊天響應中的數學方程渲染現在已普遍可用並預設啟用。您可以使用 chat.math.enabled 設定停用此功能。
此功能由 KaTeX 提供支援,並支援行內和塊級數學方程。行內數學方程可以透過用單個美元符號 ($...$
) 包裹標記來編寫,而塊級數學方程使用兩個美元符號 ($$...$$
)。
聊天檢視預設可見性
設定:workbench.secondarySideBar.defaultVisibility
當您首次開啟工作區時,帶有“聊天”檢視的“輔助側邊欄”預設可見,邀請您立即提出問題或開始代理會話。您可以使用 workbench.secondarySideBar.defaultVisibility 設定或透過“聊天”檢視本身的下拉選單配置此行為
改進的任務支援
-
輸入請求檢測
當您在代理模式下執行任務或終端命令時,代理現在會檢測程序何時請求使用者輸入,並提示您在聊天中響應。如果您在提示出現時在終端中鍵入,提示將自動隱藏。如果提供了選項和描述(例如
[Y] Yes [N] No
),這些選項和描述將顯示在確認提示中。 -
帶有問題匹配器的任務的錯誤檢測
對於使用問題匹配器的任務,代理現在會根據問題匹配器結果收集並顯示錯誤,而不是依賴語言模型來評估輸出。問題以下拉選單的形式顯示在聊天進度訊息中,允許您直接導航到問題位置。這確保僅在與當前任務執行相關時才報告錯誤。
-
複合任務支援
代理模式現在支援運行復合任務。當您運行復合任務時,代理會顯示每個依賴任務的進度和輸出,包括任何使用者輸入提示。這使得更復雜的工作流和多步任務執行的更好可見性成為可能。
在下面的示例中,運行了 VS Code - Build 任務。評估每個依賴任務的輸出,並在響應和進度訊息下拉選單中向用戶顯示問題。
改進的終端支援
-
將更多終端工具移至核心
與上個版本中的
runInTerminal
工具一樣,terminalSelection
和terminalLastCommand
工具已從擴充套件移至核心,這應該會提供一般的可靠性改進。 -
可配置的終端工具 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,用於停用和隱藏 GitHub Copilot 提供的內建 AI 功能,包括聊天、程式碼完成和下一步編輯建議。
該設定相對於我們以前的解決方案具有以下優勢:
- 除非您明確停用,否則會在您的裝置之間同步
- 如果安裝了 Copilot 擴充套件,則停用它們
- 按配置檔案或按工作區配置設定,可以輕鬆選擇性地停用 AI 功能
“隱藏 AI 功能”命令已重新命名以反映此更改,現在將在設定編輯器中顯示此新設定。
注意:以前隱藏 AI 功能的使用者將繼續看到 AI 功能被隱藏。如果您想在裝置之間同步您的選擇,可以額外更新該設定。
MCP
支援伺服器指令
VS Code 現在會讀取 MCP 伺服器指令並將其包含在其基本提示中。
預設停用 MCP 自動發現
VS Code 支援自動發現安裝在其他應用程式(如 Claude Code)中的 MCP 伺服器。隨著 VS Code 中 MCP 支援的成熟,自動發現現在預設停用,但您可以使用 chat.mcp.discovery.enabled 設定重新啟用它。
啟用 MCP
以前控制 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 上的視窗邊框顏色支援
我們很高興在 Windows 上添加了一個新設定 window.border,使您能夠在 VS Code 視窗周圍顯示彩色邊框。該設定具有以下選項:
default
:遵循顏色主題設定,回退到 Windows 設定system
:僅遵循 Windows 設定(視窗標題強調色)off
:停用邊框顏色<color>
:以 Hex、RGB、RGBA、HSL、HSLA 格式表示的特定顏色
您可以按工作區配置顏色,從而更容易區分哪個視窗中打開了哪個工作區。
當您將 window.border 配置為 default
時,主題能夠使用 window.activeBorder
和 window.inactiveBorder
顏色鍵為活動和非活動視窗設定邊框顏色。您可以從 workbench.colorCustomizations 設定進一步覆蓋這些顏色。
管理擴充套件帳戶首選項
我們已在命令面板中添加了“帳戶:管理擴充套件帳戶首選項”命令。呼叫時,它會顯示一個有權訪問身份驗證帳戶的擴充套件列表,並允許您更改這些擴充套件使用的帳戶。您甚至可以直接從列表中登入新帳戶。
這基於我們一年前新增的帳戶管理功能。
編輯器選項卡索引
設定:workbench.editor.showTabIndex
您現在可以在選項卡標籤中渲染編輯器選項卡的索引。當您開啟許多選項卡並希望使用鍵盤快捷鍵在它們之間快速導航時,這會很有幫助。使用 workbench.editor.showTabIndex 設定啟用此功能。
編輯器選項卡欄捲軸可見性
設定:workbench.editor.titleScrollbarVisibility
workbench.editor.titleScrollbarVisibility 允許您控制編輯器選項卡欄中的捲軸何時可見。預設值 auto
僅當選項卡溢位且滑鼠懸停在選項卡上時才顯示捲軸。您也可以將其設定為 visible
以在選項卡溢位時始終顯示捲軸,或設定為 hidden
以從不顯示它。
問題報告器改進
透過內建問題報告器報告 VS Code 或擴充套件中的問題時,您現在可以透過報告按鈕上的下拉選單選擇“在 GitHub 上建立”或“在 GitHub 上預覽”。如果按鈕沒有顯示下拉選單,並且只顯示“建立”或“預覽”,這很可能意味著您仍在載入擴充套件資料,或者需要確保您已登入具有正確範圍的 GitHub 帳戶。
Notebook
改進的 NES 建議 (實驗性)
設定:github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled
我們正在試驗改進筆記本的下一步編輯建議的質量。目前,語言模型在生成建議時可以訪問活動單元格的內容。啟用 github.copilot.chat.notebook.enhancedNextEditSuggestions.enabled 設定後,語言模型可以訪問整個筆記本,從而能夠生成更準確、更高質量的下一步編輯建議。
原始碼管理
預覽和遷移 Git 工作區更改
您現在可以透過右鍵單擊工作區檔案以在“原始碼管理更改”檢視中開啟上下文選單並選擇“與工作區比較”來預覽工作區檔案與當前工作區之間的差異。
審查更改後,您可以使用命令面板中的“遷移工作區更改...”命令 () 將工作區中的所有更改合併到當前工作區中。這使得跨多個工作區工作並有選擇地將更改帶回主儲存庫變得容易。
瞭解有關 VS Code 中的 Git 工作區的更多資訊。
終端
終端視窗發現性和完善
一個常見請求是允許在單獨的視窗中開啟終端。此功能已存在一年半左右,但其可發現性一直不佳。在此迭代中,我們為此功能添加了多個入口點
- 新命令 ⌃⇧⌥` (Windows、Linux Ctrl+Shift+Alt+`)。
- 空編輯器和選項卡井選單現在有一個“新終端”條目。
- 新終端下拉選單已重新排列,現在有一個“新終端視窗”條目。
- 頂級終端選單現在有一個“新終端視窗”條目。
我們還完善了這些新終端視窗在緊湊模式下開啟的體驗。如果您向視窗新增新選項卡,它會自動退出緊湊模式。
終端編輯器中的終端操作
終端檢視中可用的操作(新終端下拉選單、清除終端等)現在也適用於編輯器區域和終端視窗中的終端。
就像在終端檢視中一樣,您可以右鍵單擊操作區域將其移出溢位選單。
終端 IntelliSense 改進 (預覽)
此版本中終端 IntelliSense 將獲得多項改進
- 多項效能改進,這些改進不成比例地影響 Windows 上的體驗。
- 由於移除了在 Windows 上不可用的
sed
依賴項,git
完成現在在 Windows 上更可靠。 git
完成現在具有熟悉的圖示來表示提交、分支、遠端、儲藏和標籤。- 添加了大量完成規範:
adb
、basename
、bundle
、clear
、cut
、date
、dd
、diff
、dig
、dirname
、docker-compose
、docker
、dotnet
、env
、export
、fdisk
、fmt
、fold
、gh
、go
、htop
、id
、jq
、ln
、lsblk
、lsof
、mount
、nl
、od
、paste
、ping
、pkill
、readlink
、rsync
、ruby
、ruff
、sed
、seq
、shred
、sort
、source
、split
、stat
、su
、sudo
、tac
、tar
、tee
、time
、tr
、traceroute
、tree
、truncate
、uniq
、unzip
、wc
、where
、whereis
、which
、who
、xargs
、xxd
、yo
、zip
終端粘性滾動改進
我們現在預設啟用了終端粘性滾動。我們進行了一些改進以獲得更好的體驗,例如使用分頁器時改進了行為。終端粘性滾動現在與 editor.tabFocusMode 設定相容。
語言
JavaScript 和 TypeScript
審查使用情況資料後,我們決定刪除內建的 bower.json
IntelliSense。Bower 自 2017 年以來已棄用,我們的內建支援使用率低且未積極維護。
Bower 建議使用者遷移到 npm
或 yarn
。對 VS Code 中 Bower 的持續支援可以透過擴充套件提供。
Python
Python 環境擴充套件對 Pipenv 的支援
現在可以像在 Python 擴充套件中一樣發現和選擇 Pipenv 環境。此外,它們會出現在 Python 側邊欄的“環境管理器”檢視中,在那裡它們與其他環境型別一起分組和顯示。
配置環境變數注入
當啟用 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
傳遞給 TerminalOptions
和 ExtensionTerminalOptions
中的 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 規範中對此有一個提案。
輔助側邊欄中的檢視容器
擴充套件可以將檢視容器貢獻給 activitybar
和 panel
。我們現在也添加了對貢獻給 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 資料夾中找到。如果您有興趣試用它,入門非常容易
- 遵循貢獻指南以執行 Code OSS 的本地版本
- 然後,您可以使用我們微不足道的(目前)提示檔案,在代理模式下提出問題
/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 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
拉取請求
對 vscode
的貢獻
- @a-ariff (Ariff):文件:修復開發容器部分中的語法 PR #264162
- @alexkozy (Alexey)
- 修復:debugToolBar.ts 中的微小記憶體洩漏 PR #259349
- 修復:註冊 WorkerTextModelSyncClient PR #259442
- @alexvoedi (Alexander Vödisch):修復 linkedEditing 失步問題 PR #242993
- @bluedog13
- 修復 OAuth 重定向 URI 格式以符合 Microsoft 的 URL 標準 PR #260446
- 修復 OAuth2 資源引數符合 RFC 8707 PR #261815
- @CGNonofr (Loïc Mangeonjean):修復 firefox 上主題未與外部視窗同步的問題 PR #259839
- @Da-nie-elT:使用
Object.hasOwn()
更新 for-in 迴圈程式碼片段 PR #262682 - @DoctorKrolic:將
.slnx
新增到xml
語言擴充套件列表 PR #259049 - @DrSergei (Druzhkov Sergei):修復監視視窗中的記憶體引用處理 PR #259753
- @gjsjohnmurray (John Murray)
- 將
Go to Test
新增到覆蓋源快速選擇 PR #259600 - 設定測試覆蓋率工具欄快速選擇上的正確活動條目 PR #259639
- 測試結果:僅提供帶有 uri 的
Go to Test
(修復 #260443)PR #260508
- 將
- @hihry (Himanshu Ravindra Iwanati):修復:“恢復到上一個檢查點”懸停文字的大小寫 PR #259572
- @j3iiifn:提示檔名不能包含數字 PR #261704
- @joelverhagen (Joel Verhagen)
- 允許將規範包名稱和版本從安裝流程返回 PR #259081
- 支援 MCP 輔助安裝返回 server.json PR #259634
- 當 MCP 輔助安裝失敗時新增對幫助連結的支援 PR #260215
- @kenherring (Ken Herring):terminal.copyOnSelection 和 terminalFindWidget - 聚焦時不復制選擇 PR #254065
- @kplates (kplates):功能:從檔案搜尋中包含/排除檔案型別 PR #254285
- @LeftPhalange (Ethan Bovard):使用 DIFF_OPEN_SIDE 命令向命令面板新增“開啟活動差異側”選項 PR #261699
- @remcohaszing (Remco Haszing)
- 修復 MonacoEnvironment 的全域性訪問 PR #248075
- 在 Markdown 程式碼塊中突出顯示更多語言 PR #263550
- @rwoll (Ross Wollman)
- 等待代理迴圈在自動化中完成 PR #262370
- 支援自動化中的模型切換 PR #262420
- 修復:在 chat.open 命令中解析命令 PR #263458
workbench.action.chat.export
可選接受路徑 PR #263507- 修復:基於 promise 確認響應 PR #263894
- 回滾“修復:基於 promise 確認響應 (#_263894)” PR #264047
- @SimonSiefke (Simon Siefke)
- 修復:模式輸入小部件中的記憶體洩漏 PR #258152
- 修復:程式碼鏡頭控制器中的記憶體洩漏 PR #263136
- 修復:輔助功能訊號排程器中的記憶體洩漏 PR #263147
- 修復:QuickDiffModel 中的記憶體洩漏 PR #265007
- @swordjjjkkk (Truman):在 VSCode 中顯示選項卡索引 PR #209196
- @terreng (Terren):實現新選項以控制標題捲軸可見性 PR #246161
- @timheuer (Tim Heuer):為測試覆蓋率檢視新增全部摺疊功能 PR #258906
- @tmm1 (Aman Karmani)
- 修復一些拼寫錯誤 PR #259747
- terminalProcessManager:修復一次性洩漏 PR #261710
- storage:使用 upsert 語法最佳化 sqlite 插入 PR #261999
- @Tritlo (Matthías Páll Gissurarson):extHostMcp:接受 SSE/JSON 處理的 Content-Type 引數 PR #262787
- @ttttotem (ttttotem):修復“單擊前兩個字元之間時游標跳到第 0 列”的問題 PR #265131
- @JBlitzar (JBlitzar):連線到現有例項時使用
app.dock.hide
PR #259352
對 vscode-copilot-chat
的貢獻
- @24anisha:將 SKU 資料新增到 GitHub 遙測 PR #819
- @devm33 (Devraj Mehta):將 logprobs 欄位設為可選 PR #325
- @iann0036 (Ian Mckay):修復:“GitHub”的大小寫調整 PR #631
- @joelverhagen (Joel Verhagen)
- @jwangxx (James Wang)
- @lipido (Daniel Glez-Peña):改進代理測試覆蓋率 PR #614
- @m4dc4p:更新 getErrors (GetErrors / problems) 工具 PR #394
- @rwoll (Ross Wollman)
- @shaunm-msft (Shaun Miller)
- @sridharavinash (Avinash Sridhar):向對話模型訊息新增模式 PR #517
- @yemohyleyemohyle:向 MSFT 內部遙測新增訊息長度事件 PR #473
- @zhichli (Zhichao Li)
對 vscode-eslint
的貢獻
- @AmarMuric04 (AmarMuric)
- @davidtaylorhq (David Taylor):新增對 Ember 的 glimmer-ts/glimmer-js 格式的探測支援 PR #2069
對 vscode-extension-samples
的貢獻
- @Sepush (Artea):重構(lsp-embedded-request-forwarding):清理無用程式碼 PR #1196
對 vscode-js-debug
的貢獻
- @LittleLittleCloud (Xiaoyun Zhang):修復:在 constructInspectorWSUri 函式中處理 localhost 主機名 PR #2260
對 vscode-jupyter
的貢獻
- @hunterhogan (Hunter Hogan):package.nls.json 中的拼寫錯誤 PR #16890
- @krassowski (Michał Krassowski):新增對自定義 CDN URL 的支援 PR #16885
對 vscode-languageserver-node
的貢獻
- @MariaSolOs (Maria José Solano):向
textDocument/colorPresentation
新增功能資訊 PR #1660
對 vscode-markdown-languageservice
的貢獻
- @remcohaszing (Remco Haszing):更新 @vscode/l10n 到版本 0.0.18 PR #199
對 vscode-markdown-tm-grammar
的貢獻
- @c-schuhmann (Christian Schuhmann):新增對 SAP ABAP 語法的支援 PR #176
- @esmasth (Siddharth Sharma):新增對 YANG 程式碼圍欄的支援 PR #169
- @Morikko (Eric Masseran):在 markdown 程式碼塊中新增 restructuredtext 支援 PR #178
- @remcohaszing (Remco Haszing)
對 vscode-pull-request-github
的貢獻
- @krassowski (Michał Krassowski):修復拼寫錯誤“will be replace”→“will be replaced” PR #7540
對 vscode-python-environments
的貢獻
- @almarouk (Abdelrahman AL MAROUK):修復:透過路徑存在性檢查增強 conda 可執行檔案檢索 PR #677
- @sjsikora (Sam Sikora):錯誤修復:更嚴格的 pip list 包解析 PR #698
對 vscode-vsce
的貢獻
- @tgrospic (Tomislav Grospić):透過使用字串形式的 prepublish 命令避免 Node.js DEP0190 警告 PR #1188
對 debug-adapter-protocol
的貢獻
- @jborean93 (Jordan Borean):新增 Ansible 實現 PR #552
對 language-server-protocol
的貢獻
- @aartaka (Artyom Bologov):將 cl-lsp (Common Lisp) 新增到實現列表 PR #2179
- @anakin4747 (Anakin Childerhose):新增 kconfig-language-server PR #2177
- @asukaminato0721 (Asuka Minato):新增 ty PR #2175
- @MariaSolOs (Maria José Solano):向
textDocument/colorPresentation
新增功能資訊 PR #2173 - @notpeter (Peter Tripp)
- @ribru17 (Riley Bruins):修復 3.18 元模型版本 PR #2180
- @skewb1k:更正懶屬性描述中的語法和一致性 PR #2170
對 node-jsonc-parser
的貢獻
- @operagxsasha:文件:編輯了徽章測試的連結 PR #98
- @pimterry (Tim Perry):向解析器錯誤新增 startLine 和 startCharacter PR #102
對 python-environment-tools
的貢獻
- @almarouk (Abdelrahman AL MAROUK):修復 conda env 跟蹤訊息 PR #241
我們非常感謝大家在新功能準備就緒後立即嘗試,因此請經常回來檢視並瞭解最新功能。
如果您想閱讀以前的 VS Code 版本的釋出說明,請訪問 code.visualstudio.com 上的更新。