2025 年 1 月 (版本 1.97)
更新 1.97.1:此更新修復了這些安全問題。
更新 1.97.2:此更新修復了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2025 年 1 月版。此版本中有許多更新,希望您喜歡,其中一些主要亮點包括
- Copilot 下一個編輯建議 (預覽) - Copilot 預測您可能進行的下一個編輯。
- 重新定位命令面板 - 將命令面板和快速輸入拖動到新位置。
- 自動接受編輯 - 在可配置的超時後自動接受 Copilot 的編輯。
- 擴充套件釋出者信任 - 透過擴充套件釋出者信任確保您的環境安全。
- 複合日誌 - 將多個日誌組合成一個聚合日誌檢視。
- 篩選輸出日誌 - 篩選“輸出”面板的內容。
- Git blame 資訊 - 豐富的 Git blame 資訊並在 GitHub 上開啟。
- 在除錯變數中搜索值 - 在除錯變數中篩選和搜尋特定值。
- Notebook 內聯值 - 在 Notebook 中檢視程式碼單元格變數的內聯值。
- 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 正在迅速發展,我們迫不及待地希望透過 我們的倉庫 中的問題獲取您的反饋。隨著我們擴充套件 NES 體驗,您可以閱讀我們的完整 Copilot NES 文件 以獲取更多資訊和場景。
注意:如果您是 Copilot Business 或 Enterprise 使用者,除了在編輯器中設定 github.copilot.nextEditSuggestions.enabled 之外,您組織的管理員還必須選擇加入使用 Copilot “編輯器預覽功能”。
Copilot 編輯
Copilot 編輯正式釋出
在 VS Code 10 月版中,我們宣佈了 Copilot Edits 的預覽版。今天,我們正式宣佈 Copilot Edits 正式釋出!Copilot Edits 經過程式碼編輯最佳化,使您能夠直接從聊天中對工作區中的多個檔案進行程式碼更改。
改進的編輯器控制元件
現在可以單獨接受和放棄編輯,為您提供更多控制。此外,新功能是,切換到並排檢視時,編輯的編輯器控制元件仍然可見。這對於理解較大的更改很有用。
主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)
最後,我們添加了一個新設定,用於在可配置的超時後自動接受編輯建議。該設定為 chat.editing.autoAcceptDelay,它指定了更改被接受的秒數。當您與接受按鈕互動或開始審查更改時,倒計時停止。這對於任何在週末熬夜觀看的人來說都應該很熟悉。
主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)
在編輯器中應用
在 Copilot Chat 中,可以使用程式碼塊工具欄中的“應用到編輯器”操作將任何程式碼塊應用到工作區中的檔案。我們對這種體驗進行了一些改進:
-
操作的懸停現在顯示了生成程式碼塊的檔案。
-
如果程式碼塊對應一個不存在的檔案,系統會提示您在哪裡建立檔案。這可以是在 Copilot 建議的檔案路徑中,在無標題編輯器中,或在當前活動的編輯器中。
-
計算並應用更改時,使用與 Copilot Edits 相同的流程和 UI。您可以單獨審查、改進或放棄每個更改。
時間上下文
時間上下文透過向語言模型提供您最近互動過的檔案資訊,幫助編輯或生成程式碼。我們正在試驗和衡量其有效性,但也可以手動啟用,github.copilot.chat.editor.temporalContext.enabled 用於內聯聊天,github.copilot.chat.edits.temporalContext.enabled 用於 Copilot Edits。
工作區索引狀態 UI
當您使用 @workspace
或 #codebase
向 Copilot 提問有關專案中程式碼的問題時,我們使用索引快速準確地搜尋您的程式碼庫,以包含相關程式碼片段作為上下文。此索引可以是由 GitHub 管理的遠端索引、本地儲存的索引,或基本索引,作為無法使用遠端索引的大型專案的備用。
本次迭代中,我們將新的工作區索引新增到了狀態列中的語言狀態指示器中,該指示器顯示了 Copilot 使用的索引型別和相關資訊,例如正在重新索引的檔案數量。要檢視此資訊,只需選擇 VS Code 狀態列中的 {}
圖示。
檢視 Copilot 工作區文件 以獲取有關工作區索引型別以及如何在它們之間切換的更多資訊。
構建遠端工作區索引
遠端工作區索引由 GitHub 管理。遠端索引可以快速提供高質量的結果,即使對於大型專案也是如此。它們也只需要為每個 GitHub 專案構建一次,而不是每個使用者構建一次。
鑑於所有這些優點,我們增加了幾種將專案升級到遠端索引的新方法:
-
執行新的GitHub Copilot: 構建遠端索引命令。
-
在工作區索引狀態 UI 中選擇“構建索引”按鈕。這僅在您的專案符合遠端索引的條件時顯示。
-
在您看到的第一個
@workspace
響應中選擇“構建索引”按鈕。這僅在您的專案符合條件時顯示,並且每個工作區只顯示一次。
請記住,目前只有具有 GitHub 遠端的專案才能使用遠端索引。構建遠端索引可能也需要一些時間,特別是如果您的專案很大。檢視工作區索引狀態 UI 以檢視遠端索引是否已完成。
工作區搜尋改進
我們還繼續最佳化 @workspace
和 #codebase
的程式碼搜尋。亮點包括:
Git 更改上下文變數
現在,在編寫 Chat 或 Edits 的查詢時,可以使用 #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) 和切換差異檢視 的鍵盤快捷鍵。
原始碼管理輔助功能幫助對話方塊
如果當“原始碼管理”檢視處於焦點時呼叫“顯示輔助功能幫助”命令,它將開啟“原始碼管理輔助功能幫助”對話方塊,為螢幕閱讀器使用者提供重要資訊。該對話方塊包含當前原始碼管理狀態的摘要以及有關檢視和如何導航它們的常規資訊。
改進的螢幕閱讀器通知
當檢測到螢幕閱讀器時,相關通知現在包含一個“瞭解更多”連結,提供額外的上下文和資源。
在文字轉語音中忽略程式碼塊
以前,當您使用文字轉語音朗讀 Copilot 響應時,程式碼塊也會被朗讀出來。您可以使用 accessibility.voice.ignoreCodeBlocks 設定從文字轉語音會話中忽略程式碼塊。
工作臺
移動命令面板和快速輸入
現在您可以將命令面板和其他快速輸入移動到新位置,而不是將其固定在視窗頂部。
功能
- 拖放命令面板或任何其他快速輸入,並將其吸附到中心和頂部。
- 重新載入後位置保持不變,允許您為快速輸入設定新的永久位置。
- “自定義佈局”選擇器中提供了預設位置。
信任擴充套件釋出者
首次從釋出者安裝擴充套件時,您現在將看到一個對話方塊,幫助您評估擴充套件釋出者的可信度。此功能有助於確保您只從受信任的來源安裝擴充套件,從而增強開發環境的安全性。
如果安裝擴充套件包或帶有依賴項的擴充套件,信任釋出者也將隱式信任隨之安裝的擴充套件的釋出者。
當您更新到 VS Code 1.97 版本時,當前已安裝擴充套件的釋出者將自動受信任。您可以使用Extensions: Manage Trusted Extensions Publishers命令管理受信任的擴充套件釋出者。此命令允許您重置或撤銷您之前信任的釋出者的信任。
注意:當沒有 VS Code 視窗開啟並且您從 CLI (code-insiders --install-extension pub.name
) 安裝擴充套件時,擴充套件會安裝,但釋出者不會新增到受信任列表中。
有關更多資訊,您可以訪問瞭解更多連結。
輸出面板篩選
現在可以篩選輸出面板的內容,這可以大大改善日誌的管理和分析,尤其是在處理大量日誌資料時。
- 按日誌級別篩選: 根據日誌的嚴重性級別(例如,錯誤、警告、資訊)篩選日誌。這有助於您首先關注最關鍵的問題。
- 按類別篩選: 按特定類別縮小日誌範圍,允許您隔離來自特定源或元件的日誌。類別將從日誌資料中自動獲取。
- 按文字篩選: 在日誌中搜索特定文字以快速查詢相關條目。
複合日誌
有時,您會發現資訊分散在多個日誌中,需要將它們一起檢視才能獲得完整的情況。現在,您可以在一個複合日誌檢視中檢視多個日誌。結合新的篩選功能,分析日誌變得更好了!
要建立自定義複合日誌,請使用“輸出”面板溢位選單中的“建立複合日誌...”操作。
您還可以在編輯器或新的 VS Code 視窗中打開復合日誌,以實現靈活的監控和分析。此功能透過提供相關日誌的合併檢視來提高您診斷問題的能力。
注意: 複合日誌檢視目前不會在 VS Code 重啟後持久化。
匯出和匯入日誌
現在可以使用“輸出”檢視溢位選單中的操作匯出和匯入日誌。此功能透過簡化日誌共享和審查來增強協作和日誌管理。
選擇“輸出”面板溢位選單中相應的“匯出日誌”或“匯入日誌”操作來匯出或匯入日誌。
設定編輯器搜尋修復
本次迭代中,我們修復了一個迴歸問題,即缺少字母的搜尋查詢沒有顯示預期結果。例如,設定編輯器在搜尋“editor formonpast”時找不到 editor.formatOnPaste 設定。
我們還修復了一個問題,即設定編輯器在搜尋期間會顯示目錄,即使它在狹窄的編輯器組中。
主題:淺粉色(在 vscode.dev 上預覽)
擴充套件篩選器增強
為了幫助您跟蹤有可用更新的擴充套件以及查詢最近更新的擴充套件,您現在在“擴充套件”檢視中有了兩個新的篩選選項:@outdated
和 @recentlyUpdated
。
SVG 影像預覽支援
內建影像預覽現在對 SVG 檔案預覽提供基本支援。
請檢視 Visual Studio Marketplace 以獲取更高階的 SVG 預覽擴充套件。
從 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 編輯器裝飾和狀態列專案懸停中添加了一個新命令“在 GitHub 上開啟”。
GitHub 問題和拉取請求引用在時間線、原始碼管理圖以及 Git blame 編輯器裝飾和狀態列專案懸停中以連結形式呈現,以便可以輕鬆地在瀏覽器中開啟。
最後但同樣重要的是,我們還在時間線、原始碼管理圖以及 Git blame 編輯器裝飾和狀態列專案懸停中添加了 GitHub 頭像。使用 github.showAvatar 設定停用 GitHub 頭像的渲染。
原始碼管理圖操作
我們透過將限定於歷史項引用(例如,分支標記)的操作新增到上下文選單,擴充套件了原始碼管理圖檢視的功能。我們新增的第一個操作是檢出、刪除分支和刪除標記,它們允許您直接從原始碼管理圖檢視輕鬆檢出分支/標記、刪除分支和刪除標記。
我們計劃在未來的里程碑中新增更多操作。
Notebook
單元格執行時的內聯值
現在,Notebook 編輯器支援在單元格執行後透過設定 notebook.inlineValues 顯示內聯值。啟用後,在成功執行單元格後,將根據已註冊的 InlineValueProvider
的結果顯示內聯值。
如果沒有提供者,則回退方法透過簡單的正則表示式匹配將核心中找到的值與單元格文件進行匹配。建議使用語言擴充套件提供的提供者以確保更準確的結果。
Markdown 單元格的自定義字體系列
Notebook 編輯器現在支援為渲染的 Markdown 單元格設定自定義字體系列。這可以透過 notebook.markup.fontFamily 設定進行控制。如果留空,則使用預設的 Workbench 字體系列。
終端
連字支援
此功能現在被認為是穩定的。以下是自上一個版本以來的更改摘要:
- 啟用設定已從
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.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)) 以按變數和表示式值進行篩選,而不僅僅是按名稱。
在除錯控制檯中選擇
除錯控制檯現在支援更長、更可靠的內容選擇,從而更容易複製和貼上。
JavaScript 偵錯程式
現在可以使用命令面板或編輯器操作中的“Debug: Pretty print for debugging”命令對指令碼進行美化列印,即使它們不是偵錯程式當前暫停的源。
語言
TypeScript 5.7.3
此版本包含 TypeScript 5.7.3 恢復版本。此次小更新修復了一些匯入錯誤和迴歸。
右鍵單擊以從 Markdown 預覽中開啟影像
您現在可以右鍵單擊 Markdown 預覽中的工作區影像,然後選擇“開啟影像”以在新編輯器中開啟它。
這適用於當前工作區中的任何影像。
Markdown 連結驗證狀態項
VS Code 的內建 Markdown 功能支援自動驗證到檔案和影像的本地連結。這是發現常見錯誤的好方法,例如連結到已重新命名或磁碟上不再存在的檔案。
為了幫助您發現此功能,我們為連結驗證添加了一個新的語言狀態項:
開啟 Markdown 檔案後,選擇狀態列中的 {}
以檢視連結驗證狀態。您還可以使用狀態項快速開啟和關閉連結驗證。
新的 Ruby 語法高亮語法
我們已放棄舊的、未維護的 Ruby 語法 (來自 textmate/ruby.tmbundle
),現在我們的 Ruby 語法來自 Shopify/ruby-lsp
。
遠端開發
遠端開發擴充套件 允許您將 開發容器、透過 SSH 的遠端計算機或 遠端隧道,或 適用於 Linux 的 Windows 子系統 (WSL) 用作功能齊全的開發環境。
亮點包括:
- 連線到 Linux 舊版伺服器的遷移路徑
- SSH 聊天參與者改進
- SSH 配置改進
- SSH 的預設遠端擴充套件
您可以在 遠端開發發行說明 中瞭解有關這些功能的更多資訊。
對擴充套件的貢獻
Microsoft 帳戶
Microsoft 帳戶現在使用 MSAL (在 Windows 上支援 WAM)
注意:上個月推出的基於 MSAL 的 Microsoft 身份驗證由於一個關鍵錯誤而不得不回滾。此錯誤已修復,我們正在繼續推廣。
為了確保 Microsoft 身份驗證的強大安全基線,我們已在 Microsoft 帳戶擴充套件中採用了 Microsoft 身份驗證庫。
這項工作的突出特點之一是 WAM (Web 帳戶管理器...也稱為 Broker) 整合。簡而言之,我們現在不再透過瀏覽器進行 Microsoft 身份驗證流,而是直接與作業系統通訊,這是獲取 Microsoft 身份驗證會話的推薦方式。此外,它更快,因為我們能夠利用您已在作業系統中登入的帳戶。
如果您發現此新流程有任何問題,請告訴我們。如果您確實發現重大問題並需要恢復到舊的 Microsoft 身份驗證行為,您可以使用 microsoft-authentication.implementation (將其設定為 classic
,並重新啟動 VS Code) 來實現,但請記住此設定不會再存在很長時間。因此,如果您在 MSAL 流程中遇到問題,請提出問題。
Python
從終端啟動本機 REPL
您現在能夠從終端中的 REPL 啟動 VS Code Native REPL。將 python.terminal.shellIntegration.enabled 設定為 true
應在終端中的 Python REPL 中顯示一個可點選的連結,允許您直接從終端開啟 VS Code Native REPL。
無配置除錯
您現在可以直接從終端除錯 Python 指令碼或模組,無需設定,作為新的無配置除錯功能的一部分!檢視有關該功能的wiki 頁面,瞭解所有詳細資訊和故障排除提示。
測試發現取消
當從“測試資源管理器”UI 觸發測試發現時,您現在可以取消正在進行的測試發現呼叫。在發現期間,使用“取消”按鈕,它會替換“重新整理”按鈕。
轉到實現
Pylance 現在支援轉到實現,它允許您從函式或方法的用法直接更快地導航到其實現。當使用繼承類時,這是一個特別有用的功能。
AI 程式碼操作:生成符號 (實驗性)
有一個新的實驗性 AI 程式碼操作,用於使用 Pylance 和 Copilot 生成符號。要試用它,您可以啟用以下設定:
"python.analysis.aiCodeActions": {"generateSymbol": true}
然後,一旦您定義了一個新符號,例如類或函式,您可以選擇“使用 Copilot 生成符號”程式碼操作,讓 Copilot 處理實現!如果您願意,您可以使用 Pylance 的“移動符號”程式碼操作將其移動到不同的檔案。
GitHub 拉取請求和議題
GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:
- 全域性拉取請求查詢,帶有一個變數,用於指定相對於今天的日期範圍 (
${today-7d}
)。 - 現在註釋中支援
:<emoji-name>:
樣式的表情符號。 - 當您開啟未檢出的拉取請求的描述時,所有非過時評論都將顯示在評論面板中。
檢視擴充套件 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 啟用它,並請與我們分享任何反饋。
VS Code Insiders 中的 Copilot Vision (預覽)
我們正在 VS Code Insiders 的 GitHub Copilot Chat 預釋出版本中引入端到端視覺支援。這允許您在 Copilot Chat 提示中附加影像並與影像互動。例如,如果您在除錯時遇到錯誤,可以快速附加 VS Code 的螢幕截圖並請求 Copilot 幫助您解決問題。
您現在可以使用多種方法附加影像:
- 從作業系統或“資源管理器”檢視中拖放影像。
- 從剪貼簿貼上影像。
- 附加 VS Code 視窗的螢幕截圖(選擇“附加”>“螢幕截圖視窗”)。
如果所選模型目前不具備處理影像的能力,則會顯示警告。目前唯一支援的模型將是 GPT 4o
。目前,支援的影像型別為 JPEG/JPG
、PNG
、GIF
和 WEBP
。
可複用提示 (實驗性)
此功能允許您構建、儲存和共享可複用提示。提示檔案是遵循 Copilot Chat 中編寫提示的相同格式的 .prompt.md
Markdown 檔案,它可以連結到其他檔案甚至其他提示。您可以附加提示檔案以獲取特定任務的指導、輔助程式碼生成或保留完整的提示以供以後使用。
要啟用提示檔案,請將 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 問題中告訴我們您的想法。
可以在我們的終端建議擴充套件中找到一個示例,該擴充套件在透過 terminal.integrated.suggest.enabled 啟用時提供補全。
終端 Shell 型別
擴充套件將能夠訪問當前活動的 shell 型別資訊。shellType
欄位將是 TerminalState
的一部分。
使用此 shell 型別資訊執行您需要的 shell 特定操作。
工程
內務管理
作為我們每年 12 月的內務管理工作的一部分,我們專注於清理所有倉庫中的 GitHub 問題和拉取請求。今年,我們淨減少了 3,821 個問題和拉取請求,確保我們的積壓工作保持相關性和可管理性。
透過遵循我們的問題清理指南,我們審查並分類了過時、重複且不再相關的問題。這有助於我們保持高效的開發工作流程,並專注於為使用者改進 Visual Studio Code。
感謝社群的持續參與和反饋——您的貢獻讓 VS Code 每天都變得更好!🚀
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 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (starball)
拉取請求
對 vscode
的貢獻
- @Abrifq (Arda Aydın):將
Create New Terminal
更改為根據終端位置相應地聚焦 PR #237404 - @adrianstephens:自定義編輯器預覽 PR #235533
- @andrewsuzuki (Andrew Suzuki):修復 editorBracketHighlight.unexpectedBracket.foreground 的 'new Color' 字串拼寫錯誤 PR #237236
- @aslezar (Shivam Garg)
- 修復不正確的 GLIBC 版本解析 PR #236082
- 功能:支援自定義 js switch-case 縮排 PR #237069
- @atreids (Aaron Donaldson):雜項:修復 VSIX 進度通知中的拼寫錯誤 PR #238845
- @BABA983 (BABA):使用規範資源解析自定義編輯器 PR #226614
- @congyuandong (scott):修復:刪除 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:問題:#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):修復:文件檔案中的拼寫錯誤 PR #235968
- @misode (Misode):修復載入 json schema 時缺少 uri 到檔案路徑轉換的問題 PR #237275
- @mohankumarelec (mohanram):修復 #236973 PR #236974
- @notoriousmango (Seong Min Park):在 markdown 預覽中新增“開啟影像”上下文 PR #234649
- @numbermaniac:修復 InlayHintKind docs 中的拼寫錯誤 PR #238032
- @oltolm (oltolm):除錯:停止程序時忽略錯誤 PR #236009
- @oxcened (Alen Ajam)
- 修復:在小部件失焦時將 _lastFocusedWidget 設定為 undefined PR #234610
- 修復:分配時檢查 lastFocusedList 是否有效 PR #238765
- @pankajk07 (Pankaj Khandelwal):修復:來自擴充套件的 web worker 的同步指令碼載入 PR #233175
- @Parasaran-Python (Parasaran)
- 修復 227150:添加了遞迴 git 克隆按鈕 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):修復(settings-editor):確保鍵名的寬度不會縮小 PR #229919
- @tcostew:允許 Github Copilot 聊天出現在快速訪問中 PR #210805
- @tmm1 (Aman Karmani)
- 構建:更新以包含更多 tsc 樣板 PR #238422
- 構建:將
build/tsconfig.json
切換到module: nodenext
PR #238426
- @tobil4sk:合併發散的 findExecutable 函式 PR #228373
- @zWingz (zWing): fix(git-ext): 修復 limitWarning 阻止 git status 進度 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
事件新增waitUntil
PR #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): 文件:更新 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): 雜項(_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 查詢語言伺服器) PR #2068