2025 年 1 月 (版本 1.97)
更新 1.97.1:此更新解決了這些安全性問題。
更新 1.97.2:此更新解決了這些問題。
下載:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2025 年 1 月發行版本。此版本包含許多更新,希望您會喜歡,其中一些重點包括
- 下一個編輯建議 (預覽) - Copilot 預測您可能進行的下一個編輯。
- 重新定位命令面板 - 將命令面板和快速輸入拖曳到新的位置。
- 自動接受編輯 - 在可設定的逾時後,自動接受來自 Copilot 的編輯。
- 信任擴充功能發行者 - 透過信任擴充功能發行者,確保您的環境安全。
- 複合記錄 - 將多個記錄合併到單一彙總記錄檢視中。
- 篩選輸出記錄 - 篩選「輸出」面板的內容。
- Git 追蹤資訊 - 豐富的 git 追蹤資訊,並在 GitHub 上開啟。
- 在偵錯變數中搜尋值 - 在偵錯變數中篩選和搜尋特定值。
- 筆記本內嵌值 - 在筆記本中檢視程式碼儲存格變數的內嵌值。
- Python 無設定偵錯 - 快速偵錯 Python 腳本或模組,無需設定。
如果您想在線上閱讀這些版本資訊,請前往 Updates 上的 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 聊天中,可以使用程式碼區塊工具列中的 套用至編輯器 動作,將任何程式碼區塊套用至工作區中的檔案。我們對此體驗進行了一些改進
-
動作的 hover 現在會顯示程式碼區塊是為哪個檔案產生的。
-
如果程式碼區塊適用於不存在的檔案,系統會提示您要在何處建立檔案。這可以在 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:建立遠端索引 命令。
-
選取 工作區索引狀態 UI 中的「建立索引」按鈕。這只會在您的專案符合遠端索引的資格時顯示。
-
選取您看到的第一個
@workspace
回應中的「建立索引」按鈕。這只會在您的專案符合資格時顯示,並且每個工作區只顯示一次。
請記住,目前只有具有 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
您可以從命令面板執行 說明:列出訊號音效 命令來預覽這些更新。
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) 和切換差異檢視 引入了鍵盤快速鍵。
原始碼控制協助工具說明對話方塊
如果您在焦點位於「原始碼控制」檢視時叫用 顯示協助工具說明 命令,它會開啟「原始碼控制協助工具說明」對話方塊,以提供螢幕閱讀器使用者重要的資訊。此對話方塊包含目前原始碼控制狀態的摘要,以及有關檢視和如何導覽它們的一般資訊。
改良的螢幕閱讀器通知
偵測到螢幕閱讀器時,相關通知現在包含一個連結以深入了解,提供額外的內容和資源。
在文字轉語音中忽略程式碼區塊
先前,當您使用文字轉語音來讀出 Copilot 回應時,也會大聲讀出程式碼區塊。您可以使用 accessibility.voice.ignoreCodeBlocks 設定,從文字轉語音工作階段中忽略程式碼區塊。
工作台
移動命令面板和快速輸入
您現在可以將命令面板和其他快速輸入移動到新的位置,而不是將其固定在視窗頂端。
功能
- 拖曳並放置命令面板或任何其他快速輸入,並捕捉到中心和頂端
- 跨重新載入保存位置,讓您可以為快速輸入設定新的永久位置
- 預設位置可在「自訂版面配置」選擇器中使用
信任擴充功能發行者
當您第一次從發行者安裝擴充功能時,您現在會看到一個對話方塊,協助您評估擴充功能發行者的可信度。此功能有助於確保您僅從受信任的來源安裝擴充功能,從而增強開發環境的安全性。
如果您安裝擴充功能套件或具有相依性的擴充功能,信任發行者也會隱含地信任與其一起安裝的擴充功能的發行者。
當您更新到 VS Code 1.97 版本時,目前已安裝的擴充功能的發行者會自動受到信任。您可以使用 擴充功能:管理受信任的擴充功能發行者 命令來管理受信任的擴充功能發行者。此命令可讓您重設或撤銷先前信任的發行者的信任。
注意:當沒有 VS Code 視窗開啟,且您從 CLI 安裝擴充功能 (code-insiders --install-extension pub.name
) 時,擴充功能會安裝,但發行者不會新增至受信任的清單。
如需更多資訊,您可以造訪 深入了解 連結。
輸出面板篩選
您現在可以篩選「輸出」面板的內容,這可以大幅改善記錄的管理和分析,尤其是在您必須處理大量記錄資料時。
- 依記錄層級篩選: 依記錄的嚴重性層級篩選記錄 (例如,「錯誤」、「警告」、「資訊」)。這可協助您優先關注最關鍵的問題。
- 依類別篩選: 依特定類別縮小記錄範圍,讓您可以隔離來自特定來源或元件的記錄。類別會從記錄資料中自動擷取。
- 依文字篩選: 在記錄中搜尋特定文字,以快速找到相關的項目。
複合記錄
有時您會發現資訊分散在多個記錄中,而您需要一起檢視它們才能獲得完整的畫面。您現在可以在單一複合記錄檢視中檢視多個記錄。將此與新的 篩選 功能結合使用,分析記錄變得更加容易!
若要建立自訂複合記錄,請使用「輸出」面板溢位功能表中的 建立複合記錄... 動作。
您也可以在編輯器或新的 VS Code 視窗中開啟複合記錄,以進行彈性的監視和分析。此功能透過提供相關記錄的整合檢視,提高您診斷問題的能力。
注意: 複合記錄檢視目前不會跨 VS Code 重新啟動保存。
匯出和匯入記錄
您現在可以使用「輸出」檢視溢位功能表中的動作來匯出和匯入記錄。此功能透過讓您輕鬆共用和檢閱記錄,增強了協作和記錄管理。
選取「輸出」面板溢位功能表中對應的 匯出記錄 或 匯入記錄 動作,以匯出或匯入記錄。
設定編輯器搜尋修正
在此迭代中,我們修正了一個迴歸問題,即缺少字母的搜尋查詢未顯示預期的結果。例如,當您搜尋 "editor formonpast" 時,「設定」編輯器找不到 editor.formatOnPaste 設定。
我們也修正了一個問題,即「設定」編輯器即使在狹窄的編輯器群組中也會在搜尋期間顯示目錄。
佈景主題:Light Pink (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 追蹤資訊
在此里程碑中,我們繼續完善在編輯器和狀態列中顯示 git 追蹤資訊的功能。我們也改進了當您將滑鼠停留在編輯器裝飾或狀態列項目上方時顯示的資訊。
git 追蹤狀態列項目現在預設為啟用,您可以使用 git.blame.statusBarItem.enabled 設定停用它。使用 git.blame.editorDecoration.enabled 設定啟用 git 追蹤編輯器裝飾。
我們也新增了命令,可透過使用命令面板或使用鍵盤快速鍵輕鬆切換 git 追蹤資訊:Git:切換 Git 追蹤編輯器裝飾 和 Git:切換 Git 追蹤狀態列項目。
GitHub 存放庫
對於託管在 GitHub 上的存放庫,我們在時間軸內容功能表和 hover、原始碼控制圖形內容功能表和 hover,以及 git 追蹤編輯器裝飾和狀態列項目 hover 中新增了一個新的命令,在 GitHub 上開啟。
GitHub 問題和提取要求參考會在時間軸、原始碼控制圖形和 git 追蹤編輯器裝飾和狀態列項目 hover 中呈現為連結,以便可以輕鬆地在瀏覽器中開啟它們。
最後但並非最不重要的一點,我們也在時間軸、原始碼控制圖形和 git 追蹤編輯器裝飾和狀態列項目 hover 中新增了 GitHub avatar。使用 github.showAvatar 設定停用 GitHub avatar 的呈現。
原始碼控制圖形動作
我們透過將範圍限定為歷程記錄項目參考 (例如,分支標籤) 的動作新增至內容功能表,擴展了「原始碼控制圖形」檢視的功能。我們新增的第一個動作是 簽出、刪除分支 和 刪除標籤,讓您可以直接從「原始碼控制圖形」檢視輕鬆簽出分支/標籤、刪除分支和刪除標籤。
我們計劃在即將到來的里程碑中新增更多動作。
筆記本
儲存格執行時的內嵌值
筆記本編輯器現在支援在儲存格執行後顯示內嵌值,並使用設定 notebook.inlineValues。啟用後,在儲存格成功執行後,會根據已註冊 InlineValueProvider
的結果顯示內嵌值。
如果沒有提供者,備用方法會透過簡單的 regex 比對,將核心中找到的值與儲存格文件進行比對。建議使用來自語言擴充功能的提供者,以確保更準確的結果。
Markdown 儲存格的自訂字型系列
筆記本編輯器現在支援為呈現的 Markdown 儲存格設定自訂字型系列。這可以使用 notebook.markup.fontFamily 設定來控制。如果留空,則會使用預設工作台字型系列。
終端機
連字支援
此功能現在被視為穩定。以下是自上個版本以來的變更摘要
- 啟用設定已從
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 偵錯工具
即使指令碼不是偵錯工具目前暫停的來源,現在也可以使用命令面板或編輯器動作中的 偵錯:美化列印以進行偵錯 命令來美化列印指令碼。
語言
TypeScript 5.7.3
此版本包含 TypeScript 5.7.3 修復版本。此小更新修正了一些匯入錯誤和迴歸。
在 Markdown 預覽中按一下滑鼠右鍵以開啟影像
您現在可以按一下 Markdown 預覽中的工作區影像,然後選取 開啟影像,以在新的編輯器中開啟它。
這適用於屬於目前工作區的任何影像。
Markdown 連結驗證狀態項目
VS Code 內建的 Markdown 功能支援自動驗證檔案和圖片的本地連結。這是一個很棒的方式來捕捉常見的錯誤,例如連結到已重新命名的標題,或是連結到磁碟上已不存在的檔案。
為了幫助您發現此功能,我們為連結驗證新增了一個新的語言狀態項目
在開啟 Markdown 檔案的情況下,選取狀態列中的 {}
以檢視連結驗證狀態。您也可以使用此狀態項目來快速切換連結驗證的開啟和關閉。
全新的 Ruby 語法突顯語法
我們已從舊的、未維護的 textmate/ruby.tmbundle
Ruby 語法轉移,現在改從 Shopify/ruby-lsp
取得 Ruby 語法。
遠端開發
Remote Development 擴充功能讓您可以使用 Dev Container、透過 SSH 連線的遠端機器或 Remote Tunnels,或是 Windows Subsystem for Linux (WSL) 作為功能完整的開發環境。
重點功能包括
- 連線至舊版 Linux 伺服器的遷移路徑
- SSH Chat 參與者改進
- SSH 設定改進
- SSH 的預設遠端擴充功能
您可以在Remote Development 版本發行說明中瞭解更多關於這些功能的資訊。
擴充功能貢獻
Microsoft 帳戶
Microsoft 帳戶現在使用 MSAL (在 Windows 上支援 WAM)
注意:上個月基於 MSAL 的 Microsoft 驗證的推出,由於一個重大錯誤需要回溯。此錯誤已修復,我們正繼續進行推出。
為了確保 Microsoft 驗證的強大安全基準,我們在 Microsoft Account 擴充功能中採用了 Microsoft Authentication Library。
這項工作的一大亮點是 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 Pull Requests 和 Issues
在 GitHub Pull Requests 擴充功能上取得了更多進展,該擴充功能讓您可以處理、建立和管理 pull request 和 issue。新功能包括
- 全域 pull request 查詢,具有指定相對於今天的時間範圍的變數 (
${today-7d}
)。 - 現在在註解中支援
:<emoji-name>:
樣式的表情符號。 - 當您開啟未簽出的 pull request 的描述時,所有非過時的註解都會顯示在註解面板中。
檢閱擴充功能 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
。
可重複使用的提示 (實驗性)
此功能讓您可以建立、儲存和分享可重複使用的提示。提示檔案是一個 .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 設定擴充功能列表。這些現在也使用即將推出的建議 API 在可用時使用實際的 shell 環境。 - 增強的鍵盤支援,可切換詳細資訊,⌃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 中貼上時更新 import 和在貼上 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 issue 和 pull request。今年,我們淨減少了 3,821 個 issue 和 pull request,確保我們的待辦事項保持相關且易於管理。
透過遵循我們的 issue 清理指南,我們審查和分類了過時、重複且不再相關的 issue。這有助於我們維持有效率的開發工作流程,並專注於為我們的使用者改進 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 執行
focus comment on line
後,a11y 檢視是空白的
感謝
最後但同樣重要的是,非常感謝 VS Code 的貢獻者。
Issue 追蹤
對我們的 issue 追蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
- @starball5 (starball)
Pull request
對 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 沒有 enum PR #236297 - @devm33 (Devraj Mehta): 使用 Electron fetch 或 Node fetch 進行 github-authentication 以支援 proxy PR #238149
- @dmitrysonder (Dmitry Sonder): refactor: 為事件使用 EventType 常數 PR #236941
- @fa0311 (ふぁ): 修復 ${unixTime} Placeholder 以在 markdown.copyFiles.destination 中使用完整毫秒時間戳記 PR #239061
- @g122622: 檔案選單的捲軸顯示在「開啟最近的項目」上方 PR #236998
- @gjsjohnmurray (John Murray): 在「開啟的編輯器」檢視的溢位選單中新增「設定」選項 PR #237678
- @goodmind (andretshurotshka): 修正 #44237: 在 tasks 中新增欄號 PR #65264
- @HD787 (Henry)
- 為 markdown.copyFiles.destination 選項新增 ${unixTime} Placeholder PR #238027
- 僅在開啟設定檔時啟用 typescript 命令 PR #238630
- @iamdereky (Derek Yang): 修復使用 HTML escape 引號時的 CSS 錯誤 PR #235367
- @jakebailey (Jake Bailey): 從 tsconfig.base.json 移除路徑 PR #238475
- @janajar (Jawad Najar): Fix: 當搜尋編輯器中沒有結果時,會拋出錯誤 PR #235031
- @jaymroy: Issue: #214481 新增選項以忽略文字轉語音中的程式碼區塊 PR #235697
- @jogibear9988 (Jochen Kühner): 支援影像預覽中的 svg PR #237217
- @Jules-Bertholet (Jules Bertholet): 在預設快捷鍵中支援返回和前進鍵 PR #237701
- @Legend-Master (Tony): Reland 修復自訂工作 shell 在沒有手動傳入 "run command" 引數/標誌的情況下無法運作的問題 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)
- fix 227150: 新增遞迴 git clone 按鈕 PR #232497
- fix 235221: 透過關閉未封閉的標籤來清理 html 內容 PR #236145
- @r3m0t (Tomer Chachamu): 修復從偵錯工具停止並顯示活動語句中顯示筆記本單元格的問題 (修正 #225290) PR #225292
- @rcjsuen (Remy Suen): 修復圖示擴充點的幫助文字中的錯字 PR #238393
- @RedCMD (RedCMD)
- 修復擴充功能預覽 codeblock 語言 getter PR #235880
- 將
outdated
和recentlyUpdated
建議新增至擴充功能篩選器 PR #235884
- @remcohaszing (Remco Haszing)
- 將 bun.lock 標記為 jsonc PR #235917
- 允許 jsonl 語言使用 .ndjson 擴充功能 PR #235921
- @RiskyMH (Michael H):
bun.lock
作為套件管理器鎖定檔 PR #236012 - @sunnylost (sunnylost): fix(settings-editor): 確保金鑰名稱的寬度不會縮小 PR #229919
- @tcostew: 允許 Github Copilot chat 出現在快速存取中 PR #210805
- @tmm1 (Aman Karmani)
- build: 更新以包含更多 tsc boilerplate PR #238422
- build: 將
build/tsconfig.json
切換為module: nodenext
PR #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
事件新增waitUntil
PR #16375
對 vscode-loc
的貢獻
- @NicoWeio (Nicolai Weitkemper): 改進 README 中的文法 PR #1367
對 vscode-prompt-tsx
的貢獻
對 vscode-pull-request-github
的貢獻
- @mikeseese (Mike Seese): 新增選擇加入以始終提示 issue 建立的儲存庫,並將註解新增至指定儲存庫的 issue 檔案 PR #6115
- @NellyWhads (Nelly Whads): 移除 python 語言使用者提及例外 PR #6525
- @Ronny-zzl (Zhang): 不要顯示 jsx 和 tsx 檔案中 JSDocs 中 @-mentioned 使用者的 hover card 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