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 月版本。此版本帶來了許多更新,我們希望您會喜歡,其中一些主要亮點包括:
- 下一步編輯建議(預覽版) - Copilot 預測您可能進行的下一次編輯。
- 移動命令面板 - 將命令面板和快速輸入拖動到新位置。
- 自動接受編輯 - 在配置的超時後自動接受來自 Copilot 的編輯。
- 擴充套件釋出者信任 - 透過擴充套件釋出者信任來保護您的環境安全。
- 複合日誌 - 將多個日誌合併到一個聚合日誌檢視中。
- 過濾輸出日誌 - 過濾輸出面板的內容。
- Git blame 資訊 - 豐富的 Git blame 資訊並在 GitHub 上開啟。
- 在除錯變數中搜索值 - 過濾和搜尋除錯變數中的特定值。
- 單元格執行時的行內值 - 在筆記本中檢視程式碼單元格變數的行內值。
- Python 無配置除錯 - 無需設定即可快速除錯 Python 指令碼或模組。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新。Insiders:想盡快嘗試新功能嗎?您可以下載每晚Insiders版本並儘快嘗試最新更新。
GitHub Copilot
Copilot 下一步編輯建議(預覽版)
設定:github.copilot.nextEditSuggestions.enabled
GitHub Copilot 程式碼補全在自動完成方面表現出色,但由於大多數編碼活動都是編輯現有程式碼,因此將其擴充套件到協助編輯是一項自然演進。因此,我們很高興推出一項新的預覽功能:Copilot 下一步編輯建議 (Copilot NES)。
基於您進行的編輯,Copilot NES 會預測您想要進行的下一次編輯的位置以及該編輯的內容。NES 會建議與您當前工作相關的未來更改,您只需按 Tab 即可快速導航並接受建議。
在下面的示例中,您會注意到更改一個變數會觸發檔案下方的一個編輯建議。只需使用 Tab 鍵進行導航並接受建議。裝訂指示器將引導您找到下一個編輯建議。

透過 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 編輯器針對程式碼編輯進行了最佳化,使您能夠直接透過聊天在工作區內的多個檔案中進行程式碼更改。
改進的編輯器控制元件
現在可以單獨接受和放棄編輯,從而為您提供更多控制權。新功能是,在切換到並排檢視時,編輯器的控制元件仍然可見。這對於理解較大的更改很有用。
主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)
最後,我們添加了一個新設定,用於在配置的超時後自動接受編輯建議。相關設定是 chat.editing.autoAcceptDelay,它指定了接受更改的秒數。當您與接受按鈕互動或開始審閱更改時,倒計時會停止。這對於週末追劇的人來說應該很熟悉。
主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)
在編輯器中應用
在 Copilot Chat 中,可以使用程式碼塊工具欄中的“應用到編輯器”操作將任何程式碼塊應用到工作區中的檔案。我們對這一體驗進行了多項改進。
-
懸停操作現在會顯示程式碼塊生成的目標檔案。

-
如果程式碼塊是針對不存在的檔案,您會被提示在哪裡建立檔案。這可以在 Copilot 建議的檔案路徑、未命名的編輯器或當前活動的編輯器中完成。
-
當計算並應用更改時,將使用與 Copilot 編輯器相同的流程和 UI。您可以單獨審閱、改進或丟棄每個更改。
時間上下文
時間上下文透過向語言模型告知您最近與之互動過的檔案,來幫助編輯或生成程式碼。我們正在試驗並衡量其有效性,但也可以手動啟用它,github.copilot.chat.editor.temporalContext.enabled 用於行內聊天,以及 github.copilot.chat.edits.temporalContext.enabled 用於 Copilot 編輯器。
工作區索引狀態 UI
當您使用 @workspace 或 #codebase 向 Copilot 詢問有關專案程式碼的問題時,我們會使用索引來快速準確地搜尋您的程式碼庫中的相關程式碼片段作為上下文。此索引可以是由 GitHub 管理的遠端索引、本地儲存的索引,或用於大型專案無法使用遠端索引的後備基本索引。
在此次迭代中,我們在狀態列中的語言狀態指示器中添加了新的工作區索引,該指示器顯示 Copilot 使用的索引型別以及相關資訊,例如正在重新索引的檔案數。要檢視此資訊,只需選擇 VS Code 狀態列中的 {} 圖示。

有關工作區索引的型別以及如何切換它們的更多資訊,請檢視 Copilot 工作區文件。
構建遠端工作區索引
遠端工作區索引由 GitHub 管理。遠端索引即使對於大型專案也能提供高質量的結果。它們還只需要為每個 GitHub 專案構建一次,而不是為每個使用者構建一次。
考慮到所有這些優勢,我們添加了幾種升級專案到遠端索引的新方法:
-
執行新的 GitHub Copilot: Build Remote Index 命令。
-
在工作區索引狀態 UI 中選擇“Build Index”按鈕。僅當您的專案符合遠端索引條件時,才會顯示此選項。
-
在您看到的第一個
@workspace響應中選擇“Build Index”按鈕。僅當您的專案符合條件時,才會顯示此選項,並且每個工作區僅顯示一次。
請記住,目前只有具有 GitHub 遠端倉庫的專案才能使用遠端索引。構建遠端索引也可能需要一些時間,尤其是在專案規模較大的情況下。請檢視工作區索引狀態 UI 以瞭解遠端索引是否已完成。
工作區搜尋改進
我們還繼續最佳化 @workspace 和 #codebase 的程式碼搜尋。亮點包括:
Git 更改上下文變數
在為聊天或編輯編寫查詢時,您現在可以使用 #changes 上下文變數引用在 Git 源控制中已修改的檔案。例如,您可以提示“summarize the #changes in my workspace”。

模型可用性
現在,在使用 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
您可以透過從命令面板執行命令 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 設定,在文字轉語音會話中忽略程式碼塊。
工作臺
移動命令面板和快速輸入
您現在可以將命令面板和其他快速輸入移動到新位置,而不是將其固定在視窗頂部。
功能
- 透過拖放命令面板或任何其他快速輸入,並將其吸附到中心和頂部
- 跨過載保留位置,允許您為快速輸入設定新的永久位置
- 預設位置在“自定義佈局”選擇器中可用
信任擴充套件釋出者
當您首次從某個釋出者安裝擴充套件時,現在會看到一個對話方塊,幫助您評估該擴充套件釋出者的可信度。此功能有助於確保您僅安裝來自受信任來源的擴充套件,從而提高開發環境的安全性。

如果您安裝了擴充套件包或帶有依賴項的擴充套件,信任該釋出者也將隱含地信任與其一起安裝的擴充套件的釋出者。
當您更新到 VS Code 1.97 版本時,當前已安裝擴充套件的釋出者將被自動信任。您可以使用“Extensions: Manage Trusted Extensions Publishers”命令來管理受信任的擴充套件釋出者。此命令允許您重置或撤銷之前信任過的釋出者的信任。

注意:當沒有開啟的 VS Code 視窗且您從 CLI 安裝擴充套件(code-insiders --install-extension pub.name)時,擴充套件會被安裝,但釋出者不會新增到受信任列表中。
有關更多資訊,您可以訪問瞭解更多連結。
輸出面板過濾
您現在可以過濾輸出面板的內容,這可以極大地改善日誌的管理和分析,尤其是在需要處理大量日誌資料時。

- 按日誌級別過濾:根據嚴重性級別(例如,錯誤、警告、資訊)過濾日誌。這有助於您首先關注最關鍵的問題。
- 按類別過濾:按特定類別細化日誌,允許您隔離來自特定源或元件的日誌。類別會自動從日誌資料中獲取。
- 按文字過濾:在日誌中搜索特定文字以快速定位相關條目。
複合日誌
有時您會發現資訊分佈在多個日誌中,需要將它們一起檢視才能獲得完整的圖景。您現在可以在單個複合日誌檢視中檢視多個日誌。結合新的過濾功能,日誌分析將變得更加出色!
要建立自定義複合日誌,請使用輸出面板溢位選單中的“Create Compound Log...”操作。
您也可以在編輯器或新的 VS Code 視窗中打開復合日誌,以便進行靈活的監控和分析。此功能透過提供相關日誌的合併檢視來提高您診斷問題的能力。
注意:複合日誌檢視目前在 VS Code 重啟後不會保留。
匯出和匯入日誌
您現在可以使用輸出檢視溢位選單中的操作來匯出和匯入日誌。此功能透過方便地共享和審查日誌來增強協作和日誌管理。
在輸出面板的溢位選單中選擇相應的“Export Logs”或“Import Log”操作來匯出或匯入日誌。
設定編輯器搜尋修復
此次迭代,我們修復了一個迴歸問題,即缺少字母的搜尋查詢無法顯示預期結果。例如,當您搜尋“editor formonpast”時,設定編輯器無法找到 editor.formatOnPaste 設定。
我們還修復了一個問題,即即使在狹窄的編輯器組中,設定編輯器也會在搜尋期間顯示目錄。

主題:淺粉色(在 vscode.dev 上預覽)
擴充套件過濾器增強
為了幫助您跟蹤有可用更新的擴充套件,並查詢最近更新的擴充套件,您現在在擴充套件檢視中有兩個新的過濾器選項:@outdated 和 @recentlyUpdated。

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

有關更高階的 SVG 預覽擴充套件,請檢視 Visual Studio Marketplace。
從 CLI 中移除工作區的根資料夾
以前,您已經可以透過使用 --add 命令列選項將根資料夾新增到多根工作區。
現在,我們還透過新的 --remove 命令列選項添加了從多根工作區中刪除根資料夾的功能。
code --remove /path/to/rootfolder
編輯器
持久化查詢和替換歷史記錄
上個里程碑,我們向編輯器查詢控制元件引入了歷史記錄持久化。在此里程碑,我們將其進一步擴充套件到替換輸入控制元件,以便您可以分別維護多個會話中的兩者。替換歷史記錄是按工作區儲存的,可以透過 editor.find.replaceHistory 設定停用。
評論
關閉未提交評論時的確認
當您 esc 或以其他方式關閉帶有未提交評論的評論控制元件時,將顯示確認對話方塊。您可以透過 comments.thread.confirmOnCollapse 設定停用此確認。
評論編輯器中的快速操作
可以從評論編輯器中使用快速操作。

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

Git blame 狀態列項現在預設啟用,您可以使用 git.blame.statusBarItem.enabled 設定停用它。透過 git.blame.editorDecoration.enabled 設定啟用 Git blame 編輯器裝飾。
我們還添加了命令,透過使用命令面板或鍵盤快捷鍵輕鬆切換 Git blame 資訊:Git: Toggle Git Blame Editor Decoration 和 Git: Toggle Git Blame Status Bar Item。
GitHub 儲存庫
對於託管在 GitHub 上的儲存庫,我們在時間線上下文選單和懸停、源控制元件圖上下文選單和懸停,以及 Git blame 編輯器裝飾和狀態列項懸停中添加了一個新命令 Open on GitHub。

GitHub issue 和 pull request 引用在時間線、源控制元件圖以及 Git blame 編輯器裝飾和狀態列項懸停中呈現為連結,因此可以輕鬆在瀏覽器中開啟。
最後但同樣重要的是,我們還在時間線、源控制元件圖以及 Git blame 編輯器裝飾和狀態列項懸停中添加了 GitHub 頭像。透過 github.showAvatar 設定停用 GitHub 頭像的渲染。
源控制元件圖操作
我們透過向上下文選單添加了作用於歷史項引用(例如,分支標籤)的操作,擴充套件了源控制元件圖檢視的功能。我們新增的第一個操作是 Checkout、Delete Branch 和 Delete Tag,允許您直接從源控制元件圖檢視輕鬆簽出分支/標籤,刪除分支,以及刪除標籤。
我們計劃在未來的里程碑中新增更多操作。
Notebook
單元格執行時的行內值
筆記本編輯器現在支援在單元格執行後顯示行內值,透過 notebook.inlineValues 設定。啟用後,在單元格成功執行後,將根據註冊的 InlineValueProvider 的結果顯示行內值。
如果沒有提供程式,則回退方法透過簡單的正則表示式匹配將核心中找到的值與單元格文件進行匹配。建議使用語言擴充套件提供的程式以確保更準確的結果。

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

終端
連字支援
此功能現已穩定。以下是自上一版本以來更改的摘要:
- 啟用設定已從
terminal.integrated.fontLigatures更改為 terminal.integrated.fontLigatures.enabled。 - 當游標或選區位於連字內時,連字現在會暫時停用。
- 使用 terminal.integrated.fontLigatures.featureSettings 設定連字集和變體。這會在後臺傳遞給
font-feature-settingsCSS 屬性。 - 使用 terminal.integrated.fontLigatures.fallbackLigatures 在我們用於解析連字的庫不受支援時手動設定連字序列。
支援 ConEmu 的進度轉義序列
現在支援 ConEmu 開創的 ESC ] 9 ; 4 轉義序列,該序列用於報告終端中的進度。一些 CLI 工具(如 winget)會使用此功能來報告進度。要在終端選項卡中檢視進度,請將 ${progress} 新增到 terminal.integrated.tabs.title 或 terminal.integrated.tabs.description。這通常顯示為進度旋轉器或百分比。
截斷命令的粘滯滾動
終端中的粘滯滾動(terminal.integrated.stickyScroll.enabled)現在會在命令被截斷並在末尾顯示省略號時顯示。

配置最後一個終端關閉時的行為
新的 terminal.integrated.hideOnLastClosed 設定允許配置當最後一個終端關閉時是否關閉面板。此外,沒有開啟終端時的體驗也得到了改善。
任務
列號變數
新的 ${columnNumber} 變數可以在 tasks.json 和 launch.json 中使用,以引用游標位置的列號。請參閱 VS Code 文件中的變數完整列表。
除錯
在值上過濾和搜尋
您現在可以在檢視中搜索(⌥⌘F (Windows, Linux Ctrl+Alt+F)),在“Variables”和“Watch”檢視中過濾變數和表示式的值,而不僅僅是名稱。

在除錯控制檯中選擇
除錯控制檯現在支援更長、更可靠的內容選擇,從而方便複製和貼上。
JavaScript 偵錯程式
指令碼現在可以使用命令面板或編輯器操作中的 Debug: Pretty print for debugging 命令進行美化列印,即使它們不是偵錯程式當前暫停的源。
語言
TypeScript 5.7.3
此版本包括 TypeScript 5.7.3 恢復版本。此小更新修復了一些匯入錯誤和迴歸。
右鍵單擊以從 Markdown 預覽中開啟圖片
您現在可以右鍵單擊 Markdown 預覽中的工作區圖片,然後選擇 Open Image 在新編輯器中開啟它。

這支援當前工作區中的任何圖片。
Markdown 連結驗證狀態項
VS Code 內建的 Markdown 功能支援自動驗證本地檔案和圖片的連結。這是捕獲常見錯誤(例如,連結到已重新命名或不再存在於磁碟上的標題或檔案)的好方法。
為了幫助您發現此功能,我們為連結驗證添加了一個新的語言狀態項。

開啟 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 身份驗證會話的推薦方式。此外,它的速度更快,因為我們可以利用您已登入到作業系統的帳戶。

如果您在此新流程中遇到任何問題,請告知我們。如果您遇到重大問題並需要恢復到舊的 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 觸發測試發現時,您現在可以取消正在進行的測試發現呼叫。使用在發現過程中替換“重新整理”按鈕出現的“取消”按鈕。

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

AI 程式碼操作:生成符號(實驗性)
有一個新的實驗性 AI 程式碼操作,用於使用 Pylance 和 Copilot 生成符號。要嘗試它,您可以啟用以下設定
"python.analysis.aiCodeActions": {"generateSymbol": true}
然後,一旦您定義了一個新符號,例如一個類或函式,您就可以選擇 **使用 Copilot 生成符號** 程式碼操作,讓 Copilot 處理實現!如果您願意,可以使用 Pylance 的 **移動符號** 程式碼操作將其移動到另一個檔案。
GitHub 拉取請求和議題
GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:
- 全域性拉取請求查詢,並帶有一個變數來指定相對於今天的日期範圍(
${today-7d})。 - 註釋中現在支援
:風格的表情符號。: - 當您開啟一個未簽出的拉取請求的描述時,所有未過期的註釋都將顯示在“註釋”面板中。
檢視擴充套件的 0.104.0 版本的 發行日志,瞭解其他亮點。
預覽功能
代理模式(實驗性)
我們一直在為 Copilot Edits 開發一種新的*代理模式*。在代理模式下,Copilot 可以自動在您的工作區中搜索相關上下文,編輯檔案,檢查錯誤,並(經您許可)執行終端命令來端到端完成任務。

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

在代理模式下,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 幫助您解決問題。

您現在可以使用多種方法附加影像
- 從您的作業系統或資源管理器檢視拖放影像
- 從剪貼簿貼上影像
- 附加 VS Code 視窗的螢幕截圖(選擇“附加” >“螢幕截圖視窗”)
如果選定的模型當前不具備處理影像的能力,將顯示警告。目前唯一支援的模型是 GPT 4o。當前支援的影像型別為 JPEG/JPG、PNG、GIF 和 WEBP。
可重用提示(實驗性)
此功能允許您構建、儲存和共享可重用的提示。提示檔案是一個 .prompt.md Markdown 檔案,其格式與編寫 Copilot Chat 提示的格式相同,它可以連結到其他檔案甚至其他提示。您可以附加提示檔案以提供任務特定指導、輔助程式碼生成或保留完整的提示以供以後使用。
要啟用提示檔案,請將 chat.promptFiles 設定為 true,或使用 { "/path/to/folder": boolean } 表示法指定其他路徑。如果未指定其他路徑,則預設使用 .github/prompts 資料夾來查詢提示檔案(*.prompt.md)。
在 VS Code 文件中瞭解有關 提示檔案 的更多資訊。
Linux 上的自定義標題欄(實驗性)
在此里程碑中,我們開始了一項實驗,為一部分 Linux 使用者啟用自定義標題欄。

如果您不屬於實驗物件,您可以手動將 window.titleBarStyle 配置為 custom 來試用。
您可以隨時透過自定義標題上下文選單或將 window.titleBarStyle 配置為 native 來恢復到原生標題裝飾。

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)提供上下文操作和資訊。
- 提高了命令的引數意識,包括:
code、code-insiders、cd、ls、rm、echo、mkdir、rmdir、touch。 - 將命令或資源路徑顯示為附加詳細資訊。
- 添加了對目錄導航快捷方式的支援,例如
.、..和../../。 - 啟用了螢幕閱讀器使用。
- 從
$PATH中提取的條目現在僅在它們是可執行檔案時顯示。由於 Windows 在檔案元資料中沒有可執行位概念,因此可以透過 terminal.integrated.suggest.windowsExecutableExtensions 配置擴充套件列表。它們現在也使用實際的 Shell 環境(如果可用,使用即將推出的建議 API)。 - 增強了鍵盤支援,用於切換詳細資訊(⌃Space(Windows、Linux Ctrl+Space))和切換建議詳細資訊焦點(⌃⌥Space(Windows、Linux Ctrl+Alt+Space))。
- 現在,建議將在每次鍵入時出現,更接近於編輯器中快速建議的工作方式。
- 現在將建議特定於 PowerShell 的全域性補全,例如
Get-ChildItem、Write-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 每天都變得更好!🚀

TypeScript 工作區的資原始檔監視最佳化
已進行一些最佳化,以減少大型 TypeScript 工作區(數千個 TypeScript 檔案或專案)中檔案監視的開銷。具體來說,當開啟此類工作區並初始化監視器時,您應該不再看到 CPU 峰值,或者 CPU 使用率應該會很快穩定下來。
有關更多詳細資訊,請參閱此 VS Code issue。
值得注意的修復
- 160325 按 Ctrl+D 後抑制終端啟動失敗
- 230438 支援內碼表
1125即cp866u - 238577 增加預設視窗大小
- 197377 launch.json 或 tasks.json 中的 workspaceFolder 變數替換應為虛擬檔案系統使用 URI
- 229857 執行“聚焦註釋行”後 a11y 檢視為空
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (starball)
拉取請求
對 vscode 的貢獻
- @Abrifq (Arda Aydın):將“建立新終端”更改為根據終端位置進行聚焦 PR #237404
- @adrianstephens:自定義編輯器預覽 PR #235533
- @andrewsuzuki (Andrew Suzuki):修復 editorBracketHighlight.unexpectedBracket.foreground 的“new Color”字串拼寫錯誤 PR #237236
- @aslezar (Shivam Garg)
- 修復 GLIBC 版本解析錯誤 PR #236082
- feat: 支援自定義 js switch-case 縮排 PR #237069
- @atreids (Aaron Donaldson):chore: 修復 VSIX 進度通知中的拼寫錯誤 PR #238845
- @BABA983 (BABA):使用規範化資源解析自定義編輯器 PR #226614
- @congyuandong (scott):fix: 從 dependenciesSrc 中移除重複的
!**/*.mk條目 PR #236683 - @DetachHead:移除
javascript.inlayHints.enumMemberValues.enabled,因為 JavaScript 沒有列舉 PR #236297 - @devm33 (Devraj Mehta):使用 Electron fetch 或 Node fetch 進行 github-authentication 以支援代理 PR #238149
- @dmitrysonder (Dmitry Sonder):重構:使用 EventType 常量處理事件 PR #236941
- @fa0311 (ふぁ):修復 ${unixTime} 佔位符以在 markdown.copyFiles.destination 中使用完整的毫秒時間戳 PR #239061
- @g122622:檔案選單的捲軸顯示在“最近開啟”之上 PR #236998
- @gjsjohnmurray (John Murray):向“開啟的編輯器”檢視的溢位選單新增“配置”選項 PR #237678
- @goodmind (andretshurotshka):修復 #44237:在任務中新增列號 PR #65264
- @HD787 (Henry)
- 為 markdown.copyFiles.destination 選項新增 ${unixTime} 佔位符 PR #238027
- 僅在開啟配置檔案時啟用 TypeScript 命令 PR #238630
- @iamdereky (Derek Yang):修復使用 HTML 轉義引號時的 CSS 錯誤 PR #235367
- @jakebailey (Jake Bailey):從 tsconfig.base.json 中刪除路徑 PR #238475
- @janajar (Jawad Najar):修復:搜尋編輯器中沒有結果時會丟擲錯誤 PR #235031
- @jaymroy:Issue: #214481 新增忽略程式碼塊到文字轉語音的選項 PR #235697
- @jogibear9988 (Jochen Kühner):在影像預覽中支援 SVG PR #237217
- @Jules-Bertholet (Jules Bertholet):在預設快捷方式中支援後退和前進鍵 PR #237701
- @Legend-Master (Tony):重新提交修復,自定義任務 Shell 在未手動傳遞“執行命令”引數/標誌時不起作用 PR #236058
- @LemmusLemmus:在 Markdown 中為 $ 新增周圍配對 PR #233981
- @leopardracer (leopardracer):fix: 文件檔案中的拼寫錯誤 PR #235968
- @misode (Misode):修復載入 json schema 時缺失的 uri 到檔案路徑轉換 PR #237275
- @mohankumarelec (mohanram):修復 #236973 PR #236974
- @notoriousmango (Seong Min Park):在 Markdown 預覽中新增“開啟影像”上下文 PR #234649
- @numbermaniac:修復 InlayHintKind 文件中的拼寫錯誤 PR #238032
- @oltolm (oltolm):debug:停止程序時忽略錯誤 PR #236009
- @oxcened (Alen Ajam)
- fix: 在控制元件失去焦點時將 _lastFocusedWidget 設定為 undefined PR #234610
- fix: 分配 lastFocusedList 時檢查它是否有效 PR #238765
- @pankajk07 (Pankaj Khandelwal):fix: 擴充套件 Web Worker 的同步指令碼載入 PR #233175
- @Parasaran-Python (Parasaran)
- 修復 227150:添加了遞迴 git clone 按鈕 PR #232497
- 修復 235221:透過關閉未關閉的標籤來清理 HTML 內容 PR #236145
- @r3m0t (Tomer Chachamu):修復從偵錯程式中顯示筆記本單元格時停止並顯示活動語句(修復 #225290) PR #225292
- @rcjsuen (Remy Suen):修復圖示擴充套件點幫助文字中的拼寫錯誤 PR #238393
- @RedCMD (RedCMD)
- 修復擴充套件預覽程式碼塊語言獲取器 PR #235880
- 向擴充套件過濾器新增
outdated和recentlyUpdated建議 PR #235884
- @remcohaszing (Remco Haszing)
- 將 bun.lock 標記為 jsonc PR #235917
- 允許 .ndjson 擴充套件用於 jsonl 語言 PR #235921
- @RiskyMH (Michael H):將
bun.lock作為包管理器鎖定檔案 PR #236012 - @sunnylost (sunnylost):fix(settings-editor):確保鍵名寬度不會收縮 PR #229919
- @tcostew:允許 Github Copilot chat 出現在 QuickAccess 中 PR #210805
- @tmm1 (Aman Karmani)
- build:更新以包含更多 tsc 樣板 PR #238422
- build:將
build/tsconfig.json切換到module: nodenextPR #238426
- @tobil4sk:合併分叉的 findExecutable 函式 PR #228373
- @zWingz (zWing):fix(git-ext):修復 limitWarning 阻止 git 狀態進度 PR #226577
對 vscode-eslint 的貢獻
- @ShahinSorkh (Shahin Sorkh):澄清在哪裡設定
eslint.runtime和eslint.execArgv選項 PR #1973
對 vscode-extension-samples 的貢獻
對 vscode-js-debug 的貢獻
- @mdh1418 (Mitchell Hwang):更新 BlazorDebugger 遙測報告事件 PR #2158
對 vscode-jupyter 的貢獻
- @gy-mate (Máté Gyöngyösi):大寫“URL” PR #16340
- @pwang347 (Paul): 為
onDidStart事件新增waitUntilPR #16375
對 vscode-loc 的貢獻
- @NicoWeio (Nicolai Weitkemper): 改進 README 中的語法 PR #1367
對 vscode-prompt-tsx 的貢獻
對 vscode-pull-request-github 的貢獻
- @mikeseese (Mike Seese): 新增始終提示要建立問題的儲存庫的選項,並向問題檔案新增指定儲存庫的註釋 PR #6115
- @NellyWhads (Nelly Whads): 移除 python 語言使用者提及的例外 PR #6525
- @Ronny-zzl (Zhang): 在 jsx 和 tsx 檔案中的 JSDoc 中不顯示 @提及使用者的懸停卡片 PR #6531
對 vscode-pylint 的貢獻
- @DetachHead: 解決 pylint bug 導致的記憶體洩漏的變通方法 PR #585
對 vscode-python-debugger 的貢獻
對 vscode-ripgrep 的貢獻
- @fiji-flo (Florian Dieminger): 修復長時間下載 PR #62
- @tmm1 (Aman Karmani): arm64 Windows 的修復 PR #63
對 vscode-test 的貢獻
- @kamaal111 (Kamaal Farah): docs: 更新 Github Actions 連結,使其指向示例 PR #297
對 language-server-protocol 的貢獻
- @asukaminato0721 (Asuka Minato): cython-lsp PR #2064
- @catwell (Pierre Chapuis): 新增 Teal LSP PR #2078
- @Enaium (Enaium)
- @g-plane (Pig Fang): 新的語言伺服器:wasm-language-tools PR #2065
- @jcs090218 (Jen-Chieh Shen): chore(_implementors/servers.md): 更新 Ellsp 連結 PR #2073
- @kbwo (Kodai Kabasawa): 在 servers.md 中新增 testing-language-server PR #2076
- @kylebonnici (Kyle Micallef Bonnici): 將 Devicetree LSP 新增到列表中 PR #2085
- @ribru17 (Riley Bruins): 新增 ts_query_ls (Tree-sitter query language server) PR #2068