2025 年 8 月 (v1.104)
釋出日期:2025 年 9 月 11 日
更新 1.104.1:此更新解決了這些 問題。
更新 1.104.2:此更新解決了這些 問題。
更新 1.104.3:此更新解決了這些 問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Silicon | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2025 年 8 月版。此版本包含許多更新,希望您會喜歡,其中一些主要亮點包括:
-
模型靈活性
-
安全性
-
生產力
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
Insiders:想盡快嘗試新功能?
您可以下載每晚的 Insiders 構建版本,並儘快嘗試最新更新。
下載 Insiders
聊天
自動模型選擇 (預覽)
在本期更新中,我們引入了聊天中的自動模型選擇。當您在模型選擇器中選擇 **自動** 模型時,VS Code 會自動選擇一個模型,以確保您獲得最佳效能並減少速率限制。
自動模型選擇目前處於預覽階段,我們將在未來幾周內逐步向 VS Code 中的所有 GitHub Copilot 使用者推出,首先是個人 Copilot 計劃。

自動模型將在 Claude Sonnet 4、GPT-5、GPT-5 mini 和 GPT-4.1 之間進行選擇,除非您的組織已停用對這些模型的訪問。使用自動模型選擇時,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
以
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] 是 [N] 否),這些將在確認提示中顯示。 -
帶問題匹配器的任務的錯誤檢測
對於使用問題匹配器的任務,代理現在會根據問題匹配器結果收集和顯示錯誤,而不是依賴語言模型來評估輸出。問題將顯示在聊天進度訊息內的下拉選單中,允許您直接導航到問題位置。這可確保僅在與當前任務執行相關時才報告錯誤。
-
複合任務支援
代理模式現在支援運行復合任務。當您運行復合任務時,代理會顯示每個依賴任務的進度和輸出,包括使用者輸入的任何提示。這使得更復雜的工作流程和多步任務執行的可視性更好。
在下面的示例中,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>:指定顏色的十六進位制、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 上的體驗。
- 由於刪除了 `sed` 依賴項(在 Windows 上不可用),`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 Environments 擴充套件對 Pipenv 的支援
現在可以像在 Python 擴充套件中一樣發現和選擇 Pipenv 環境。此外,它們會出現在 Python 側邊欄的“環境管理器”檢視中,在那裡它們會與您的其他環境型別一起分組和顯示。

配置環境變數注入
一項新設定 python.useEnvFile 控制當啟用了 Python Environments 擴充套件時,是否將 `.env` 檔案和 python.envFile 設定中的環境變數注入到終端中。
Python 環境擴充套件改進
The Python Environments Extension 作為向穩定使用者受控推出的部分,繼續獲得錯誤修復和改進。要在推出期間使用 Python Environments 擴充套件,請確保已安裝該擴充套件,並在 VS Code `settings.json` 檔案中新增以下內容:`"python.useEnvironmentsExtension": true`。
Pylance 的 AI 驅動的懸停摘要(實驗性)
現在,當使用最新預覽版本的 Pylance 時,Python 有一項新的實驗性 AI 懸停摘要功能。啟用 python.analysis.aiHoverSummaries 設定後,您可以即時獲得沒有文件的符號的有用摘要。這使得理解不熟悉的程式碼更加容易,並在探索 Python 專案時提高生產力。AI 懸停摘要目前適用於 GitHub Copilot Pro、Pro+ 和 Enterprise 使用者。
我們期待很快將此實驗性體驗帶到穩定版擴充套件。
執行程式碼片段工具
Pylance 的程式碼片段執行工具使 GitHub Copilot 能夠完全在記憶體中執行 Python 程式碼片段,而不是依賴於 `python -c "code"` 等終端命令或建立要執行的臨時檔案。它會自動使用為您的工作區配置的正確 Python 直譯器,並消除在終端執行期間有時會出現的普通 shell 轉義和引號問題。
一個突出的好處是它提供的乾淨、格式良好的輸出,stdout 和 stderr 交錯顯示以保持清晰。這使得它在使用 GitHub Copilot 的代理模式測試小程式碼塊、執行快速指令碼、驗證 Python 表示式或檢查匯入時非常有用,所有這些都在您的工作區上下文中完成。
要嘗試一下,請確保使用 Pylance 擴充套件的最新預覽版本。然後,您可以透過“聊天”檢視中的“新增上下文...”>“工具”選單選擇 `pylancerunCodeSnippet` 工具。
注意:與所有 AI 生成的程式碼一樣,在允許該工具執行之前,請務必檢查生成的程式碼。審閱程式碼的邏輯和意圖可確保其符合您專案的目標並保持安全和正確性。
Pylance IntelliSense 已在所有 Python 文件中啟用
`python.analysis.supportAllPythonDocuments` 設定已從 Pylance 的最新預覽版本中刪除,現在 Pylance IntelliSense 預設在所有 Python 文件中啟用,包括終端和 diff 檢視。這意味著您可以在 VS Code 中處理 Python 的任何地方獲得豐富的程式碼補全、懸停和程式碼導航。
啟用鉤子
Python 啟用鉤子現在可以從 shell 整合指令碼執行,而無需 Python 環境擴充套件修改您的 shell 配置檔案。當 python-envs.terminal.autoActivationType 設定為 `shellStartup` 時,這提供了更可靠的終端啟用,並且重要的是,確保 Copilot 終端按預期啟用。
對擴充套件的貢獻
GitHub 拉取請求
GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:
- 側邊欄內容在窄視窗上摺疊
- 拉取請求和問題 Webview 在重新載入後恢復
- 新的“TODO”程式碼操作可讓您直接委託給 Copilot 編碼代理
- 可以使用 githubPullRequests.ignoreSubmodules 忽略子模組
檢視 0.118.0 版本擴充套件的變更日誌,瞭解該版本中的所有內容。
擴充套件開發
用於擴充套件啟動終端的 shellIntegrationNonce
`shellIntegrationNonce` 現在可以傳遞到 `TerminalOptions` 和 `ExtensionTerminalOptions` 中的 `createTerminal`。這使得擴充套件能夠控制 nonce,它用於驗證 shell 整合轉義序列中的命令。
語言模型聊天提供程式 API
在此迭代中,我們最終確定了 `LanguageModelChatProviders` API。這使得擴充套件可以貢獻一個或多個語言模型,無論是雲託管還是本地託管。透過安裝擴充套件,使用者可以透過聊天中的模型選擇器來選擇這些模型。
已經有多個擴充套件利用此 API 來擴充套件 VS Code 中的聊天功能,支援其他模型,包括 AI Toolkit for VS Code、Cerebras Inference 和 Hugging Face。
您可以在我們的 語言模型聊天提供程式擴充套件指南或我們的 擴充套件示例中瞭解有關如何使用此 API 的更多資訊。
注意:透過此 API 提供的模型目前僅適用於 個人 GitHub Copilot 計劃的使用者。
提議的 API
身份驗證:在 `getSession` 中支援 `WWW-Authenticate` 挑戰
HTTP 的一個成熟模式是,對 API 的請求可以返回 401 Unauthorized 狀態程式碼,並帶有 WWW-Authenticate 標頭,該標頭定義了身份驗證挑戰。這些基本上是 API 為了克服 401 所需的內容。
我們引入了一個提議的 API,該 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)。如果您這樣做了,那麼 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 建立一個可以驅動本地 VS Code 例項的 MCP 伺服器。這使得我們現有的代理流,這些流側重於從構建/測試時工件(編譯、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 - 使用 page down 在分頁器中使用時,終端固定滾動可能會顯示 1 幀
- xtermjs/xterm.js#5390 - 修復退出備用緩衝區後的捲軸閃爍
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
拉取請求
對 vscode 的貢獻
- @a-ariff (Ariff): docs: 修復開發容器部分中的語法錯誤 PR #264162
- @alexkozy (Alexey)
- fix: debugToolBar.ts 中的微小記憶體洩漏 PR #259349
- fix: 註冊 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)
- 將“轉到測試”新增到覆蓋範圍源快速選擇器 PR #259600
- 設定測試覆蓋率工具欄快速選擇器的正確活動項 PR #259639
- 測試結果:僅在有 URI 時提供“轉到測試”(修復 #260443) PR #260508
- @hihry (Himanshu Ravindra Iwanati): fix: 更新“恢復到上次檢查點”懸停文字的字幕 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): feat: 從檔案搜尋中包含/排除檔案型別 PR #254285
- @LeftPhalange (Ethan Bovard): 使用 DIFF_OPEN_SIDE 命令將“開啟活動 diff 側邊”選項新增到命令面板 PR #261699
- @remcohaszing (Remco Haszing)
- 修復 MonacoEnvironment 的全域性訪問 PR #248075
- 在 markdown 程式碼塊中為更多語言高亮 PR #263550
- @rwoll (Ross Wollman)
- 等待代理迴圈在自動化中完成 PR #262370
- 在自動化中支援模型切換 PR #262420
- fix: 解析 chat.open 命令中的命令 PR #263458
- `workbench.action.chat.export` 可選接受路徑 PR #263507
- fix: 基於 Promise 確認響應 PR #263894
- Revert "fix: 基於 Promise 確認響應 (#_263894)" PR #264047
- @SimonSiefke (Simon Siefke)
- fix: 模式輸入小部件中的記憶體洩漏 PR #258152
- fix: codelens 控制器中的記憶體洩漏 PR #263136
- fix: 輔助功能訊號排程器中的記憶體洩漏 PR #263147
- fix: QuickDiffModel 中的記憶體洩漏 PR #265007
- @swordjjjkkk (Truman): 在 VSCode 中顯示選項卡索引 PR #209196
- @terreng (Terren): 實現控制標題捲軸可見性的新選項 PR #246161
- @timheuer (Tim Heuer): 向測試覆蓋率檢視新增摺疊所有功能 PR #258906
- @tmm1 (Aman Karmani)
- 修復一些拼寫錯誤 PR #259747
- terminalProcessManager: 修復 disposable 洩漏 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): fix: 調整“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): refactor(lsp-embedded-request-forwarding): 清理無用程式碼 PR #1196
對 vscode-js-debug 的貢獻
- @LittleLittleCloud (Xiaoyun Zhang): fix: 在 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): fix: 透過路徑存在性檢查增強 conda 可執行檔案檢索 PR #677
- @sjsikora (Sam Sikora): bug fix: 更嚴格的 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 metamodel 版本 PR #2180
- @skewb1k: 修正 lazy 屬性描述中的語法和一致性 PR #2170
對 node-jsonc-parser 的貢獻
- @operagxsasha: docs: 編輯了 badge tests 的連結 PR #98
- @pimterry (Tim Perry): 向解析器錯誤新增 startLine & startCharacter PR #102
對 python-environment-tools 的貢獻
- @almarouk (Abdelrahman AL MAROUK): 修復 conda env trace 訊息 PR #241
我們非常感謝大家在新功能準備就緒後立即進行試用,請經常回來檢視並瞭解新功能。
如果您想閱讀以前 VS Code 版本的發行說明,請訪問 code.visualstudio.com 上的更新頁面。