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

2025 年 3 月(版本 1.99)

更新 1.99.1:此更新解決了這些安全問題

更新 1.99.2:此更新解決了這些問題

更新 1.99.3:此更新解決了這些問題

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


歡迎使用 Visual Studio Code 2025 年 3 月版。此版本包含許多我們希望您會喜歡的更新,其中一些主要亮點包括:

  • 代理模式

    • 代理模式已在 VS Code 穩定版中可用。透過設定 chat.agent.enabled 啟用它(更多...)。
    • 使用模型上下文協議 (MCP) 伺服器工具擴充套件代理模式(更多...)。
    • 嘗試代理模式下用於獲取網頁內容、查詢符號引用和深度思考的新內建工具(更多...)。
  • 程式碼編輯

    • “下一步編輯建議”現已普遍可用(更多...)。
    • 在編輯器中應用 AI 編輯時,減少診斷事件等干擾(更多...)。
  • 聊天

    • 使用您自己的 API 金鑰在聊天(預覽版)中訪問更多語言模型(更多...)。
    • 透過統一的聊天體驗,輕鬆在“詢問”、“編輯”和“代理”模式之間切換(更多...)。
    • 透過即時遠端工作區索引,體驗更快的 Workspace 搜尋速度和準確性(更多...)。
  • 筆記本編輯

    • 透過支援編輯和代理模式,像編輯程式碼檔案一樣輕鬆建立和編輯筆記本(更多...)。

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新Insiders:想盡快嘗試新功能嗎?您可以下載每晚Insiders版本並儘快嘗試最新更新。

聊天

代理模式已在 VS Code 穩定版中可用

設定chat.agent.enabled

我們很高興地宣佈,代理模式已在 VS Code 穩定版中可用!透過設定 chat.agent.enabled 啟用它。如果您沒有看到該設定,請務必重新載入 VS Code。在接下來的幾周內,將不再需要啟用該設定,因為我們將預設向所有使用者推出啟用功能。

檢視代理模式文件,或在“聊天”檢視中從聊天模式選擇器中選擇代理模式。

Screenshot that shows the Chat view, highlighting agent mode selected in the chat mode picker.

模型上下文協議伺服器支援

此版本支援代理模式下的模型上下文協議 (MCP) 伺服器。MCP 為 AI 模型發現和與外部工具、應用程式和資料來源互動提供了一種標準化方法。當您在 VS Code 中使用代理模式輸入聊天提示時,模型可以呼叫各種工具來執行檔案操作、訪問資料庫或檢索 Web 資料等任務。此整合實現了更動態、上下文感知的編碼輔助。

MCP 伺服器可以在使用者、遠端或 .code-workspace 設定中的 mcp 部分,或工作區中的 .vscode/mcp.json 中配置。配置支援輸入變數,以避免硬編碼機密和常量。例如,您可以使用 ${env:API_KEY} 引用環境變數,或使用 ${input:ENDPOINT} 在伺服器啟動時提示輸入值。

您可以使用MCP:新增伺服器命令從命令列呼叫快速設定 MCP 伺服器,或使用從釋出到 Docker、npm 或 PyPI 的 MCP 伺服器進行的 AI 輔助設定。

新增新的 MCP 伺服器後,“聊天”檢視中會顯示一個重新整理操作,可用於啟動伺服器並發現工具。之後,伺服器會按需啟動以節省資源。

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

如果您已經在使用 Claude Desktop 等其他應用程式中的 MCP 伺服器,VS Code 將發現它們並提供為您執行它們。此行為可透過設定 chat.mcp.discovery.enabled 進行切換。

您可以使用MCP:列出伺服器命令檢視 MCP 伺服器列表及其當前狀態,並透過使用代理模式下的選擇工具按鈕選擇可用於聊天的工具。

您可以在我們的文件中瞭解有關如何安裝和使用 MCP 伺服器的更多資訊。

代理模式工具

在這個里程碑中,我們在代理模式中添加了幾個新的內建工具。

思考工具(實驗性)

設定github.copilot.chat.agent.thinkingTool

Anthropic 的研究啟發,我們在代理模式中添加了對思考工具的支援,該工具可用於讓任何模型有機會在工具呼叫之間進行思考。這提高了我們代理在產品中和 SWE-bench 評估中處理複雜任務的效能。

獲取工具

使用 #fetch 工具將可公開訪問的網頁內容包含在您的提示中。例如,如果您想包含有關 MCP 等主題的最新文件,您可以請求獲取完整文件(方便 LLM 使用)並在提示中使用。以下是可能的樣子:

在代理模式下,此工具會自動選取,但您也可以透過 #fetch 以及您要獲取的 URL 在其他模式中顯式引用它。

此工具透過在無頭瀏覽器視窗中呈現網頁來工作,在該視窗中,該頁面的資料會本地快取,因此您可以自由地要求模型反覆獲取內容,而無需重新渲染的開銷。

請告訴我們您如何使用 #fetch 工具,以及您希望它提供哪些功能!

獲取工具限制

  • 目前,此瀏覽器視窗中停用 JavaScript。如果網站完全依賴 JavaScript 來呈現內容,則該工具將無法獲取太多上下文。這是一個我們正在考慮更改並可能允許 JavaScript 的限制。
  • 由於無頭特性,我們無法獲取需要身份驗證的頁面,因為此無頭瀏覽器存在於與您使用的瀏覽器不同的瀏覽器上下文中。相反,請考慮使用 MCP 引入專門為該目標構建的 MCP 伺服器,或通用瀏覽器 MCP 伺服器,例如 Playwright MCP 伺服器

用法工具

#usages 工具是“查詢所有引用”、“查詢實現”和“轉到定義”的組合。此工具可以幫助聊天瞭解有關函式、類或介面的更多資訊。例如,聊天可以使用此工具查詢介面的示例實現或查詢在重構時需要更改的所有位置。

在代理模式下,此工具會自動選取,但您也可以透過 #usages 顯式引用它。

使用代理模式建立新工作區(實驗性)

設定github.copilot.chat.newWorkspaceCreation.enabled

您現在可以在代理模式下搭建新的 VS Code 工作區。無論您是設定 VS Code 擴充套件、MCP 伺服器還是其他開發環境,代理模式都可以幫助您使用必要的依賴項和設定初始化、配置和啟動這些專案。

代理模式下的 VS Code 擴充套件工具

幾個月前,我們為 VS Code 擴充套件貢獻的語言模型工具完成了擴充套件 API。現在,您可以在代理模式中使用這些工具。

任何在其配置中設定了 toolReferenceNamecanBeReferencedInPrompt 並貢獻給此 API 的工具,都會在代理模式中自動可用。

透過在擴充套件中貢獻工具,它可以訪問完整的 VS Code 擴充套件 API,並且可以透過擴充套件市場輕鬆安裝。

與 MCP 伺服器中的工具類似,您可以使用代理模式中的選擇工具按鈕啟用和停用這些工具。請參閱我們的語言模型工具擴充套件指南來構建您自己的工具!

代理模式工具批准

作為完成使用者提示任務的一部分,代理模式可以執行工具和終端命令。這功能強大,但可能帶來風險。因此,您需要批准在代理模式下使用工具和終端命令。

為了最佳化此體驗,您現在可以將會話、工作區或應用程式級別的批准記住。這目前不適用於終端工具,但我們計劃在未來的版本中為終端開發批准系統。

Screenshot that shows the agent mode tool Continue button dropdown options for remembering approval.

如果您想自動批准所有工具,您現在可以使用實驗性設定 chat.tools.autoApprove。這將自動批准所有工具,並且當語言模型希望執行工具時,VS Code 不會要求確認。請注意,啟用此設定後,您將沒有機會取消模型可能採取的潛在破壞性操作。

我們計劃在未來擴充套件此設定,提供更精細的功能。

SWE-bench 上的代理評估

VS Code 的代理在 swebench-verified 上使用 Claude 3.7 Sonnet 取得了 56.0% 的透過率,遵循 Anthropic 關於在 SWE-bench 環境中配置代理以在沒有使用者輸入的情況下執行的研究。我們的實驗已轉化為代理模式下改進的提示、工具描述和工具設計,包括適用於 Claude 3.5 和 3.7 Sonnet 模型的新的檔案編輯工具。

統一聊天檢視

在過去的幾個月裡,我們有一個用於向語言模型提問的“聊天”檢視,以及一個用於 AI 驅動的程式碼編輯會話的“Copilot 編輯”檢視。本月,我們的目標是透過將這兩個檢視合併到一個“聊天”檢視中來簡化基於聊天的體驗。在“聊天”檢視中,您將看到一個包含三種模式的下拉選單:

Screenshot that shows the chat mode picker in the Chat view.

  • 詢問:這與之前的“聊天”檢視相同。使用任何模型提出有關工作區或一般編碼的問題。使用 @ 呼叫內建聊天參與者或從已安裝的擴充套件。使用 # 手動附加任何型別的上下文。
  • 代理:使用一組工具啟動代理編碼流程,這些工具使其能夠自主收集上下文、執行終端命令或採取其他操作來完成任務。代理模式已為所有 VS Code Insiders 使用者啟用,我們正在將其推廣給 VS Code 穩定版中越來越多的使用者。
  • 編輯:在編輯模式下,模型可以對多個檔案進行定向編輯。附加 #codebase 以使其自動查詢要編輯的檔案。但它不會自動執行終端命令或執行任何其他操作。

注意:如果您在此列表中沒有看到代理模式,則說明尚未為您啟用,或者已由組織策略停用,需要由組織所有者啟用。

除了簡化您的聊天體驗之外,這種統一還為 AI 驅動的程式碼編輯帶來了一些新功能:

  • 在對話中切換模式:例如,您可能在詢問模式下開始構思應用程式,然後切換到代理模式來執行計劃。提示:按 可快速更改模式。
  • 歷史記錄中的編輯會話:使用顯示聊天命令(“聊天”檢視頂部的時鐘圖示)恢復過去的編輯會話並繼續處理它們。
  • 將聊天移動到編輯器或視窗:選擇在新編輯器/新視窗中開啟聊天,將您的聊天對話從側邊欄彈出到新的編輯器選項卡或單獨的 VS Code 視窗中。聊天長期以來一直支援此功能,但現在您也可以從編輯器窗格或單獨的視窗執行您的編輯/代理會話。
  • 多個代理會話:從上述觀點來看,這意味著您甚至可以同時執行多個代理會話。您可能希望一個聊天在代理模式下工作以實現功能,而另一個獨立的會話用於研究和使用其他工具。不建議同時指導兩個代理會話編輯檔案,這可能導致混亂。

自帶金鑰 (BYOK)(預覽版)

Copilot Pro 和 Copilot Free 使用者現在可以自帶 Azure、Anthropic、Gemini、Open AI、Ollama 和 Open Router 等流行提供商的 API 金鑰。這使您可以在新模型釋出的第一天就使用它們,而無需 Copilot 原生支援。

要嘗試此功能,請從模型選擇器中選擇管理模型...。我們正在積極探索對 Copilot Business 和 Enterprise 客戶的支援,並將在未來版本中分享更新。要了解有關此功能的更多資訊,請訪問我們的文件

A screenshot of a "Manage Models - Preview" dropdown menu in a user interface. The dropdown has the label "Select a provider" at the top, with a list of options below it. The options include "Anthropic" (highlighted in blue), "Azure," "Gemini," "OpenAI," "Ollama," and "OpenRouter." A gear icon is displayed next to the "Anthropic" option.

可重用提示檔案

改進的配置

設定chat.promptFilesLocations

chat.promptFilesLocations 設定現在支援檔案路徑中的 glob 模式。例如,要包含當前開啟工作區中的所有 .prompt.md 檔案,您可以將路徑設定為 { "**": true }

此外,該配置現在在適用的檔案系統上尊重大小寫敏感性,與主機作業系統的行為保持一致。

改進的提示檔案編輯

  • 您的 .prompt.md 檔案現在為檔案系統路徑提供基本的自動補全功能,並突出顯示有效的檔案引用。另一方面,斷開的連結現在顯示為警告或錯誤波浪線,並提供詳細的診斷資訊。
  • 您現在可以使用聊天:使用提示命令中的提示檔案列表中的編輯和刪除操作來管理提示。
  • 提示檔案中的資料夾引用不再被標記為無效。
  • Markdown 註釋現在得到正確處理,例如,在生成傳送到 LLM 模型的最終提示時,所有註釋掉的連結都將被忽略。

與自定義指令對齊

.github/copilot-instructions.md 檔案現在行為與其他可重用 .prompt.md 檔案一樣,支援巢狀連結解析和增強的語言功能。此外,現在可以引用任何 .prompt.md 檔案並進行適當處理。

瞭解有關自定義指令的更多資訊。

使用者提示

建立使用者提示命令現在允許建立一種新的提示型別,稱為使用者提示。這些提示儲存在使用者資料資料夾中,可以像程式碼片段或使用者設定一樣在不同機器之間同步。可以透過在同步資源列表中使用提示項在同步設定中配置同步。

改進的視覺支援(預覽版)

上一個迭代中,Copilot Vision 已為 GPT-4o 啟用。檢視我們的發行說明以瞭解有關如何在聊天中附加和使用影像的更多資訊。

此版本中,您可以透過拖放從任何瀏覽器附加影像。從瀏覽器拖放的影像必須具有正確的 URL 副檔名,例如 .jpg.png.gif.webp.bmp

配置編輯器

統一聊天體驗

我們已將 VS Code 中的聊天體驗精簡到一個統一的“聊天”檢視中。您現在可以輕鬆地在不同聊天模式之間切換,而無需在單獨的檢視之間移動並丟失對話上下文。

Screenshot that shows the chat mode picker in the Chat view.

根據您的場景,使用以下任一模式,並可以在對話中自由移動:

  • 詢問模式:針對有關您的程式碼庫的問題和頭腦風暴想法進行了最佳化。
  • 編輯模式:針對在您的程式碼庫中的多個檔案之間進行編輯進行了最佳化。
  • 代理模式:針對自主編碼流程進行了最佳化,結合了程式碼編輯和工具呼叫。

獲取有關統一聊天檢視的更多詳細資訊。

透過即時索引加快工作區搜尋速度

遠端工作區索引可加快搜索大型程式碼庫中相關的 AI 用於回答問題和生成編輯的程式碼片段。這些遠端索引對於擁有數萬甚至數十萬個檔案的大型程式碼庫特別有用。

以前,您必須按一個按鈕或執行一個命令來構建和開始使用遠端工作區索引。藉助我們新的即時索引支援,我們現在在您首次嘗試提出 #codebase/@workspace 問題時自動構建遠端工作區索引。在大多數情況下,此遠端索引可以在幾秒鐘內構建完成。一旦構建完成,您或在 VS Code 中處理該儲存庫的任何其他人進行的任何程式碼庫搜尋都將自動使用遠端索引。

請記住,遠端工作區索引目前僅適用於儲存在 GitHub 上的程式碼。要使用遠端工作區索引,請確保您的工作區包含一個帶有 GitHub 遠端的 Git 專案。您可以使用Copilot 狀態選單檢視當前正在使用的索引型別。

Screenshot that shows the workspace index status in the Copilot Status Bar menu.

為了管理負載,我們將在未來幾周內逐步推出即時索引,因此您可能不會立即看到它。當即時索引尚未為您啟用時,您仍然可以執行 GitHub Copilot: 構建遠端索引命令 命令來開始使用遠端索引。

Copilot 狀態選單

Copilot 狀態選單(可從狀態列訪問)現已對所有使用者啟用。在這個里程碑中,我們為其添加了一些新功能:

  • 隨時檢視工作區索引狀態資訊。

    Screenshot that shows the workspace index status of a workspace in the Copilot menu.

  • 檢視是否為活動編輯器啟用了程式碼補全。

    新圖示反映狀態,以便您快速檢視程式碼補全是否啟用。

    Screenshot that shows the Copilot status icon when completions is disabled.

  • 啟用或停用程式碼補全和 NES

開箱即用的 Copilot 設定(實驗性)

設定chat.setupFromDialog

我們正在推出一項實驗性功能,以提供開箱即用的功能性聊天體驗。這包括聊天檢視、編輯器/終端內聯聊天和快速聊天。當您首次傳送聊天請求時,我們將引導您登入並註冊 Copilot Free。

如果您想親自體驗此功能,請啟用 chat.setupFromDialog 設定。

聊天預釋出頻道不匹配

如果您在 VS Code 穩定版中安裝了 Copilot Chat 擴充套件的預釋出版本,新的歡迎螢幕將通知您此配置不受支援。由於聊天功能的快速開發,該擴充套件將無法在 VS Code 穩定版中啟用。

歡迎螢幕提供了選項,可以選擇切換到擴充套件的釋出版本或下載 VS Code Insiders

Screenshot that shows the welcome view of chat, indicating that the pre-release version of the extension is not supported in VS Code stable. A button is shown to switch to the release version, and a secondary link is shown to switch to VS Code Insiders.

語義文字搜尋改進(實驗性)

設定github.copilot.chat.search.semanticTextResults

AI 驅動的語義文字搜尋現在預設在“搜尋”檢視中啟用。使用鍵盤快捷鍵 ⌘I (Windows、Linux Ctrl+I) 觸發語義搜尋,它會在常規搜尋結果之上向您顯示基於查詢的最相關結果。

您還可以透過使用 #searchResults 工具在聊天提示中引用語義搜尋結果。這使您可以要求 LLM 總結或解釋結果,甚至根據它們生成程式碼。

設定編輯器搜尋更新

預設情況下,“設定”編輯器搜尋現在使用我們在上一個版本中引入的鍵匹配演算法。即使設定 ID 與已知設定完全匹配,它也會顯示其他設定。

主題:淺粉色(在vscode.dev上預覽)

視窗控制元件的新設定(Linux、Windows)

設定window.controlsStyle

如果您已將標題欄樣式(window.titleBarStyle)設定為 custom,您現在可以在三種不同的視窗控制元件樣式之間進行選擇。

  • native:這是預設設定,根據底層平臺渲染視窗控制元件
  • custom:如果您更喜歡自定義樣式而不是原生樣式,則渲染具有自定義樣式的視窗控制元件
  • hidden:如果您想在標題欄中獲得一些空間並且更傾向於鍵盤操作,則完全隱藏視窗控制元件

程式碼編輯

“下一步編輯建議”普遍可用

設定github.copilot.nextEditSuggestions.enabled

我們很高興地宣佈“下一步編輯建議”(NES) 普遍可用!此外,我們還對 NES 的整體使用者體驗進行了多項改進:

  • 使編輯建議更緊湊,減少對周圍程式碼的干擾,並更容易一目瞭然。
  • 更新了裝訂線指示器,以確保所有建議更容易被注意到。

AI 編輯改進

在使用 AI 生成編輯時,我們進行了一些小調整:

  • 使用 AI 編輯重寫檔案時,在編輯器外部靜音診斷事件。以前,我們在此場景中已經停用了波浪線。這些更改減少了“問題”面板中的閃爍,並確保我們不會發出快速修復程式碼操作的請求。

  • 當您決定保留 AI 編輯時,我們現在會顯式儲存檔案。

基於工具的編輯模式

設定chat.edits2.enabled

我們正在改變聊天中的編輯模式操作方式。新的編輯模式採用與代理模式相同的方法,它允許模型呼叫工具對檔案進行編輯。這種對齊的好處是,它使您可以在所有三種模式之間無縫切換,同時極大地簡化了這些模式的內部工作方式。

缺點是,這意味著新模式僅適用於代理模式使用的相同減少的模型集,即支援工具呼叫並且經過測試以確保在涉及工具時能夠獲得良好體驗的模型。您可能會注意到 o3-miniClaude 3.7 (Thinking) 等模型在編輯模式的列表中缺失。如果您想繼續使用這些模型進行編輯,請停用 chat.edits2.enabled 設定以恢復到以前的編輯模式。切換模式時,系統會要求您清除會話。

我們瞭解到,在使用工具時,提示以在不同模型之間獲得一致結果更加困難,但我們正在努力為編輯(和代理)模式啟用這些模型。

此設定將逐步為 VS Code 穩定版中的使用者啟用。

內聯建議語法高亮

設定editor.inlineSuggest.syntaxHighlightingEnabled

透過此更新,內聯建議的語法高亮現在預設啟用。請注意以下螢幕截圖中的程式碼建議已應用語法著色。

Screenshot of the editor, showing that syntax highlighting is enabled for ghost text.

如果您喜歡沒有語法高亮的內聯建議,您可以使用 editor.inlineSuggest.syntaxHighlightingEnabled 停用它。

Screenshot of the editor showing that highlighting for ghost text is turned off.

基於 Tree-Sitter 的語法高亮(預覽版)

設定editor.experimental.preferTreeSitter.csseditor.experimental.preferTreeSitter.regex

在之前使用 Tree-Sitter 進行語法高亮的工作基礎上,我們現在支援對 CSS 檔案以及 TypeScript 中的正則表示式進行實驗性、基於 Tree-Sitter 的語法高亮。

Notebook

Jupyter 筆記本文件的最低版本到 4.5

新筆記本的預設 nbformat 版本已從 4.2 升級到 4.5,現在將為筆記本的每個單元格設定 id 欄位以幫助計算差異。您還可以透過在筆記本的原始 JSON 中將 nbformat_minor 設定為 5 來手動更新現有筆記本。

AI 筆記本編輯改進

筆記本的 AI 驅動編輯支援(包括代理模式)現已在穩定版中提供。這在上個月作為預覽功能新增到 VS Code Insiders 中。

您現在可以使用聊天以與編輯程式碼檔案相同的直觀體驗編輯筆記本檔案:修改多個單元格中的內容、插入和刪除單元格以及更改單元格型別。此功能在處理資料科學或文件筆記本時提供了無縫的工作流程。

新筆記本工具

VS Code 現在提供了一個專用工具,可以直接從聊天建立新的 Jupyter 筆記本。此工具根據您的查詢規劃並建立新的筆記本。

在代理模式或編輯模式下使用新的筆記本工具(請務必使用 chat.edits2.enabled 啟用改進的編輯模式)。如果您正在使用詢問模式,請在聊天提示中鍵入 /newNotebook 以建立新筆記本。

導航 AI 編輯

使用差異工具欄迭代和審查跨單元格的每個 AI 編輯。

撤消 AI 編輯

當焦點在單元格容器上時,撤消命令會恢復筆記本級別的所有 AI 更改。

聊天中的文字和影像輸出支援

您現在可以直接將筆記本單元格輸出(例如文字、錯誤和影像)作為上下文新增到聊天中。這使您可以在使用詢問、編輯或代理模式時引用輸出,從而使語言模型更容易理解和協助您的筆記本內容。

使用將單元格輸出新增到聊天操作,可透過三點選單或右鍵單擊輸出來獲得。

將單元格錯誤輸出作為聊天上下文附加

將單元格輸出影像作為聊天上下文附加

輔助功能

聊天代理模式改進

現在,當工具呼叫需要手動操作時,例如“在終端中執行命令”,您會收到通知。此資訊也包含在相關聊天回覆的 ARIA 標籤中,從而增強了螢幕閱讀器使用者的可訪問性。

此外,代理模式中提供了一個新的輔助功能幫助對話方塊,解釋了使用者可以從該功能中獲得什麼以及如何有效地導航它。

聊天編輯操作的輔助功能訊號

當您保留或撤消 AI 生成的編輯時,VS Code 現在提供聲音訊號。這些訊號可透過 accessibility.signals.editsKeptaccessibility.signals.editsUndone 進行配置。

改進建議控制元件的 ARIA 標籤

建議控制元件專案的 ARIA 標籤現在包含更豐富和描述性資訊,例如建議的型別(例如,方法或變數)。這些資訊以前只能透過圖示對有視覺障礙的使用者提供。

原始碼管理

引用選擇器改進

設定git.showReferenceDetails

在這個里程碑中,我們改進了用於各種原始碼控制操作(如檢出、合併、變基或刪除分支)的引用選擇器。更新後的引用選擇器包含上次提交的詳細資訊(作者、提交訊息、提交日期)以及本地分支的超前/滯後資訊。這些額外的上下文將幫助您為各種操作選擇正確的引用。

透過切換 git.showReferenceDetails 設定來隱藏附加資訊。

Screenshot of the source control references picker showing a list of git branches with details of the last commit, and ahead/behind information.

儲存庫狀態列項

包含多個儲存庫的工作區現在有一個原始碼控制提供程式狀態列項,它在分支選擇器左側顯示活動儲存庫。新的狀態列項提供了額外的上下文,因此您可以在編輯器之間導航和使用原始碼控制檢視時瞭解哪個是活動儲存庫。

要隱藏原始碼控制提供程式狀態列項,請右鍵單擊狀態列,然後從上下文選單中取消選擇原始碼控制提供程式

Screenshot showing the repository status bar item for workspaces that contain more than one repository.

Git blame 編輯器裝飾改進

我們收到了反饋,即在輸入時,“尚未提交”編輯器裝飾沒有提供太多價值,更多的是一種干擾。從這個里程碑開始,“尚未提交”編輯器裝飾僅在透過鍵盤或滑鼠在程式碼庫中導航時顯示。

提交輸入游標自定義

在這個里程碑中,感謝社群貢獻,我們已將 editor.cursorStyleeditor.cursorWidth 設定新增到原始碼控制輸入框所尊重的設定列表中。

終端

代理模式下的可靠性

允許代理模式在終端中執行命令的工具在可靠性和相容性方面有許多改進。您應該會遇到更少工具卡住或命令完成但沒有輸出的情況。

其中一個較大的變化是引入了“富”質量shell 整合的概念,而不是“基本”和“無”。VS Code 附帶的 shell 整合指令碼通常都應該啟用富 shell 整合,它在“在終端中執行”工具(以及一般的終端使用)中提供最佳體驗。您可以透過將滑鼠懸停在終端選項卡上來檢視 shell 整合質量。

終端智慧感知改進(預覽版)

code CLI 的增強智慧感知

智慧感知現在支援 codecode-insiderscode-tunnel CLI 的子命令。例如,鍵入 code tunnel 會顯示可用的子命令,如 helpkillprune,每個都帶有描述性資訊。

Screenshot of the terminal window, showing code tunnel has been typed. The suggest widget shows subcommands like help, kill, prune, and others, with descriptions for each command.

我們還添加了以下選項建議:

  • --uninstall-extension
  • --disable-extension
  • --install-extension

這些顯示已安裝擴充套件的列表以幫助完成命令。

Screenshot of the VSCode terminal with code --uninstall-extension. A list of available extensions is displayed, including vscode-eslint and editorconfig.

此外,code --locate-shell-integration-path 現在提供特定於 shell 的選項,如 bashzshfishpwsh

Screenshot of the VSCode terminal showing a command input: code --locate-shell-integration-path with a dropdown menu listing shell options bash, fish, pwsh, and zsh.

全域性命令自動重新整理

當檢測到系統 bin 目錄發生更改時,終端現在會自動重新整理其全域性命令列表。這意味著新安裝的 CLI 工具(例如,在執行 npm install -g pnpm 之後)將立即顯示在補全中,而無需重新載入視窗。

以前,由於快取,新工具的補全不會出現,直到手動重新載入視窗。

選項值上下文

終端建議現在顯示有關預期選項值的上下文資訊,幫助您更輕鬆地完成命令。

Screenshot of the terminal showing a command in progress: npm install --omit. The terminal suggest widget displays  to indicate that's the option that's expected.

fish shell 的豐富補全

在上一個版本中,我們為 bash 和 zsh 添加了詳細的命令補全。此迭代中,我們也將該支援擴充套件到 fish。補全詳細資訊來自 shell 的文件或內建幫助命令。

例如,在 fish 中鍵入 jobs 會顯示用法資訊和選項:

Screenshot of the Visual Studio Code Terminal with a fish terminal showing a user has typed jobs. The suggest widget shown provides information about the jobs command with detailed usage examples and options.

建議中的檔案型別圖示

終端中的建議現在包含不同檔案型別的特定圖示,使其更容易一目瞭然地區分指令碼和二進位制檔案。

Screenshot of the terminal, showing suggestions for various script files, including code.sh, code-cli.sh, and code-server.js. Icons indicate the specific file type.

內聯建議詳細資訊

內聯建議(在終端中顯示為幽靈文字)繼續顯示在建議列表的頂部。在此版本中,我們已將命令詳細資訊新增到這些條目中,以便在接受它們之前提供更多上下文。

Screenshot of the terminal, showing the Block command as ghost text in the terminal. The first suggestion is block and it contains usage information.

新的簡化和詳細的選項卡懸停

預設情況下,終端選項卡現在顯示的細節要少得多。

Screenshot of the simple hover showing the terminal name, PID, command line, shell integration quality and actions

要檢視所有內容,懸停底部有一個顯示詳細資訊按鈕。

Screenshot of the detailed hover showing extensions that contribute to the environment and detailed shell integration diagnostics

已簽名的 PowerShell shell 整合

Shell 整合 PowerShell 指令碼現在已簽名,這意味著在 Windows 上使用預設 PowerShell 執行策略 RemoteSigned 時,shell 整合現在應該會自動開始工作。您可以在此處閱讀有關 shell 整合優勢的更多資訊。

終端 shell 型別

在此迭代中,我們最終確定了終端 shell API,允許擴充套件檢視使用者的終端中當前的 shell 型別。訂閱事件 onDidChangeTerminalState 可以讓您檢視使用者終端中 shell 型別的變化。例如,shell 可以從 zsh 變為 bash。

所有可識別的 shell 的列表目前列在此處

遠端開發

Linux 傳統伺服器支援已結束

自 1.99 版本起,您將無法再連線到這些伺服器。正如我們在1.97 版本中所述,需要額外時間完成遷移到受支援的 Linux 發行版的使用者可以提供自定義構建的 glibclibstdc++ 作為解決方法。有關此解決方法的更多資訊可以在常見問題部分找到。

企業

macOS 裝置管理

VS Code 現在除了 Windows 之外,還支援 macOS 上的裝置管理。這允許系統管理員從集中式管理系統(如 Microsoft Intune)推送策略。

有關更多詳細資訊,請參閱企業支援文件。

對擴充套件的貢獻

Python

Pylance 對可編輯安裝的更好支援

Pylance 現在支援解析以可編輯模式(pip install -e .)安裝的包的匯入路徑,如PEP 660所定義,這在這些場景中提供了改進的 IntelliSense 體驗。

此功能透過 python.analysis.enableEditableInstalls 啟用,我們計劃在本月逐步將其作為預設體驗推出。如果您遇到任何問題,請在Pylance GitHub 儲存庫報告。

Pylance 更快更可靠的診斷體驗(實驗性)

我們正在開始推出一項更改,以提高 Pylance 在使用擴充套件的釋出版本時的診斷準確性和響應速度。這對於開啟或最近關閉多個檔案的情況特別有幫助。

如果您不想等待推出,可以設定 python.analysis.usePullDiagnostics。如果您遇到任何問題,請在Pylance GitHub 儲存庫報告。

Pylance 自定義 Node.js 引數

新增了 python.analysis.nodeArguments 設定,允許您在使用 python.analysis.nodeExecutable 時直接向 Node.js 傳遞自定義引數。預設情況下,它設定為 "--max-old-space-size=8192",但您可以根據需要進行修改(例如,在處理大型工作區時為 Node.js 分配更多記憶體)。

此外,當將 python.analysis.nodeExecutable 設定為 auto 時,Pylance 現在會自動下載 Node.js。

擴充套件創作

Terminal.shellIntegration 調整

Terminal.shellIntegration API 現在只會在命令檢測發生時才亮起。以前,這應該在報告當前工作目錄時起作用,這導致 TerminalShellIntegration.executeCommand 無法正常工作。

此外,TerminalShellIntegration.executeCommand 現在將表現得更加一致,並跟蹤單個命令列(最終執行多個命令)的多個“子執行”。這取決於富 shell 整合,如代理模式下的可靠性部分所述。

提議的 API

任務問題匹配器狀態

我們已新增建議的 API,以便擴充套件可以監視任務的問題匹配器何時開始和完成處理行。使用 taskProblemMatcherStatus 啟用它。

將影像傳送到 LLM

在此迭代中,我們添加了一個建議的 API,以便擴充套件可以附加影像並將視覺請求傳送到語言模型。附件必須是影像的原始、非 base64 編碼的二進位制資料 (Uint8Array)。最大影像大小為 5MB。

請檢視此 API 提案問題,檢視用法示例並瞭解此 API 的最新狀態。

工程

使用 Marketplace 的新 /latest API 檢查擴充套件更新

幾個里程碑前,我們在 vscode-unpkg 服務中引入了一個新的 API 端點來檢查擴充套件更新。Marketplace 現在支援相同的端點,VS Code 正在使用此端點來檢查擴充套件更新。這是一項實驗性功能,將分階段向用戶推出。

感謝

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

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-custom-data 的貢獻

vscode-extension-samples 的貢獻

vscode-extension-telemetry 的貢獻

vscode-js-debug 的貢獻

vscode-mypy 的貢獻

vscode-prompt-tsx 的貢獻

vscode-pull-request-github 的貢獻

vscode-python-debugger 的貢獻

vscode-test 的貢獻

language-server-protocol 的貢獻

python-environment-tools 的貢獻