現已釋出!閱讀關於 11 月新增功能和修復的內容。

2025年1月 (版本 1.97)

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

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

下載:Windows:x64 Arm64 | Mac:通用版 Intel Silicon | Linux:deb rpm tarball Arm snap


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

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

GitHub Copilot

Copilot 下一步編輯建議(預覽版)

設定github.copilot.nextEditSuggestions.enabled

GitHub Copilot 程式碼補全在自動完成方面表現出色,但由於大多數編碼活動都是編輯現有程式碼,因此將其擴充套件到協助編輯是一項自然演進。因此,我們很高興推出一項新的預覽功能:Copilot 下一步編輯建議 (Copilot NES)。

基於您進行的編輯,Copilot NES 會預測您想要進行的下一次編輯的位置以及該編輯的內容。NES 會建議與您當前工作相關的未來更改,您只需按 Tab 即可快速導航並接受建議。

在下面的示例中,您會注意到更改一個變數會觸發檔案下方的一個編輯建議。只需使用 Tab 鍵進行導航並接受建議。裝訂指示器將引導您找到下一個編輯建議。

Video showing Copilot NES suggesting code edits at another location. The gutter shows an arrow indicating the relative position of the edit.

透過 VS Code 設定 github.copilot.nextEditSuggestions.enabled 啟用 Copilot NES。

根據編輯的大小和型別,建議的渲染可能會動態地從並排顯示更改為顯示在當前行的下方。將 editor.inlineSuggest.edits.renderSideBySide 設定為始終在當前行下方渲染建議。

Copilot NES 正在快速發展,我們迫不及待地希望透過我們的倉庫中的問題來獲取您的反饋。您可以閱讀我們完整的Copilot NES 文件,以獲取有關我們擴充套件 NES 體驗的更多資訊和場景。

注意:如果您是 Copilot Business 或 Enterprise 使用者,您的組織的管理員必須選擇加入使用 Copilot“編輯器預覽功能”,同時您還需要在編輯器中設定 github.copilot.nextEditSuggestions.enabled

Copilot 編輯

Copilot 編輯器已普遍可用

在我們 VS Code 10 月版本中,我們宣佈了 Copilot 編輯器的預覽版。今天,我們宣佈 Copilot 編輯器已普遍可用!Copilot 編輯器針對程式碼編輯進行了最佳化,使您能夠直接透過聊天在工作區內的多個檔案中進行程式碼更改。

改進的編輯器控制元件

現在可以單獨接受和放棄編輯,從而為您提供更多控制權。新功能是,在切換到並排檢視時,編輯器的控制元件仍然可見。這對於理解較大的更改很有用。

截圖顯示瞭如何在編輯器中接受 Copilot Edits 中的單個更改。 主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)

最後,我們添加了一個新設定,用於在配置的超時後自動接受編輯建議。相關設定是 chat.editing.autoAcceptDelay,它指定了接受更改的秒數。當您與接受按鈕互動或開始審閱更改時,倒計時會停止。這對於週末追劇的人來說應該很熟悉。

主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)

在編輯器中應用

在 Copilot Chat 中,可以使用程式碼塊工具欄中的“應用到編輯器”操作將任何程式碼塊應用到工作區中的檔案。我們對這一體驗進行了多項改進。

  • 懸停操作現在會顯示程式碼塊生成的目標檔案。

    Screenshot that shows the Apply Code Block hover text, indicating the target file name.

  • 如果程式碼塊是針對不存在的檔案,您會被提示在哪裡建立檔案。這可以在 Copilot 建議的檔案路徑、未命名的編輯器或當前活動的編輯器中完成。

  • 當計算並應用更改時,將使用與 Copilot 編輯器相同的流程和 UI。您可以單獨審閱、改進或丟棄每個更改。

時間上下文

時間上下文透過向語言模型告知您最近與之互動過的檔案,來幫助編輯或生成程式碼。我們正在試驗並衡量其有效性,但也可以手動啟用它,github.copilot.chat.editor.temporalContext.enabled 用於行內聊天,以及 github.copilot.chat.edits.temporalContext.enabled 用於 Copilot 編輯器。

工作區索引狀態 UI

當您使用 @workspace#codebase 向 Copilot 詢問有關專案程式碼的問題時,我們會使用索引來快速準確地搜尋您的程式碼庫中的相關程式碼片段作為上下文。此索引可以是由 GitHub 管理的遠端索引本地儲存的索引,或用於大型專案無法使用遠端索引的後備基本索引

在此次迭代中,我們在狀態列中的語言狀態指示器中添加了新的工作區索引,該指示器顯示 Copilot 使用的索引型別以及相關資訊,例如正在重新索引的檔案數。要檢視此資訊,只需選擇 VS Code 狀態列中的 {} 圖示。

Screenshot that shows the status of the Copilot workspace indexing in the Status Bar.

有關工作區索引的型別以及如何切換它們的更多資訊,請檢視 Copilot 工作區文件

構建遠端工作區索引

遠端工作區索引由 GitHub 管理。遠端索引即使對於大型專案也能提供高質量的結果。它們還只需要為每個 GitHub 專案構建一次,而不是為每個使用者構建一次。

考慮到所有這些優勢,我們添加了幾種升級專案到遠端索引的新方法:

  • 執行新的 GitHub Copilot: Build Remote Index 命令。

  • 工作區索引狀態 UI 中選擇“Build Index”按鈕。僅當您的專案符合遠端索引條件時,才會顯示此選項。

  • 在您看到的第一個 @workspace 響應中選擇“Build Index”按鈕。僅當您的專案符合條件時,才會顯示此選項,並且每個工作區僅顯示一次。

請記住,目前只有具有 GitHub 遠端倉庫的專案才能使用遠端索引。構建遠端索引也可能需要一些時間,尤其是在專案規模較大的情況下。請檢視工作區索引狀態 UI 以瞭解遠端索引是否已完成。

工作區搜尋改進

我們還繼續最佳化 @workspace#codebase 的程式碼搜尋。亮點包括:

  • 在使用遠端索引時,改進了對本地更改檔案的跟蹤和處理。

  • 本地索引添加了更改檔案的後臺更新,以便 @workspace 查詢不必等待它們更新。

  • 為大型專案優化了基本索引

Git 更改上下文變數

在為聊天或編輯編寫查詢時,您現在可以使用 #changes 上下文變數引用在 Git 源控制中已修改的檔案。例如,您可以提示“summarize the #changes in my workspace”。

Screenshot of a Copilot chat response, which lists the modified files and changes when prompting for '#changes'.

模型可用性

現在,在使用 Copilot 時,您有更多的模型可供選擇。以下模型現在在 Visual Studio Code 和 github.com 聊天中的模型選擇器中可用:

  • OpenAI 的 o3-mini:OpenAI 的最新推理模型已逐步推出,並將提供給 GitHub Copilot Pro、Business 和 Enterprise 使用者。在 GitHub 部落格文章中瞭解有關 o3-mini 模型可用性的更多資訊。

  • Gemini 2.0 Flash:Google 的最新模型在程式碼建議、文件和解釋程式碼方面表現出很高的能力。此模型現已向所有 GitHub Copilot 客戶提供,包括 Copilot Free。在 GitHub 部落格文章中瞭解有關 Gemini 2.0 Flash 模型可用性的更多資訊。

輔助功能

增強的可訪問性聲音

我們根據使用者反饋調整了幾種可訪問性聲音,以提高畫質晰度和區分度。以下聲音已更新:

您可以透過從命令面板執行命令 Help: List Signal Sounds 來預覽這些更新。

Copilot 編輯器可訪問性幫助對話方塊

螢幕閱讀器使用者現在可以透過在輸入框中呼叫:⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1) 來獲取有關與 Copilot 編輯器互動的指導。

此外,當編輯器包含待處理的 Copilot 編輯時,此狀態現在會在編輯器幫助對話方塊中顯示。我們還為導航下一個 ⌥F5 (Windows, Linux Alt+F5) / 上一個 ⇧⌥F5 (Windows, Linux Shift+Alt+F5),接受 ⌘Y (Windows, Linux Ctrl+Y),丟棄 ⌘N (Windows, Linux Ctrl+N),以及切換 diff 檢視 引入了鍵盤快捷鍵。

源控制元件可訪問性幫助對話方塊

如果您在源控制元件檢視處於焦點狀態時呼叫“顯示可訪問性幫助”命令,它將開啟源控制元件可訪問性幫助對話方塊,為螢幕閱讀器使用者提供重要資訊。該對話方塊包含當前源控制元件狀態的摘要以及有關檢視和如何導航它們的常規資訊。

改進的螢幕閱讀器通知

當檢測到螢幕閱讀器時,相關通知現在包含一個“瞭解更多”連結,提供額外的上下文和資源。

在文字轉語音中忽略程式碼塊

以前,當您使用文字轉語音朗讀 Copilot 響應時,程式碼塊也會被朗讀出來。您可以使用 accessibility.voice.ignoreCodeBlocks 設定,在文字轉語音會話中忽略程式碼塊。

工作臺

移動命令面板和快速輸入

您現在可以將命令面板和其他快速輸入移動到新位置,而不是將其固定在視窗頂部。

功能

  • 透過拖放命令面板或任何其他快速輸入,並將其吸附到中心和頂部
  • 跨過載保留位置,允許您為快速輸入設定新的永久位置
  • 預設位置在“自定義佈局”選擇器中可用

信任擴充套件釋出者

當您首次從某個釋出者安裝擴充套件時,現在會看到一個對話方塊,幫助您評估該擴充套件釋出者的可信度。此功能有助於確保您僅安裝來自受信任來源的擴充套件,從而提高開發環境的安全性。

Screenshot that shows the Trust Publisher dialog that is shown when a user installs an extension.

如果您安裝了擴充套件包或帶有依賴項的擴充套件,信任該釋出者也將隱含地信任與其一起安裝的擴充套件的釋出者。

當您更新到 VS Code 1.97 版本時,當前已安裝擴充套件的釋出者將被自動信任。您可以使用“Extensions: Manage Trusted Extensions Publishers”命令來管理受信任的擴充套件釋出者。此命令允許您重置或撤銷之前信任過的釋出者的信任。

Screenshot that shows the Quick Pick list of trusted publishers, enabling unchecking publishers to make them untrusted.

注意:當沒有開啟的 VS Code 視窗且您從 CLI 安裝擴充套件(code-insiders --install-extension pub.name)時,擴充套件會被安裝,但釋出者不會新增到受信任列表中。

有關更多資訊,您可以訪問瞭解更多連結。

輸出面板過濾

您現在可以過濾輸出面板的內容,這可以極大地改善日誌的管理和分析,尤其是在需要處理大量日誌資料時。

Screenshot of the Output panel, highlighting the filtering dropdown.

  • 按日誌級別過濾:根據嚴重性級別(例如,錯誤、警告、資訊)過濾日誌。這有助於您首先關注最關鍵的問題。
  • 按類別過濾:按特定類別細化日誌,允許您隔離來自特定源或元件的日誌。類別會自動從日誌資料中獲取。
  • 按文字過濾:在日誌中搜索特定文字以快速定位相關條目。

複合日誌

有時您會發現資訊分佈在多個日誌中,需要將它們一起檢視才能獲得完整的圖景。您現在可以在單個複合日誌檢視中檢視多個日誌。結合新的過濾功能,日誌分析將變得更加出色!

要建立自定義複合日誌,請使用輸出面板溢位選單中的“Create Compound Log...”操作。

您也可以在編輯器或新的 VS Code 視窗中打開復合日誌,以便進行靈活的監控和分析。此功能透過提供相關日誌的合併檢視來提高您診斷問題的能力。

注意:複合日誌檢視目前在 VS Code 重啟後不會保留。

匯出和匯入日誌

您現在可以使用輸出檢視溢位選單中的操作來匯出和匯入日誌。此功能透過方便地共享和審查日誌來增強協作和日誌管理。

在輸出面板的溢位選單中選擇相應的“Export Logs”或“Import Log”操作來匯出或匯入日誌。

設定編輯器搜尋修復

此次迭代,我們修復了一個迴歸問題,即缺少字母的搜尋查詢無法顯示預期結果。例如,當您搜尋“editor formonpast”時,設定編輯器無法找到 editor.formatOnPaste 設定。

我們還修復了一個問題,即即使在狹窄的編輯器組中,設定編輯器也會在搜尋期間顯示目錄。

Screenshot of a narrow-width Settings editor, with a search for 'edtor cursstyle' that shows the 'editor.cursorStyle' setting and does not reveal the settings table of contents.

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

擴充套件過濾器增強

為了幫助您跟蹤有可用更新的擴充套件,並查詢最近更新的擴充套件,您現在在擴充套件檢視中有兩個新的過濾器選項:@outdated@recentlyUpdated

Screenshot of the filtering options in the Extension view, highlighting the 'outdated' and 'recentlyUpdated' options.

SVG 圖片預覽支援

內建的圖片預覽現在支援預覽 SVG 檔案。

Screenshot that shows the default preview of an SVG image in VS Code.

有關更高階的 SVG 預覽擴充套件,請檢視 Visual Studio Marketplace

從 CLI 中移除工作區的根資料夾

以前,您已經可以透過使用 --add 命令列選項將根資料夾新增到多根工作區

現在,我們還透過新的 --remove 命令列選項添加了從多根工作區中刪除根資料夾的功能。

code --remove /path/to/rootfolder

編輯器

持久化查詢和替換歷史記錄

上個里程碑,我們向編輯器查詢控制元件引入了歷史記錄持久化。在此里程碑,我們將其進一步擴充套件到替換輸入控制元件,以便您可以分別維護多個會話中的兩者。替換歷史記錄是按工作區儲存的,可以透過 editor.find.replaceHistory 設定停用。

評論

關閉未提交評論時的確認

當您 esc 或以其他方式關閉帶有未提交評論的評論控制元件時,將顯示確認對話方塊。您可以透過 comments.thread.confirmOnCollapse 設定停用此確認。

評論編輯器中的快速操作

可以從評論編輯器中使用快速操作。

Screenshot that shows Quick actions in the Comments editor.

原始碼管理

Git blame 資訊

在此里程碑,我們繼續完善在編輯器和狀態列中顯示 Git blame 資訊的這項功能。我們還改進了在懸停在編輯器裝飾或狀態列項時顯示的資訊。

Screenshot that shows Git blame information when hovering over the git blame item in the Status Bar.

Git blame 狀態列項現在預設啟用,您可以使用 git.blame.statusBarItem.enabled 設定停用它。透過 git.blame.editorDecoration.enabled 設定啟用 Git blame 編輯器裝飾。

我們還添加了命令,透過使用命令面板或鍵盤快捷鍵輕鬆切換 Git blame 資訊:Git: Toggle Git Blame Editor DecorationGit: Toggle Git Blame Status Bar Item

GitHub 儲存庫

對於託管在 GitHub 上的儲存庫,我們在時間線上下文選單和懸停、源控制元件圖上下文選單和懸停,以及 Git blame 編輯器裝飾和狀態列項懸停中添加了一個新命令 Open on GitHub

Screenshot of the Source Control history item hover, highlighting the Open on GitHub link.

GitHub issue 和 pull request 引用在時間線、源控制元件圖以及 Git blame 編輯器裝飾和狀態列項懸停中呈現為連結,因此可以輕鬆在瀏覽器中開啟。

最後但同樣重要的是,我們還在時間線、源控制元件圖以及 Git blame 編輯器裝飾和狀態列項懸停中添加了 GitHub 頭像。透過 github.showAvatar 設定停用 GitHub 頭像的渲染。

源控制元件圖操作

我們透過向上下文選單添加了作用於歷史項引用(例如,分支標籤)的操作,擴充套件了源控制元件圖檢視的功能。我們新增的第一個操作是 CheckoutDelete BranchDelete Tag,允許您直接從源控制元件圖檢視輕鬆簽出分支/標籤,刪除分支,以及刪除標籤。

我們計劃在未來的里程碑中新增更多操作。

Notebook

單元格執行時的行內值

筆記本編輯器現在支援在單元格執行後顯示行內值,透過 notebook.inlineValues 設定。啟用後,在單元格成功執行後,將根據註冊的 InlineValueProvider 的結果顯示行內值。

如果沒有提供程式,則回退方法透過簡單的正則表示式匹配將核心中找到的值與單元格文件進行匹配。建議使用語言擴充套件提供的程式以確保更準確的結果。

Screenshot that shows inline values after cell execution in the notebook editor.

Markdown 單元格的自定義字體系列

筆記本編輯器現在支援為渲染的 Markdown 單元格設定自定義字體系列。這可以透過 notebook.markup.fontFamily 設定進行控制。留空時,將使用預設的工作區字體系列。

Screenshot that shows a custom font for rendered Markdown cells.

終端

連字支援

此功能現已穩定。以下是自上一版本以來更改的摘要:

支援 ConEmu 的進度轉義序列

現在支援 ConEmu 開創的 ESC ] 9 ; 4 轉義序列,該序列用於報告終端中的進度。一些 CLI 工具(如 winget)會使用此功能來報告進度。要在終端選項卡中檢視進度,請將 ${progress} 新增到 terminal.integrated.tabs.titleterminal.integrated.tabs.description。這通常顯示為進度旋轉器或百分比。

截斷命令的粘滯滾動

終端中的粘滯滾動(terminal.integrated.stickyScroll.enabled)現在會在命令被截斷並在末尾顯示省略號時顯示。

Screenshot that shows an ellipsis at the end of a command in Sticky Scroll when it is truncated.

配置最後一個終端關閉時的行為

新的 terminal.integrated.hideOnLastClosed 設定允許配置當最後一個終端關閉時是否關閉面板。此外,沒有開啟終端時的體驗也得到了改善。

任務

列號變數

新的 ${columnNumber} 變數可以在 tasks.jsonlaunch.json 中使用,以引用游標位置的列號。請參閱 VS Code 文件中的變數完整列表。

除錯

在值上過濾和搜尋

您現在可以在檢視中搜索(⌥⌘F (Windows, Linux Ctrl+Alt+F)),在“Variables”和“Watch”檢視中過濾變數和表示式的值,而不僅僅是名稱。

Screenshot that shows the search control in the Variables view when debugging.

在除錯控制檯中選擇

除錯控制檯現在支援更長、更可靠的內容選擇,從而方便複製和貼上。

JavaScript 偵錯程式

指令碼現在可以使用命令面板或編輯器操作中的 Debug: Pretty print for debugging 命令進行美化列印,即使它們不是偵錯程式當前暫停的源。

語言

TypeScript 5.7.3

此版本包括 TypeScript 5.7.3 恢復版本。此小更新修復了一些匯入錯誤和迴歸。

右鍵單擊以從 Markdown 預覽中開啟圖片

您現在可以右鍵單擊 Markdown 預覽中的工作區圖片,然後選擇 Open Image 在新編輯器中開啟它。

Screenshot that shows the context menu option to open an image in the Markdown preview.

這支援當前工作區中的任何圖片。

VS Code 內建的 Markdown 功能支援自動驗證本地檔案和圖片的連結。這是捕獲常見錯誤(例如,連結到已重新命名或不再存在於磁碟上的標題或檔案)的好方法。

為了幫助您發現此功能,我們為連結驗證添加了一個新的語言狀態項。

Screenshot that shows the Markdown link validation language status item.

開啟 Markdown 檔案時,選擇狀態列中的 {} 以檢視連結驗證狀態。您還可以使用狀態項快速切換連結驗證的開/關。

新的 Ruby 語法高亮語法

我們已放棄舊的、未維護的 Ruby 語法(來自 textmate/ruby.tmbundle),現在從 Shopify/ruby-lsp 獲取 Ruby 語法。

遠端開發

透過 遠端開發擴充套件,您可以將 開發容器、透過 SSH 或 遠端隧道 連線的遠端計算機,或 適用於 Linux 的 Windows 子系統 (WSL) 用作功能齊全的開發環境。

亮點包括:

  • 連線到 Linux 舊版伺服器的遷移路徑
  • SSH 聊天參與者改進
  • SSH 配置改進
  • SSH 的預設遠端擴充套件

您可以在 遠端開發發行說明 中瞭解有關這些功能的更多資訊。

對擴充套件的貢獻

Microsoft 帳戶

Microsoft 帳戶現已使用 MSAL(在 Windows 上支援 WAM)

注意:上個月推出的基於 MSAL 的 Microsoft 身份驗證因嚴重錯誤而被回滾。此錯誤已修復,我們將繼續進行推出。

為了確保 Microsoft 身份驗證的強大安全基線,我們在 Microsoft 帳戶擴充套件中採用了 Microsoft 身份驗證庫

這項工作的一個突出特點是 WAM(Web Account Manager……也稱為 Broker)整合。簡而言之,我們現在直接與作業系統通訊,而不是透過瀏覽器進行 Microsoft 身份驗證流,這是獲取 Microsoft 身份驗證會話的推薦方式。此外,它的速度更快,因為我們可以利用您已登入到作業系統的帳戶。

Screenshot that shows an authentication popup that the OS shows over VS Code.

如果您在此新流程中遇到任何問題,請告知我們。如果您遇到重大問題並需要恢復到舊的 Microsoft 身份驗證行為,可以透過 microsoft-authentication.implementation(將其設定為 classic,然後重新啟動 VS Code)來完成,但請注意,此設定不會保留太久。因此,如果您在使用 MSAL 流程時遇到問題,請提交一個 issue。

Python

從終端啟動原生 REPL

您現在可以從終端中的 REPL 啟動 VS Code 原生 REPL。將 python.terminal.shellIntegration.enabled 設定為 true,應該會在終端的 Python REPL 中顯示一個可點選的連結,讓您可以直接從終端開啟 VS Code 原生 REPL。

無需配置即可除錯

您現在可以直接從終端除錯 Python 指令碼或模組,而無需進行任何設定,這是新的無配置除錯功能的一部分!請檢視該功能的 wiki 頁面 以獲取所有詳細資訊和故障排除提示。

測試發現取消

當從“測試資源管理器” UI 觸發測試發現時,您現在可以取消正在進行的測試發現呼叫。使用在發現過程中替換“重新整理”按鈕出現的“取消”按鈕。

Screenshot that shows the Test Explorer, highlighting the Cancel button to cancel the test discovery.

轉到實現

Pylance 現在支援 **轉到實現**,這使您可以直接從函式或方法的用法更快地導航到其實現。當處理繼承類時,這是一個特別有用的功能。

Screenshot that shows the Go to Implementation displayed via the context menu

AI 程式碼操作:生成符號(實驗性)

有一個新的實驗性 AI 程式碼操作,用於使用 Pylance 和 Copilot 生成符號。要嘗試它,您可以啟用以下設定

"python.analysis.aiCodeActions": {"generateSymbol": true}

然後,一旦您定義了一個新符號,例如一個類或函式,您就可以選擇 **使用 Copilot 生成符號** 程式碼操作,讓 Copilot 處理實現!如果您願意,可以使用 Pylance 的 **移動符號** 程式碼操作將其移動到另一個檔案。

GitHub 拉取請求和議題

GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:

  • 全域性拉取請求查詢,並帶有一個變數來指定相對於今天的日期範圍(${today-7d})。
  • 註釋中現在支援 :: 風格的表情符號。
  • 當您開啟一個未簽出的拉取請求的描述時,所有未過期的註釋都將顯示在“註釋”面板中。

檢視擴充套件的 0.104.0 版本的 發行日志,瞭解其他亮點。

預覽功能

代理模式(實驗性)

我們一直在為 Copilot Edits 開發一種新的*代理模式*。在代理模式下,Copilot 可以自動在您的工作區中搜索相關上下文,編輯檔案,檢查錯誤,並(經您許可)執行終端命令來端到端完成任務。

Screenshot that shows agent mode in the Copilot Edits view.

您可以在 Copilot Edits 檢視中的下拉選單中切換我們已經存在了幾個月的當前編輯模式和代理模式。要看到下拉選單,請啟用 chat.agent.enabled 設定。您今天就可以在 VS Code Insiders 中開始使用代理模式。我們將逐步將其推廣到 VS Code Stable 使用者。如果該設定在 Stable 版本中對您不可見,則表示它尚未為您啟用。

Screenshot of the agent mode setting in the Settings editor.

在代理模式下,Copilot 會自主執行,但它只能編輯當前工作區內的檔案。當它想要執行終端命令時,它會顯示命令,並等待您審閱然後選擇“繼續”才會執行。

注意:Copilot Edits 在代理模式下可能會使用很多聊天請求,因此它會定期暫停並詢問您是否繼續。您可以使用 chat.agent.maxRequests 來自定義此設定。Copilot 付費使用者的預設值為 15,Copilot 免費使用者的預設值為 5。

在 VS Code 文件中瞭解更多關於 Copilot Edits 中的代理模式

代理程式碼庫搜尋(預覽版)

您可以將 #codebase 新增到您的查詢中,Copilot Edits 將為您的任務發現相關檔案。我們已添加了對使用檔案和文字搜尋、Git 儲存庫狀態以及目錄讀取等其他工具發現相關檔案的實驗性支援。以前,#codebase 只執行語義搜尋。

您可以透過 github.copilot.chat.edits.codesearch.enabled 來啟用它,並請 在 GitHub issue 中分享任何反饋

VS Code Insiders 中的 Copilot Vision(預覽版)

我們在 GitHub Copilot Chat 的預釋出版本 VS Code Insiders 中引入了端到端的視覺支援。這使您可以將影像附加到 Copilot Chat 提示中並與之互動。例如,當您在除錯時遇到錯誤時,可以快速附加 VS Code 的截圖並要求 Copilot 幫助您解決問題。

Screenshot that shows an attached image in a Copilot Chat prompt. Hovering over the image shows a preview of it.

您現在可以使用多種方法附加影像

  • 從您的作業系統或資源管理器檢視拖放影像
  • 從剪貼簿貼上影像
  • 附加 VS Code 視窗的螢幕截圖(選擇“附加” >“螢幕截圖視窗”)

如果選定的模型當前不具備處理影像的能力,將顯示警告。目前唯一支援的模型是 GPT 4o。當前支援的影像型別為 JPEG/JPGPNGGIFWEBP

可重用提示(實驗性)

此功能允許您構建、儲存和共享可重用的提示。提示檔案是一個 .prompt.md Markdown 檔案,其格式與編寫 Copilot Chat 提示的格式相同,它可以連結到其他檔案甚至其他提示。您可以附加提示檔案以提供任務特定指導、輔助程式碼生成或保留完整的提示以供以後使用。

要啟用提示檔案,請將 chat.promptFiles 設定為 true,或使用 { "/path/to/folder": boolean } 表示法指定其他路徑。如果未指定其他路徑,則預設使用 .github/prompts 資料夾來查詢提示檔案(*.prompt.md)。

在 VS Code 文件中瞭解有關 提示檔案 的更多資訊。

Linux 上的自定義標題欄(實驗性)

在此里程碑中,我們開始了一項實驗,為一部分 Linux 使用者啟用自定義標題欄。

Screenshot that shows the custom VS Code title bar on Linux.

如果您不屬於實驗物件,您可以手動將 window.titleBarStyle 配置為 custom 來試用。

您可以隨時透過自定義標題上下文選單或將 window.titleBarStyle 配置為 native 來恢復到原生標題裝飾。

Screenshot that shows the content menu option to disable the custom title bar on Linux.

TypeScript 5.8 Beta 支援

此版本包含對 TypeScript 5.8 Beta 版本的支援。請檢視 TypeScript 5.8 部落格文章 瞭解此版本中內容的詳細資訊。

要開始使用 TypeScript 5.8 的預覽版本,請安裝 TypeScript Nightly 擴充套件。分享您的反饋,並讓我們知道您在使用 TypeScript 5.8 時是否遇到任何錯誤。

更多 Shell 的終端補全

我們對 上個版本中引入的通用終端補全 進行了迭代,這些補全基於我們新的建議 API 構建。啟用新的補全功能後(透過 terminal.integrated.suggest.enabled),它們將取代 PowerShell 以前的內建提供程式,但現在可以透過 terminal.integrated.suggest.providers 進行自定義。

此版本中的主要更新包括

  • 增強的控制元件樣式和配置,以匹配編輯器的建議控制元件。
  • 可配置的狀態列(terminal.integrated.suggest.showStatusBar)提供上下文操作和資訊。
  • 提高了命令的引數意識,包括:codecode-insiderscdlsrmechomkdirrmdirtouch
  • 將命令或資源路徑顯示為附加詳細資訊。
  • 添加了對目錄導航快捷方式的支援,例如 ...../../
  • 啟用了螢幕閱讀器使用。
  • $PATH 中提取的條目現在僅在它們是可執行檔案時顯示。由於 Windows 在檔案元資料中沒有可執行位概念,因此可以透過 terminal.integrated.suggest.windowsExecutableExtensions 配置擴充套件列表。它們現在也使用實際的 Shell 環境(如果可用,使用即將推出的建議 API)。
  • 增強了鍵盤支援,用於切換詳細資訊(⌃Space(Windows、Linux Ctrl+Space)和切換建議詳細資訊焦點(⌃⌥Space(Windows、Linux Ctrl+Alt+Space)。
  • 現在,建議將在每次鍵入時出現,更接近於編輯器中快速建議的工作方式。
  • 現在將建議特定於 PowerShell 的全域性補全,例如 Get-ChildItemWrite-Host 等。

基於 Tree-Sitter 的 TypeScript 語法高亮

由於我們的許多 Textmate 語法不再維護,我們一直在研究使用 Tree-Sitter 進行語法高亮。我們從 TypeScript 開始,以便團隊可以自行託管並提供反饋。您可以使用 editor.experimental.preferTreeSitter 設定來試用早期預覽版。

擴充套件開發

文件貼上 API

文件貼上 API 允許擴充套件掛鉤到文字文件中的複製/貼上操作。使用此 API,您的擴充套件可以

  • 複製時,將資料寫入剪貼簿。這包括寫入可被貼上時拾用的元資料。

  • 貼上時,生成一個自定義編輯來應用貼上。這可以更改要貼上的文字內容,或進行更復雜的工作區編輯,例如建立新檔案。

  • 提供內容貼上的多種方式。使用者可以使用貼上控制元件或 editor.pasteAs.preferences 設定來選擇如何貼上內容。

VS Code 使用文件貼上 API 來實現諸如 JavaScript 和 TypeScript 的 貼上時更新匯入貼上 URL 時自動建立 Markdown 連結 等功能。

要開始使用文件貼上 API,請檢視 文件貼上擴充套件示例。有關更復雜的示例,請參閱內建 Markdown 擴充套件 如何實現貼上影像檔案 以將影像插入 Markdown 文件。

檔案 openLabel 顯示在簡單檔案選擇器中

OpenDialogOptions 中的 openLabel 屬性現在在 簡單檔案選擇器 中得到支援(而以前僅在系統檔案選擇器中支援)。這允許您為檔案選擇器中的按鈕提供自定義標籤。

檔案級註釋 API

註釋 API 支援建立和顯示檔案級註釋。檔案級註釋顯示在檔案的頂部,在第一行之前。它們不附加到檔案中的特定行或範圍。要顯示檔案級註釋,請將註釋的 range 設定為 undefined。要支援從評論範圍提供程式中留下檔案級註釋,請將 CommentingRangeProvider 上的 enableFileComments 屬性設定為 true

提議的 API

終端補全提供程式

您現在可以 註冊終端補全提供程式,並在 此 GitHub issue 中告訴我們您的想法。

此功能的示例可以在我們的終端建議擴充套件中找到,該擴充套件在啟用時透過 terminal.integrated.suggest.enabled 提供補全。

終端 Shell 型別

擴充套件將能夠 訪問當前活動的 Shell 型別資訊shellType 欄位將是 TerminalState 的一部分。

使用此 Shell 型別資訊來執行您需要的特定於 Shell 的操作。

工程

內務管理

作為我們年度 12 月份的例行整理工作的一部分,我們專注於清理所有儲存庫中的 GitHub issues 和 pull requests。今年,我們共減少了 3,821 個 issues 和 pull requests,確保我們的待辦事項列表保持相關且可管理。

透過遵循我們的 issue 清理指南,我們審查並分類了過時、重複和不再相關的 issues。這有助於我們保持高效的開發工作流程,並專注於為使用者改進 Visual Studio Code。

我們感謝社群持續的參與和反饋——您的貢獻讓 VS Code 每天都變得更好!🚀

Chart that shows the trend of the number of open issues over the last years. The chart shows a steep decline each year during December, the housekeeping month.

TypeScript 工作區的資原始檔監視最佳化

已進行一些最佳化,以減少大型 TypeScript 工作區(數千個 TypeScript 檔案或專案)中檔案監視的開銷。具體來說,當開啟此類工作區並初始化監視器時,您應該不再看到 CPU 峰值,或者 CPU 使用率應該會很快穩定下來。

有關更多詳細資訊,請參閱此 VS Code issue

值得注意的修復

  • 160325 按 Ctrl+D 後抑制終端啟動失敗
  • 230438 支援內碼表 1125cp866u
  • 238577 增加預設視窗大小
  • 197377 launch.json 或 tasks.json 中的 workspaceFolder 變數替換應為虛擬檔案系統使用 URI
  • 229857 執行“聚焦註釋行”後 a11y 檢視為空

感謝

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

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-eslint 的貢獻

vscode-extension-samples 的貢獻

vscode-js-debug 的貢獻

vscode-jupyter 的貢獻

vscode-loc 的貢獻

vscode-prompt-tsx 的貢獻

vscode-pull-request-github 的貢獻

vscode-pylint 的貢獻

vscode-python-debugger 的貢獻

vscode-ripgrep 的貢獻

vscode-test 的貢獻

language-server-protocol 的貢獻

© . This site is unofficial and not affiliated with Microsoft.