🚀 在 VS Code 中

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.comInsiders:想要盡快試用新功能嗎?您可以下載每晚建置的 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 編輯的個別變更。 佈景主題:GitHub Light Colorblind (Beta) (vscode.dev 上的預覽)

最後,我們新增了一個設定,可在可設定的逾時後自動接受編輯建議。該設定為 chat.editing.autoAcceptDelay,指定接受變更的秒數。當您與「接受」按鈕互動或開始檢閱變更時,倒數計時會停止。這對於週末追劇的任何人來說應該都很熟悉。

佈景主題:GitHub Light Colorblind (Beta) (vscode.dev 上的預覽)

套用至編輯器

在 Copilot 聊天中,任何程式碼區塊都可以使用程式碼區塊工具列中的套用至編輯器動作套用至工作區中的檔案。我們對此體驗進行了多項改進

  • 動作的懸停現在會顯示程式碼區塊是為哪個檔案產生的。

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

  • 如果程式碼區塊適用於不存在的檔案,系統會提示您要在哪裡建立檔案。這可以在 Copilot 建議的檔案路徑、未命名的編輯器或目前作用中的編輯器中。

  • 當計算並套用變更時,會使用與 Copilot 編輯相同的流程和 UI。您可以個別檢閱、改進或捨棄每個變更。

時間性內容

時間性內容在編輯或產生程式碼時有所幫助,它會告知語言模型您最近互動過的檔案。我們正在實驗和衡量其有效性,但也可以手動啟用,內嵌聊天的設定為 github.copilot.chat.editor.temporalContext.enabled,Copilot 編輯的設定為 github.copilot.chat.edits.temporalContext.enabled

工作區索引狀態 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:建置遠端索引命令。

  • 選取 工作區索引狀態 UI 中的「建置索引」按鈕。這僅在您的專案符合遠端索引資格時才會顯示。

  • 選取您看到的第一個 @workspace 回應中的「建置索引」按鈕。這僅在您的專案符合資格時才會顯示,並且每個工作區僅顯示一次。

請記住,目前只有具有 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 模型的可用性。

協助工具

增強的協助工具音效

我們根據使用者意見反應調整了多個協助工具音效,以提高清晰度和區別度。以下音效已更新

  • accessibility.signals.save
  • accessibility.signals.lineHasFoldedArea
  • accessibility.signals.terminalQuickFix
  • accessibility.signals.lineHasInlineSuggestion

您可以從命令面板執行說明:列出訊號音效命令來預覽這些更新。

Copilot 編輯協助工具說明對話方塊

螢幕助讀程式使用者現在可以透過在輸入方塊中叫用:⌥F1 (Windows Alt+F1、Linux Shift+Alt+F1) 來存取與 Copilot 編輯互動的指引。

此外,當編輯器包含擱置中的 Copilot 編輯時,此狀態現在會顯示在編輯器說明對話方塊中。我們也為導覽下一個 ⌥F5 (Windows、Linux Alt+F5) / 上一個 ⇧⌥F5 (Windows、Linux Shift+Alt+F5)、接受 ⇧⌘Enter (Windows、Linux Ctrl+Shift+Enter)、捨棄 ⇧⌘Backspace (Windows、Linux Ctrl+Shift+Backspace) 和切換差異檢視 ⇧⌥F7 (Windows、Linux Shift+Alt+F7) 引入了鍵盤快速鍵。

原始檔控制協助工具說明對話方塊

如果您在焦點位於「原始檔控制」檢視時叫用顯示協助工具說明命令,它會開啟「原始檔控制協助工具說明」對話方塊,以提供螢幕助讀程式使用者的重要資訊。對話方塊包含目前原始檔控制狀態的摘要,以及有關檢視和如何導覽它們的一般資訊。

改良的螢幕助讀程式通知

偵測到螢幕助讀程式時,相關通知現在包含一個連結以瞭解更多資訊,提供額外的內容和資源。

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

先前,當您使用文字轉語音讀出 Copilot 回應時,程式碼區塊也會大聲讀出。您可以使用 accessibility.voice.ignoreCodeBlocks 設定,在文字轉語音工作階段中忽略程式碼區塊。

工作台

移動命令面板和快速輸入

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

功能

  • 拖放命令面板或任何其他快速輸入,並貼齊至中心和頂端
  • 跨重新載入持續位置,讓您可以為快速輸入設定新的永久位置
  • 預設位置在「自訂版面配置」選擇器中可用

信任擴充功能發行者

當您第一次從發行者安裝擴充功能時,您現在會看到一個對話方塊,協助您評估擴充功能發行者的可信任度。此功能有助於確保您僅安裝來自受信任來源的擴充功能,從而增強開發環境的安全性。

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

如果您安裝擴充功能包或具有相依性的擴充功能,信任發行者也會隱含地信任與其一起安裝的擴充功能的發行者。

當您更新到 VS Code 1.97 發行版本時,目前已安裝擴充功能的發行者會自動受到信任。您可以使用擴充功能:管理受信任的擴充功能發行者命令來管理受信任的擴充功能發行者。此命令可讓您重設或撤銷您先前信任的發行者的信任。

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.

  • 依記錄層級篩選:依據嚴重性層級篩選記錄 (例如,錯誤、警告、資訊)。這可協助您先專注於最關鍵的問題。
  • 依類別篩選:依據特定類別縮小記錄範圍,讓您可以隔離來自特定來源或元件的記錄。類別會自動從記錄資料中擷取。
  • 依文字篩選:在記錄中搜尋特定文字,以快速找到相關項目。

複合記錄

有時您會發現資訊分散在多個記錄中,您需要一起檢視它們才能獲得完整的畫面。您現在可以在單一複合記錄檢視中檢視多個記錄。將此與新的 篩選 功能結合使用,記錄分析變得更好了!

若要建立自訂複合記錄,請使用「輸出」面板溢位選單中的建立複合記錄...動作。

您也可以在編輯器或新的 VS Code 視窗中開啟複合記錄,以進行彈性的監視和分析。此功能透過提供相關記錄的整合檢視,提高了您診斷問題的能力。

注意:複合記錄檢視目前不會跨 VS Code 重新啟動而持續存在。

匯出和匯入記錄

您現在可以使用「輸出」檢視溢位選單中的動作匯出和匯入記錄。此功能透過讓共用和檢閱記錄變得容易,增強了協作和記錄管理。

在「輸出」面板的溢位選單中選取對應的匯出記錄匯入記錄動作,以匯出或匯入記錄。

設定編輯器搜尋修正

在此迭代中,我們修正了缺少字母的搜尋查詢未顯示預期結果的迴歸問題。例如,當您搜尋 "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.

擴充功能篩選器增強功能

為了協助您追蹤有可用更新的擴充功能,並尋找最近更新的擴充功能,您現在在「擴充功能」檢視中有兩個新的篩選器選項:@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.

查看 Visual Studio Marketplace 以取得更進階的 SVG 預覽擴充功能。

從 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 責任追溯資訊

在此里程碑中,我們繼續完善在編輯器和狀態列中顯示 Git 責任追溯資訊的功能。我們也改進了當您將滑鼠游標停留在編輯器裝飾或狀態列項目上方時顯示的資訊。

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

Git 責任追溯狀態列項目現在預設為啟用,您可以使用 git.blame.statusBarItem.enabled 設定停用它。使用 git.blame.editorDecoration.enabled 設定啟用 Git 責任追溯編輯器裝飾。

我們也新增了命令,可透過使用命令面板或使用鍵盤快速鍵輕鬆切換 Git 責任追溯資訊:Git:切換 Git 責任追溯編輯器裝飾Git:切換 Git 責任追溯狀態列項目

GitHub 存放庫

對於託管在 GitHub 上的存放庫,我們在時間軸內容選單和懸停、原始檔控制圖形內容選單和懸停,以及 Git 責任追溯編輯器裝飾和狀態列項目懸停中新增了一個新命令,在 GitHub 上開啟

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

GitHub 問題和提取要求參考會在時間軸、原始檔控制圖形和 Git 責任追溯編輯器裝飾和狀態列項目懸停中呈現為連結,以便可以輕鬆地在瀏覽器中開啟它們。

最後但並非最不重要的一點,我們也在時間軸、原始檔控制圖形和 Git 責任追溯編輯器裝飾和狀態列項目懸停中新增了 GitHub 頭像。使用 github.showAvatar 設定停用 GitHub 頭像的呈現。

原始檔控制圖形動作

我們透過將範圍限定為歷程記錄項目參考 (例如,分支標籤) 的動作新增至內容選單,擴展了「原始檔控制圖形」檢視的功能。我們新增的第一個動作是簽出刪除分支刪除標籤,可讓您直接從「原始檔控制圖形」檢視輕鬆簽出分支/標籤、刪除分支和刪除標籤。

我們計劃在即將到來的里程碑中新增更多動作。

筆記本

儲存格執行時的內嵌值

筆記本編輯器現在支援在儲存格執行後顯示內嵌值,並透過設定 notebook.inlineValues 進行設定。啟用後,在儲存格成功執行後,會根據已註冊 InlineValueProvider 的結果顯示內嵌值。

如果沒有提供者,後備方法會透過簡單的 regex 比對,將核心中找到的值與儲存格文件進行比對。建議使用來自語言擴充功能的提供者,以確保更準確的結果。

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.

終端機

連字支援

此功能現在被視為穩定。以下是自上個版本以來變更的摘要

  • 啟用設定從 terminal.integrated.fontLigatures 變更為 terminal.integrated.fontLigatures.enabled
  • 當游標或選取範圍在連字內時,連字現在會暫時停用。
  • 使用 terminal.integrated.fontLigatures.featureSettings 設定連字集和變體。這會傳遞到幕後的 font-feature-settings CSS 屬性。
  • 使用 terminal.integrated.fontLigatures.fallbackLigatures 在我們用來解析連字型號的程式庫不支援時,手動設定連字序列。

支援 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)),以篩選變數和運算式的值,而不僅僅是名稱。

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 預覽中的工作區影像,然後選取「開啟影像」,以在新編輯器中開啟它。

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 語法醒目提示文法

我們已從舊的、未維護的 textmate/ruby.tmbundle Ruby 文法轉移,現在從 Shopify/ruby-lsp 取得 Ruby 文法。

遠端開發

遠端開發擴充功能可讓您使用 開發容器、透過 SSH 或 遠端通道的遠端電腦,或 適用於 Linux 的 Windows 子系統 (WSL) 作為全功能開發環境。

重點包括

  • 連線到 Linux 舊版伺服器的移轉路徑
  • SSH Chat 參與者改善
  • SSH 設定改善
  • SSH 的預設遠端擴充功能

您可以在遠端開發版本資訊中深入瞭解這些功能。

擴充功能貢獻

Microsoft 帳戶

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

注意:上個月推出的 Microsoft MSAL 驗證需要回溯,因為出現重大錯誤。此錯誤已修正,我們正繼續推出。

為了確保 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 流程時遇到問題,請開啟問題。

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 Pull Requests 和 Issues

GitHub Pull Requests 擴充功能已取得更多進展,可讓您處理、建立和管理提取要求和問題。新功能包括

  • 全域提取要求查詢,具有指定相對於今天的時間範圍的變數 (${today-7d})。
  • 註解中現在支援 :<emoji-name>: 樣式的表情符號。
  • 當您開啟未簽出提取要求的描述時,所有非過時的註解都會顯示在「註解」面板中。

請檢閱擴充功能 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 啟用它,並請與我們分享任何意見反應

VS Code Insiders 中的 Copilot Vision (預覽)

我們正在 VS Code Insiders 中的 GitHub Copilot Chat 搶先體驗版中導入端對端視覺支援。這可讓您附加影像並在 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 設定副檔名清單。這些現在也會在使用即將推出的建議 API 時使用實際的 Shell 環境。
  • 增強的鍵盤支援,可切換詳細資料 ⌃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 問題中告訴我們您的想法。

您可以在我們的終端機建議擴充功能中找到範例,該擴充功能在透過 terminal.integrated.suggest.enabled 啟用時提供完成功能。

終端機 Shell 類型

擴充功能將能夠存取目前作用中 Shell 類型資訊shellType 欄位將會是 TerminalState 的一部分。

使用此 Shell 類型資訊來執行您需要的 Shell 特定作業。

工程

內務處理

作為我們 12 月年度內務處理工作的一部分,我們專注於清理所有存放庫中的 GitHub 問題和提取要求。今年,我們淨減少了 3,821 個問題和提取要求,確保我們的待辦項目保持相關且可管理。

透過遵循我們的問題清理指南,我們檢閱並分類過時、重複且不再相關的問題。這有助於我們維持有效率的開發工作流程,並專注於為使用者改善 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 問題以取得更多詳細資訊。

值得注意的修正

  • 160325 抑制在按下 ctrl+D 後的終端機啟動失敗
  • 230438 支援代碼頁 1125 又名 cp866u
  • 238577 增加預設視窗大小
  • 197377 launch.json 或 tasks.json 中的 workspaceFolder 變數替換應針對虛擬檔案系統使用 URI
  • 229857 在執行 focus comment on line 後,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 的貢獻