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

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 月版。此版本中有許多更新,我們希望您會喜歡,其中一些主要亮點包括:

  • 聊天

    • 自定義指令和可複用提示(更多...)。
    • 透過 GitHub、擴充套件和筆記本工具獲得更智慧的結果(更多...)。
    • MCP 的影像和可流式傳輸 HTTP 支援(更多...)。
  • 聊天效能

    • 重複聊天請求響應更快(更多...)。
    • 代理模式下編輯更快(更多...)。
  • 編輯器體驗

    • 改進了聊天和編輯器的多視窗支援(更多...)。
    • 暫存更改現在更容易識別(更多...)。

如果您想線上閱讀這些發行說明,請訪問 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();
    }
    

您可以使用“聊天:新建指令檔案...”命令建立指令檔案。此外,在使用者資料資料夾中建立的檔案可以透過設定同步服務在多臺使用者機器上自動同步。請務必在“備份和同步設定...”對話方塊中選中“提示和指令”選項。

在我們的文件中瞭解有關指令檔案的更多資訊。

提示檔案

設定chat.promptFilesLocations

提示檔案描述一個獨立的、完整的聊天請求,包括提示文字、聊天模式和要使用的工具。提示檔案對於為常見任務建立可複用聊天請求很有用。例如,您可以新增一個提示檔案用於建立前端元件,或執行安全審查。

提示檔案使用 .prompt.md 檔案字尾。它們可以位於使用者資料資料夾或工作區中。chat.promptFilesLocations 設定列出了查詢提示檔案的資料夾。

有幾種方法可以執行提示檔案

  • 在聊天輸入欄位中鍵入 /,然後輸入提示檔名。顯示在聊天檢視中使用斜槓命令執行提示的螢幕截圖。

  • 在編輯器中開啟提示檔案,然後按編輯器工具欄中的“播放”按鈕。這使您可以快速迭代提示並執行它,而無需切換回聊天檢視。顯示透過使用編輯器中的播放按鈕執行提示的螢幕截圖。

  • 使用命令面板中的“聊天:執行提示檔案...”命令。

提示檔案可以具有以下 Front Matter 元資料標頭,以指示應如何執行它們

  • mode:呼叫提示時使用的聊天模式(askeditagent 模式)。
  • tools:如果 modeagent,則為提示可用的工具列表。

以下示例顯示了一個用於生成發行說明的提示檔案,它在代理模式下執行,並且可以使用一組工具

---
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.

Screenshot showing using the #githubRepo tool in agent mode with hints from instructions files.

如果您想詢問當前正在處理的儲存庫,可以直接使用#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 停用此行為。

代理模式下撤消和手動編輯的處理

以前,在代理模式會話期間進行手動編輯可能會使模型混淆。現在,代理會收到有關您的更改的提示,並且在編輯可能已更改的檔案之前,應在必要時重新讀取檔案。

會話摘要和提示快取

我們對代理模式提示的構建方式進行了一些更改,以最佳化提示快取。提示快取是一種透過為提示維護穩定的字首來加快模型響應的方法。下一個請求能夠從該字首恢復,結果是每個請求都會更快一些。這在具有大上下文的重複請求系列中特別有效,就像您通常在代理模式中那樣。

當您的對話變得很長,或者您的上下文變得非常大時,您可能會在代理模式會話中看到“已總結對話歷史”訊息

Screenshot showing a summarized conversation message in the Chat view.

我們不是將整個對話作為 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(預覽版)

設定inlineChat.enableV2

我們一直在開發內聯聊天 ⌘I (Windows, Linux Ctrl+I) 的改版版本。它的主題仍然是“將聊天帶入程式碼”,但幕後它使用與聊天編輯相同的邏輯。這意味著更好地利用可用上下文和更好的程式碼編輯策略。您可以透過 inlineChat.enableV2 啟用內聯聊天 v2

此外,現在可以可選地啟用更輕量級的 UX。透過 inlineChat.hideOnRequest 設定,內聯聊天會在發出請求後立即隱藏。然後它會最小化到聊天編輯覆蓋層,這允許接受或放棄更改,或恢復內聯聊天控制。

選擇並附加 UI 元素到聊天(實驗性)

設定chat.sendElementsToChat.enabled

在開發 Web 應用程式時,您可能想就網頁的特定 UI 元素向聊天提問。您現在可以使用內建的簡單瀏覽器將 UI 元素作為上下文附加到聊天中。

透過內建的簡單瀏覽器開啟任何本地託管站點後(使用“簡單瀏覽器:顯示”命令啟動),現在會顯示一個新工具欄,您可以在其中選擇“開始”以選擇您想要的站點中的任何元素。這會附加所選元素的螢幕截圖以及元素的 HTML 和 CSS。

配置附加到聊天的內容:

此實驗性功能預設對所有簡單瀏覽器啟用,但可以使用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.diffLineAddedaccessibility.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 進一步增強此功能。

Screenshot showing NES suggesting an import statement.

下一條編輯建議 (NES) 預設開啟

下一條編輯建議現在在 VS Code Insiders 中預設開啟,我們正在逐步將其推廣到 Stable 版本。

在 HTML 或 Markdown 中生成替代文字

您現在可以在 HTML 和 Markdown 檔案中生成或更新現有替代文字。導航到包含嵌入影像的任何行,然後透過 ⌘. (Windows, Linux Ctrl+.) 或選擇燈泡圖示來觸發快速修復。

Screenshot that shows generating alt text for an image html element.

Notebook

查詢和替換歷史記錄永續性

筆記本查詢控制元件現在支援查詢和替換輸入欄位的持久歷史記錄。這在重新載入後仍然存在,並由設定editor.find.historyeditor.find.replaceHistory控制。

拖放單元格輸出到聊天

為了增強對聊天中單元格輸出使用的現有支援,現在可以將輸出拖動到聊天檢視中,以獲得無縫的附件體驗。目前,僅支援影像和文字輸出。具有影像 MIME 型別的輸出可以直接拖動,但是為了避免與文字選擇衝突,文字輸出需要按住 alt 修飾鍵才能啟用拖動。我們正在探索未來版本中的 UX 改進。

代理模式的筆記本工具

執行單元格

聊天現在擁有一個 LLM 工具來執行筆記本單元格,這允許代理根據單元格執行結果執行更新,或者在構建筆記本時執行自己的資料探索。

獲取核心狀態

代理可以使用核心狀態工具找出當前核心會話中已執行的單元格,並讀取活動變數。

列出/安裝包

Jupyter 擴充套件提供用於在用作筆記本核心的環境中列出和安裝包的工具。如果可用,該操作將委託給 Python 環境擴充套件;否則,它會嘗試使用 pip 包管理器。

原始碼管理

暫存更改的快速差異裝飾

為了解決長期以來的功能請求,本里程碑我們為暫存更改添加了快速差異編輯器裝飾。現在,您可以直接從編輯器中檢視暫存更改,而無需開啟原始碼管理檢視。

您可以使用以下主題標記自定義暫存更改快速差異裝飾的顏色:editorGutter.addedSecondaryBackgroundeditorGutter.modifiedSecondaryBackgroundeditorGutter.deletedSecondaryBackground

如果您不想看到暫存更改的快速差異裝飾,可以使用編輯器 gutter 上下文選單中提供的“差異裝飾”子選單將其隱藏。

除錯

反彙編檢視上下文選單

感謝社群的貢獻,我們現在在反彙編檢視中擁有了上下文選單。

Screenshot that shows the context menu in the Disassembly view.

JavaScript 偵錯程式網路檢視

Node.js 的最新版本增強了其網路除錯功能。實驗性網路檢視將在支援它的最新 Node.js 版本(v22.14.0 及更高版本)上預設啟用。

語言

顯示 CSS 和 HTML 的瀏覽器支援

當您將滑鼠懸停在 CSS 屬性、HTML 元素或 HTML 屬性上時,您現在會看到該屬性或元素在瀏覽器中的支援情況摘要,使用Baseline

Screenshot that shows baseline browser support in the CSS hover.

.*.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:建立環境”命令訪問快速建立。

Screenshot showing Quick Create in the Python: Create Environment quick pick.

Python 環境聊天工具

Python Environments 擴充套件(預覽版)現在包含兩個聊天工具:“獲取 Python 環境資訊”和“安裝 Python 包”。要使用這些工具,您可以透過在提示中直接引用它們,例如新增 #pythonGetEnvironmentInfo #pythonInstallPackage,或者代理模式會在適用時自動呼叫該工具。這些工具根據檔案或工作區上下文無縫檢測適當的環境資訊,並透過準確的環境解析處理包安裝。

使用 Pylance 時的顏色選擇器

Pylance 現在可以直接在編輯器中為 Python 檔案中識別的顏色值顯示互動式色塊,從而更輕鬆地即時視覺化和選擇顏色。要試用它,您可以啟用python.analysis.enableColorPicker。支援的格式包括 #RGB(如“#001122”)和 #RGBA(如“#001122FF”)。

Screenshot showing the color swatch displayed in the editor next to #RGB color format.

AI 程式碼操作:轉換格式字串(實驗性)

當使用 Pylance 時,有一個新的實驗性 AI 程式碼操作用於將字串連線轉換為 f-string 或 format()。要試用它,請在選擇要轉換的字串中的符號時,透過燈泡或透過 Ctrl + ./Cmd + . 選擇“使用 Copilot 轉換為 f-string”或“使用 Copilot 轉換為 format() 呼叫”程式碼操作。

Screenshot showing the convert strings Code Actions, powered by AI.

此體驗透過以下設定啟用

"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
  • 使用特定 encodingstring 編碼為 Uint8Array
  • 使用特定 encodingUint8Array 解碼為 string

擴充套件的 ESM 支援

NodeJS 擴充套件主機現在支援使用 JavaScript 模組 (ESM) 的擴充套件。它所需要的只是您的擴充套件的 package.json 檔案中的 "type": "module" 條目。有了它,JavaScript 程式碼可以使用 importexport 語句,包括特殊模組 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 的貢獻者們致以衷心的感謝

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-js-debug 的貢獻

vscode-json-languageservice 的貢獻

vscode-jupyter 的貢獻

vscode-mypy 的貢獻

vscode-notebook-renderers 的貢獻

vscode-pull-request-github 的貢獻

vscode-python-debugger 的貢獻

vscode-python-environments 的貢獻

language-server-protocol 的貢獻

monaco-editor 的貢獻