2025 年 2 月 (版本 1.98)
更新 1.98.1:本次更新解決了這些 問題。
更新 1.98.2:本次更新解決了這些 問題。
下載:Windows:x64 Arm64 | Mac:通用版 Intel silicon | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2025 年 2 月版本。此版本包含許多更新,希望您會喜歡,其中一些主要亮點包括:
- 下次編輯建議(預覽版) - Copilot 預測您接下來可能進行的編輯。
- 代理模式(預覽版) - Copilot 可自主完成任務。
- Copilot 編輯器支援 Notebook(預覽版) - 快速迭代 Notebook 的編輯。
- Copilot Vision(預覽版) - 在聊天提示中附加和互動式處理影像。
- 程式碼庫搜尋 - 讓 Copilot 為您的聊天提示查詢相關檔案。
- 終端 IntelliSense(預覽版) - 為您的終端提供豐富的補全支援。
- 拖放引用 - 在新編輯器中快速開啟“檢視引用”。
- Linux 自定義標題欄 - Linux 的自定義標題欄支援預設啟用。
- 未解析的診斷(預覽版) - 在提交時帶有未解析診斷的提示。
- 暫存未跟蹤的更改改進 - 將未跟蹤的檔案移至回收站而不是永久刪除。
- 自定義說明(正式釋出) - 使用自定義說明根據您的需求定製 Copilot。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新。Insiders:想盡快嘗試新功能嗎?您可以下載每晚Insiders版本並儘快嘗試最新更新。
GitHub Copilot
Copilot 功能可能經歷不同的早期訪問階段,通常透過設定啟用和配置。
| 階段 | 描述 |
|---|---|
| 實驗性 | 該功能仍在開發中,尚未準備好供普遍使用。 檢視 實驗性功能 ( @tag:experimental)。 |
| 預覽 | 該功能仍在完善中,但已可供使用。歡迎提供反饋。 檢視 預覽功能 ( @tag:preview)。 |
| 穩定 | 該功能已準備好供普遍使用。 |
Copilot 編輯
代理模式改進(實驗性)
上個月,我們在 VS Code Insiders 中為 Copilot 編輯器引入了代理模式。在代理模式下,Copilot 可以自動搜尋您的工作區以獲取相關上下文,編輯檔案,檢查錯誤,並(經您許可)執行終端命令來完成端到端任務。
注意:代理模式今天已在 VS Code Insiders 中提供,我們剛剛開始在VS Code 穩定版中逐步推出。一旦代理模式為您啟用,您將在 Copilot 編輯器檢視中看到一個模式下拉選單 - 只需選擇代理。
本月,我們對工具使用的使用者體驗進行了多項改進。
- 終端命令現在會內聯顯示,因此您可以跟蹤已執行的命令。
- 您可以在執行建議的終端命令之前編輯它們。
- 使用 ⌘Enter (Windows、Linux Ctrl+Enter) 快捷鍵確認終端命令。
代理模式可自主搜尋您的程式碼庫以獲取相關上下文。展開訊息以檢視已執行搜尋的結果。

我們還對代理模式的提示和行為進行了各種改進。
- 聊天中的撤銷和重做操作現在會撤銷或重做聊天響應中進行的最後一次檔案編輯。這對於代理模式很有用,因為您現在可以撤銷模型執行的某些步驟,而無需回滾整個聊天響應。
- 代理模式現在可以自動執行您的構建 任務,或在指示時執行。如果模型執行了不應執行的任務,則可以透過 github.copilot.chat.agent.runTasks 設定停用此功能。
瞭解更多關於 Copilot 編輯器代理模式 或閱讀 代理模式公告部落格文章。
注意:如果您是 Copilot Business 或 Enterprise 使用者,您的組織的管理員 必須選擇加入 使用 Copilot“編輯器預覽功能”才能啟用代理模式。
Copilot 編輯器支援 Notebook(預覽版)
我們正在 VS Code Insiders 中以預覽功能的形式引入 Copilot 編輯器對 Notebook 的支援。現在,您可以使用 Copilot 編輯 Notebook 檔案,獲得與編輯程式碼檔案相同的直觀體驗。從頭開始建立新的 Notebook,跨多個單元格修改內容,插入和刪除單元格,以及更改單元格型別。此預覽功能在處理資料科學或文件 Notebook 時提供了無縫的工作流。
注意:此功能目前僅在安裝了 GitHub Copilot Chat 的預發行版本的 VS Code Insiders 中提供。在將其引入 VS Code 穩定版之前,我們將繼續改進此體驗。
精煉的編輯器整合
我們已打磨 Copilot 編輯器與程式碼和 Notebook 編輯器的整合。
- 應用更改時不再需要滾動。視口保持在原位,從而更容易專注於更改。
- 將編輯審查操作從“接受”重新命名為“保留”,並將“放棄”重新命名為“撤銷”,以更好地反映正在發生的情況。Copilot 編輯器的更改是即時進行的,它們在建立時即可應用和儲存,使用者可以選擇保留或撤銷它們。
- 保留或撤銷檔案後,下一個檔案將自動顯示。
該影片演示了更改如何即時應用和儲存。即時預覽會更新,使用者選擇“保留”更改。還可以撤銷和進一步調整。
重新整理 UI
為統一 Copilot 編輯器和 Copilot Chat 做準備,我們對 Copilot 編輯器進行了重新設計。已附加但尚未傳送的檔案現在會顯示為常規聊天附件。只有 AI 修改過的檔案才會被新增到已更改檔案列表中,該列表位於聊天輸入部分上方。
使用 chat.renderRelatedFiles 設定,您可以啟用獲取相關檔案的建議。相關檔案建議會顯示在聊天附件下方。

移除了 Copilot 編輯器的限制
以前,您最多隻能將 10 個檔案附加到 Copilot 編輯器的提示中。在此版本中,我們取消了此限制。此外,我們還取消了每 10 分鐘 14 次互動的客戶端速率限制。
請注意,伺服器端使用速率限制仍然適用。
自定義說明(正式釋出)
設定:github.copilot.chat.codeGeneration.useInstructionFiles
自定義說明使您可以根據您和您團隊的工作方式定製 GitHub Copilot,以提供聊天響應和程式碼建議。在工作區中的 .github/copilot-instructions.md 檔案中,以 Markdown 格式描述您的特定要求。
在此里程碑中,我們將 .github/copilot-instructions.md 的自定義說明正式釋出。請確保 VS Code 設定 github.copilot.chat.codeGeneration.useInstructionFiles 已啟用,然後 Copilot 將在生成響應時使用這些說明。
瞭解更多關於 Copilot 中的自定義說明。
聊天中的身份驗證流程更順暢
如果您將原始碼託管在 GitHub 儲存庫中,您就可以利用多項功能,包括高階程式碼搜尋、@github 聊天參與者等!
但是,對於私有 GitHub 儲存庫,VS Code 需要許可權才能與 GitHub 上的儲存庫進行互動。有一段時間,這種情況是透過我們通常的 VS Code 身份驗證流程顯示的,當您呼叫某些功能時(例如,詢問 @workspace 或 @github 問題,或使用 #codebase 工具)會彈出一個模態對話方塊。
為了使此體驗更順暢,我們在聊天中引入了此確認

它不僅不像模態對話方塊那樣令人不安,而且還具有新功能:
- 授予:您將像以前一樣透過常規身份驗證流程(透過模態對話方塊)進行。
- 暫不操作:VS Code 會記住您的選擇,在您下次開啟 VS Code 視窗之前不會再打擾您。唯一的例外是,如果某個功能需要此額外許可權才能執行,例如
@github。 - 不再詢問:VS Code 會記住您的選擇,並透過 github.copilot.advanced.authPermissions 設定持久化。任何需要此額外許可權的功能都將失敗。
需要注意的是,此確認不會確認或拒絕 Copilot(服務)訪問您的儲存庫。這僅僅是 VS Code 的 Copilot 體驗如何進行身份驗證。要配置 Copilot 可以訪問的內容,請閱讀有關內容排除的文件 。
Copilot Chat 中更高階的程式碼庫搜尋
設定:github.copilot.chat.codesearch.enabled
當您將 #codebase 新增到 Copilot Chat 查詢中時,Copilot 會幫助您在工作區中查詢與您的聊天提示相關的程式碼。#codebase 現在可以執行文字搜尋和檔案搜尋等工具,以從您的工作區拉取額外上下文。
將 github.copilot.chat.codesearch.enabled 設定為啟用此行為。工具的完整列表是:
- 基於嵌入的語義搜尋
- 文字搜尋
- 檔案搜尋
- Git 修改的檔案
- 專案結構
- 讀取檔案
- 讀取目錄
- 工作區符號搜尋
將問題作為聊天上下文附加
為了幫助修復工作區中的程式碼或其他問題,您現在可以將“問題”面板中的問題附加到您的聊天中作為提示的上下文。
將專案從“問題”面板拖放到“聊天”檢視,在提示中輸入 #problems,或選擇回形針 📎 按鈕。您可以附加特定問題、檔案中所有問題或程式碼庫中所有檔案。
附加資料夾作為上下文
以前,您可以透過從“檔案管理器”檢視拖放來附加資料夾作為上下文。現在,您還可以透過選擇回形針 📎 圖示或在聊天提示中鍵入 #folder: 後跟資料夾名稱來附加資料夾。
下次編輯建議的摺疊模式(預覽版)
設定:
我們為 NES 添加了摺疊模式。當您啟用此模式時,只有 NES 建議指示器會在左側編輯器邊距中顯示。程式碼建議本身僅在您透過按 Tab 導航到它時才會顯示。連續的建議會立即顯示,直到某個建議未被接受。
摺疊模式預設停用,可以透過配置 editor.inlineSuggest.edits.showCollapsed 來啟用,或者您可以在 NES 邊距指示器選單中啟用或停用它。

更改補全模型
您已經可以更改 Copilot Chat 和 Copilot 編輯器的語言模型,現在您還可以更改內聯建議的模型。
或者,您可以透過命令面板中的更改補全模型命令,或標題欄 Copilot 選單中的配置程式碼補全項來更改用於程式碼補全的模型。
注意:可用的模型列表可能會隨時間變化。如果您是 Copilot Business 或 Enterprise 使用者,您的管理員需要透過在 GitHub.com 上的 Copilot 策略設定 中選擇加入
編輯器預覽功能來為您的組織啟用某些模型。
模型可用性
在此版本中,我們為使用 Copilot 添加了更多模型可供選擇。以下模型現在在 Visual Studio Code 和 github.com 聊天中的模型選擇器中可用:
-
GPT 4.5 (預覽版):OpenAI 的最新模型 GPT-4.5 現在可供 Copilot Enterprise 使用者在 GitHub Copilot Chat 中使用。GPT-4.5 是一個大型語言模型,在直覺、寫作風格和廣泛知識方面具有先進的能力。在 GitHub 部落格文章中瞭解有關 GPT-4.5 模型可用性的更多資訊。
-
Claude 3.7 Sonnet (預覽版):Claude 3.7 Sonnet 現在可供所有付費 Copilot 計劃的客戶使用。這款新的 Sonnet 模型支援 Copilot 中的思考模式和非思考模式。在初步測試中,我們觀察到在代理場景下有顯著的改進。在 GitHub 部落格文章中瞭解有關 Claude 3.7 Sonnet 模型可用性的更多資訊。
Copilot Vision (預覽版)
在此版本的 Copilot Chat 中,我們正在快速推出端到端視覺支援。這允許您將影像附加到聊天提示中並與之互動。例如,如果您在除錯時遇到錯誤,請附加 VS Code 的螢幕截圖,並要求 Copilot 幫助您解決問題。您也可以使用它來附加一些 UI 模擬圖,讓 Copilot 提供一些 HTML 和 CSS 來實現該模擬圖。

您可以透過多種方式附加影像:
- 從您的作業系統或“檔案管理器”檢視拖放影像。
- 從剪貼簿貼上影像。
- 附加 VS Code 視窗的螢幕截圖(選擇回形針 📎 按鈕 > 螢幕截圖視窗)。
如果所選模型當前不具備處理該檔案型別的能力,則會顯示警告。目前唯一支援的模型是 GPT 4o,但對 Claude 3.5 Sonnet 和 Gemini 2.0 Flash 的影像附件支援也將在不久後推出。目前支援的影像型別為 JPEG/JPG、PNG、GIF 和 WEBP。
Copilot 狀態概覽(實驗性)
設定:chat.experimental.statusIndicator.enabled
我們正在試驗一個新的集中式 Copilot 狀態概覽,它提供了 Copilot 狀態和關鍵編輯器設定的快速概覽。
- 如果您是 Copilot Free 使用者,則會顯示配額資訊。
- 編輯器相關設定,例如程式碼補全。
- 用於使用其他 Copilot 功能的有用鍵盤快捷鍵。
可以透過狀態列中的 Copilot 圖示訪問此 Copilot 狀態概覽。

透過 chat.experimental.statusIndicator.enabled 設定啟用 Copilot 狀態概覽。
TypeScript 上下文用於內聯補全(實驗性)
設定:chat.languageContext.typescript.enabled
我們正在為 TypeScript 檔案試驗內聯補全和 /fix 命令的增強上下文。該實驗目前僅限於 Insider 版本,可以透過 chat.languageContext.typescript.enabled 設定啟用。
用於生成拉取請求標題和描述的自定義說明
您可以使用 github.copilot.chat.pullRequestDescriptionGeneration.instructions 設定來提供自定義說明,以生成拉取請求標題和描述。您可以將該設定指向工作區中的檔案,或者在設定中直接提供說明。有關如何使用 在 VS Code 中自定義 Copilot 的更多詳細資訊。
以下示例顯示瞭如何在設定中內聯提供自定義說明。
{
"github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
{
"text": "Prefix every PR title with an emoji."
}
]
}
生成標題和描述需要安裝 GitHub Pull Requests 擴充套件。
輔助功能
Copilot 編輯器可訪問性
我們已大大改善 Copilot 編輯器的可訪問性。
- 現在為已修改的檔案以及更改的區域(插入、修改和刪除)提供了音訊訊號。
- 可訪問的差異檢視器現在可用於已修改的檔案。就像在差異編輯器中一樣,選擇 F7 來啟用它。
activeEditorState 視窗標題變數
我們有一個新的 window.title 變數 activeEditorState,用於向螢幕閱讀器使用者指示編輯器資訊,例如修改狀態、問題數量以及檔案是否有待處理的 Copilot 編輯。當處於螢幕閱讀器最佳化模式時,預設會附加此項,並可透過 accessibility.windowTitleOptimized 停用。
工作臺
Linux 自定義標題欄
Linux 上的自定義標題欄現已預設啟用。自定義標題欄為您提供了佈局控制元件、Copilot 選單等。

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

我們很高興收到關於此體驗的持續反饋,並且已經根據現有反饋為未來的里程碑改進此功能。
為輔助側邊欄檢視使用標籤
我們決定更改輔助側邊欄檢視的外觀,使其顯示標籤而不是圖示,這與我們在面板區域中的顯示方式類似。這使得區分不同的檢視更容易,例如Copilot 編輯器和Copilot Chat檢視。您可以透過配置 workbench.secondarySideBar.showLabels 隨時切換回顯示圖示。

新的設定編輯器關鍵字匹配演算法(預覽版)
設定:workbench.settings.useWeightedKeySearch
我們添加了一個新的設定編輯器搜尋演算法,該演算法優先匹配更相關的關鍵字。搜尋演算法嘗試以比以前更多的方式匹配設定 ID 和標籤,但它還會過濾結果,以便只顯示最佳匹配型別。
您可以啟用 workbench.settings.useWeightedKeySearch 設定來試用此預覽功能。
主題:淺粉色(在 vscode.dev 上預覽)
在簡單檔案選擇器中隱藏點檔案的選項
當使用簡單檔案選擇器(無論是連線到遠端伺服器時還是在使用 files.simpleDialog.enable 時)時,您現在可以使用顯示/隱藏點檔案按鈕來隱藏點檔案。

編輯器
檢視引用拖放支援
檢視檢視現在支援拖放。呼叫檢視引用、檢視實現或任何其他檢視命令,然後將條目從其樹形結構拖動以將它們作為單獨的編輯器開啟。
主題:GitHub Light Colorblind (Beta) (在 vscode.dev 上預覽)
出現高亮延遲
編輯器中出現高亮的延遲現在預設為 0。這導致整體編輯器感覺更具響應性。您仍然可以透過 editor.occurrencesHighlightDelay 設定來控制延遲。
原始碼管理
更新的檢視標題
當我們向“原始碼管理”檢視新增原始碼管理圖檢視時,它強調了“原始碼管理”檢視中節標題的重複:“原始碼管理儲存庫”、“原始碼管理”和“原始碼管理圖”。在此里程碑中,我們重新審視了檢視的標題,使其更短,並且不再重複檢視標題:“儲存庫”、“更改”和“圖”。
丟棄未跟蹤的更改改進
設定:git.discardUntrackedChangesToTrash
多年來,我們收到了多起關於資料丟失的報告,因為丟棄未跟蹤的檔案會永久刪除該檔案,即使 VS Code 會顯示一個模態對話方塊清楚地表明檔案將被永久刪除。
從這個里程碑開始,丟棄未跟蹤的檔案將盡可能將檔案移至回收站/垃圾箱,以便檔案可以輕鬆恢復。您可以使用 git.discardUntrackedChangesToTrash 設定停用此功能。

診斷提交鉤子(實驗性)
設定:
在此里程碑中,我們引入了一個新的提交鉤子,當存在未解析的診斷時,會提示您。這目前是一個實驗性功能,可以使用 git.diagnosticsCommitHook.Enabled 設定來啟用。
預設情況下,提交鉤子會提示任何錯誤級別的診斷,但可以使用 git.diagnosticsCommitHook.Sources 設定自定義診斷源和級別。請嘗試一下並告訴我們您的反饋。

Notebook
Notebook 內聯差異檢視(實驗性)
設定:notebook.diff.experimental.toggleInline
您現在可以為 Notebook 啟用內聯差異檢視。此功能使您可以在單個內聯檢視中檢視 Notebook 單元格內的更改,而不是傳統的並排比較。
透過將 notebook.diff.experimental.toggleInline 設定為 true 來啟用此功能。然後,您可以使用右上角的編輯器選單在內聯檢視和差異檢視之間切換。
Notebook 內聯值懸停
Notebook 內聯值現在會截斷其裝飾以適應視口寬度,並提供豐富的懸停功能以顯示完整值,同時保持空格格式。這可以保持資料幀等變數的形狀,使值一目瞭然。

終端 IntelliSense(預覽版)
設定:terminal.integrated.suggest.enabled
透過新增補全規範(例如 git)、最佳化命令列解析以獲得更好的建議以及增強檔案和資料夾補全,我們顯著改進了 bash、zsh、fish 和 PowerShell 的終端 shell 補全。透過 terminal.integrated.suggest.enabled 啟用此功能。
增強的 Fig 補全支援
我們利用 Fig 補全規範為特定 CLI 提供智慧補全。以前我們只有少數這些,但在這次迭代中,我們將以下 CLI 新增到與 VS Code 一起提供的列表中:
- 基本工具:
cat、chmod、chown、cp、curl、df、du、echo、find、grep、head、less、ls、mkdir、more、mv、pwd、rm、rmdir、tail、top、touch、uname - 程序工具:
kill、killall、ps - 包管理器:
apt、brew - Node.js 生態系統:
node、npm、npx、nvm、pnpm、yarn - SCM、語言、編輯器:
git、nano、python、python3、vim - 網路:
scp、ssh、wget
除了新的規範之外,我們現在還支援生成器,它們透過在請求時執行命令來動態生成補全。其中一個例子是為 git checkout 顯示所有分支。
主題:Sapphire(在 vscode.dev 上預覽)
在後臺,這會執行 git --no-optional-locks branch -a --no-color --sort=-committerdate 來獲取分支列表,然後將其處理成補全。類似的方法也用於獲取標籤。
可配置的快速建議
設定:terminal.integrated.suggest.quickSuggestions
與編輯器類似,快速建議是指在輸入任何內容時自動顯示 IntelliSense,而觸發字元是指在輸入某些字元(如 \ 或 -)時顯示。新的 terminal.integrated.suggest.quickSuggestions 設定允許精確控制何時顯示快速建議。
預設值啟用命令和引數的快速建議,現在預設停用,回退到路徑,我們聽說這可能會變得混亂和令人沮喪,因為它們通常不適用。這是預設設定
"terminal.integrated.suggest.quickSuggestions": {
"commands": "on",
"arguments": "on",
"unknown": "off"
}
內聯建議檢測
設定: terminal.integrated.suggest.inlineSuggestion
到目前為止,內聯建議檢測的一個問題是,它與來自不同來源的建議競爭而引入的混淆。特別是,在 shell 中鍵入時經常出現的內聯建議

這些建議實際上是 shell 級別的功能(fish/zsh 中的自動建議,pwsh 中的預測等),使用者可能不清楚,尤其是在與 IntelliSense 並列顯示時。
IntelliSense 功能要求我們檢測此內聯建議,這之前使用了簡單的實現,僅檢查文字是否使用淺色或斜體 SGR 屬性進行樣式設定。事實證明,這不足夠,不僅當用戶自定義樣式時,而且 fish shell 預設也不使用這些樣式。我們現在透過分析命令列上下文和游標位置來檢測大多數情況。
基於這種新的、改進的檢測,內聯建議現在作為頂級選項顯示,並帶有星形圖示,以便更貼近編輯器的行為方式,並使其更清楚在此情況下 kstyle(Tab) 將執行什麼操作。

預設情況下,始終將此建議顯示為頂級建議,但可以透過 terminal.integrated.suggest.inlineSuggestion 進行配置。
詳細的命令補全
bash 和 zsh 內建命令以及 PowerShell 命令的補全現在更加詳細,提供了可用引數的資訊。此資訊來自 shell 的文件或幫助命令。
對於 bash,使用 help <command> 來獲取基本描述

對於 zsh,使用 man zshbuiltins 來獲取詳細描述

對於 PowerShell,補全中顯示了更多 Get-Command 的屬性


改進的排序
命令補全現在具有改進的排序,具體來說
- 包含更多詳細資訊的補全通常會排在不太詳細的補全之上
- 內建命令優先於來自
$PATH的路徑

對於路徑,進行了以下改進
- 以
_開頭的路徑會受到處罰,因為這通常是特殊情況的指示,並且通常不應進行太多更改(例如,__init__.py)。 - 排序時會忽略標點符號,因此以
.開頭的檔案將與其他檔案混合在一起。

CDPATH 支援
設定: terminal.integrated.suggest.cdPath
$CDPATH 環境變數是一個常見的 shell 功能,它包含一個冒號分隔的路徑列表,類似於 $PATH,並允許像它們是相對路徑一樣導航它們,無論當前工作目錄是什麼。Fish 實際上在 cd 標籤補全中顯示 CDPATH 條目

我們現在支援在使用 cd 時顯示 $CDPATH 條目作為補全項

此功能也適用於 Windows(; 分隔符),並且不需要 shell 本身支援該功能,因為預設情況下使用絕對路徑。

使用 terminal.integrated.suggest.cdPath 配置此功能。
絕對路徑
現在支援絕對路徑。


別名支援
bash、zsh 和 fish 的命令別名現在也被檢測到,並具有新的獨特圖示

區分選項和標誌
CLI 選項(有值的)和標誌(無值的)現在透過不同的圖示在 UI 中區分

任務
任務重新執行操作
我們為終端新增了一個 **rerun** 任務操作,⌃⇧R(Windows、Linux Ctrl+Shift+R)。該操作顯示在終端選項卡的內聯工具欄和終端的上下文選單中。
除錯
除錯內聯值懸停
如果啟用了 debug.inlineValues 設定,則內聯值裝飾現在會帶有內聯懸停,從而更容易一目瞭然地讀取較長的值。

語言
TypeScript 5.8
VS Code 現在包含 TypeScript 5.8.2。此主要更新帶來了新的語言改進,包括改進了條件表示式型別的檢查和支援編寫符合 Node 新的 --experimental-strip-types 選項的程式碼。它還包括許多工具改進和錯誤修復。
請檢視TypeScript 5.8 釋出部落格以瞭解此更新的更多詳細資訊。
遠端開發
遠端開發擴充套件允許您透過 SSH 或遠端隧道使用開發容器、遠端機器或適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
亮點包括:
- Linux 舊版伺服器的 EOL
- 擴充套件的代理配置能力
您可以在遠端開發版本說明中瞭解這些功能的更多資訊。
企業支援
多行支援允許的擴充套件
您現在可以使用多行字串在 Windows 上的組策略中配置允許的擴充套件。這允許更靈活和廣泛的允許擴充套件配置。瞭解有關配置允許的擴充套件的更多資訊。
對擴充套件的貢獻
Python
打破長字串時自動插入引號
Pylance 現在支援自動插入引號,以便在打破長字串時獲得無縫體驗。
Pylance 記憶體消耗改進
進行了一些最佳化以提高 Pylance 的記憶體消耗,特別是在處理大型工作區時。此增強功能是對 Pyright(為 Pylance 的語言伺服器功能提供支援的靜態型別檢查器)進行的。
Python Shell 整合改進
修改 python.terminal.shellIntegration.enabled 後,您將不再需要重新載入才能使更改生效。只需建立一個新的終端即可在終端的 Python REPL 中看到所需的更改。
Windows Git Bash 的正確工作區提示
在 Windows 上使用 Git Bash 的 Python 使用者現在將在其終端提示中看到正確的工作目錄。這些更改適用於已選擇加入 pythonTerminalEnvVarActivation 實驗的使用者。
自動測試發現檔案模式的新設定
您現在可以透過在 python.testing.autoTestDiscoverOnSavePattern 設定中指定 glob 模式來精煉自動測試發現發生的檔案的範圍。其預設值設定為 **/*.py。
作為回退從 settings.json 讀取測試除錯配置
我們現在在 settings.json 和 launch.json 檔案中查詢測試除錯配置,從而擴充套件了您定義這些配置的位置。
GitHub 身份驗證
透過採用 Electron fetch 改進了代理支援
GitHub 身份驗證擴充套件現在利用 Electron 的 fetch 版本來發出 Web 請求。這有助於處理某些代理和防火牆設定的使用者。如果您知道自己執行在已設定代理的環境中,並且無法在 VS Code 中進行 GitHub 身份驗證,請隨時建立一個問題!
擴充套件創作
認證
重要提示:我們將
AuthenticationForceNewSessionOptions重新命名為AuthenticationGetSessionPresentationOptions,並暫時保留一個已棄用的AuthenticationForceNewSessionOptions。沒有功能差異,因此這不是執行時中斷性更改,但您應該更新程式碼以使用AuthenticationGetSessionPresentationOptions而不是AuthenticationForceNewSessionOptions,因為它將來會被移除。
檢視這兩個身份驗證呼叫
vscode.authentication.getSession(provider, scopes, { createIfNone: options });
vscode.authentication.getSession(provider, scopes, { forceNewSession: options });
createIfNone 和 forceNewSession 現在將接受 boolean 或 AuthenticationGetSessionPresentationOptions
/**
* Optional options to be used when calling {@link authentication.getSession} with interactive options `forceNewSession` & `createIfNone`.
*/
export interface AuthenticationGetSessionPresentationOptions {
/**
* An optional message that will be displayed to the user when we ask to re-authenticate. Providing additional context
* as to why you are asking a user to re-authenticate can help increase the odds that they will accept.
*/
detail?: string;
}
這是 createIfNone 的新功能,但它是對 forceNewSession 的修改,後者以前接受一個 AuthenticationForceNewSessionOptions,其簽名與新的 AuthenticationGetSessionPresentationOptions 相同。
如果您明確使用了 AuthenticationForceNewSessionOptions,您將看到它被標記為已棄用,並且您應該將其替換為 AuthenticationGetSessionPresentationOptions,因為 AuthenticationForceNewSessionOptions 將在未來的版本中被移除。
重要的是要注意,這裡唯一的變化是型別。沒有執行時更改,因此從這個角度來看,這不是一個破壞性更改。
此外,authLearnMore 提議的 API 已從 AuthenticationForceNewSessionOptions 更新為 AuthenticationGetSessionPresentationOptions。
這是一個利用 detail 和 learnMore 提議的示例

精簡的程式碼片段 API
您現在可以控制插入程式碼片段時的空白字元規範化。這適用於 insertSnippet API 和 SnippetTextEdit API,並控制是否調整程式碼片段其他行的縮排。
const snippet = `This is an indented
snippet`;
// keepWhitespace: false, undefined
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // adjusted indentation
}
// keepWhitespace: true
function indentedFunctionWithSnippet() {
return `This is an indented
snippet`; // original indentation
}
提議的 API
文字編碼
我們添加了新的提議 API 來處理 VS Code 中的文字編碼。
具體來說,這個新 API 允許:
- 獲取
TextDocument的當前encoding - 使用特定的
encoding開啟TextDocument - 使用特定的
encoding將string編碼為Uint8Array - 使用特定的
encoding將Uint8Array解碼為string
嘗試一下,並在這個 GitHub issue 中告訴我們您的想法。
Shell 環境
擴充套件能夠訪問使用者當前啟用的 shell 環境資訊,用於從 VS Code 整合終端開啟的 pwsh、zsh、bash 和 fish shell。這僅在啟用了 terminal.integrated.shellIntegration.enabled 時可用。
使用者可以透過 terminal.integrated.shellIntegration.environmentReporting 來決定是否報告其 shell 環境資訊。
嘗試一下,並在這個 GitHub issue 中告訴我們您的想法。
工程
Electron 34 更新
在本個里程碑中,我們將 Electron 34 更新推廣給我們的穩定版使用者。此次更新包含 Chromium 132.0.6834.196 和 Node.js 20.18.2。我們要感謝所有在 Insiders 版本上進行自我託管並提供早期反饋的人。
macOS 10.15 支援已結束
VS Code 1.97 是支援 macOS 10.15(macOS Catalina)的最後一個版本。有關其他資訊,請參閱我們的常見問題解答。
已棄用物件的開發時跟蹤
VS Code 使用 disposable 模式進行顯式資源管理,例如關閉檔案、清理 DOM 元素或刪除事件監聽器。未釋放資源意味著浪費記憶體,並且記憶體使用量會隨著時間的推移而累積。
我們一直在尋找此類洩漏,並添加了另一個檢測工具。我們使用了FinalizationRegistry API,因為它會通知我們何時物件已被垃圾回收。如果這樣的物件代表了一個未被釋放的 disposable,這意味著我們存在洩漏。這些資訊會被收集並顯示給 VS Code 的開發者,以便我們在進行過程中進行清理。
值得注意的修復
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @albertosantini (Alberto Santini)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
拉取請求
對 vscode 的貢獻
- @a-stewart (Anthony Stewart):Diff 選擇指示器線應使用 menu.separatorBackground 而不是 menu.border PR #228825
- @bchu1 (Bryan Chu):修復 minimap 中的 header 錯位 PR #217581
- @cassidoo (Cassidy Williams):修復 #241903:在 settingsLayout.ts 中新增 GitHub 的覆蓋 PR #241911
- @cdce8p (Marc Mueller):新增 panelTitleBadge 顏色變數 PR #240645
- @cenviity (Vincent Ging Ho Yim):修復
editorOptions.ts中的拼寫錯誤 PR #239929 - @cmbrose (Caleb Brose):更新 chat 的
newEditSession命令以接受輸入提示 PR #241796 - @devm33 (Devraj Mehta):修復:將 electron 新增為 webpack 的外部依賴 PR #239134
- @dmotte (Motte):修復 terminal.integrated.confirmOnExit 的行為 PR #240074
- @dvangonen (Daniil Vangonen):從 body 中移除不必要的類 PR #240633
- @gabritto (Gabriela Araujo Britto):撤銷 "[typescript-language-features] Expandable hover (#_228255)" PR #240011
- @gjsjohnmurray (John Murray)
- 為
scm/resourceGroup/context選單命令提供多選(修復 #92337)PR #192172 - 新增
scmResourceGroupState上下文鍵(#_192009)PR #194804 - SCM - SCM 檢視的簡短標題PR #230693
- 修復鍵盤快捷鍵編輯器中的“顯示使用者鍵盤快捷鍵”選項(修復 #240068)PR #240085
- “新增觸發斷點...”的“OK”大寫錯誤(修復 #240490)PR #240492
- 為
- @hickford (Mickford):在“tunnel user show”中記錄提供程式PR #240692
- @ihavecoke (ihavecoke):將 tab_size 設定限制在 1 到 16 之間PR #228957
- @jakebailey (Jake Bailey):在擴充套件主機開發中保留 --disable-extensionsPR #240415
- @jamestut (James Nugraha):在初始化分詞器之前計算 TextModel 限制PR #240919
- @jeanp413 (Jean Pierre)
- 修復終端拆分檢視 disposable 洩漏PR #241597
- 修復損壞的終端連結懸停,在能夠懸停在內容上之前隱藏PR #241599
- 修復時間線檢視事件監聽器洩漏PR #241607
- @KexyBiscuit (Kexy Biscuit a.k.a. るる):允許檢測 powershell-preview snapPR #240054
- @klaussner (Christian Klaussner):修復 macOS 上的交通燈居中PR #212471
- @naman108 (Natha Paquette):storage URI 文件中的拼寫錯誤PR #241600
- @nknguyenhc (Nguyen):擴充套件詳細內容溢位容器PR #240134
- @notoriousmango (Seong Min Park)
- 使 Command Center 除錯啟動器首先提供最近使用的配置PR #240744
- 採用 Markdown 使用 vscode 日誌輸出通道PR #241342
- @pouyakary (Pouya Kary ✨):Feat:自定義 minimap 部分標題標記檢測 RegExp ✨PR #210271
- @rgrunber (Roland Grunberg):將 adjustWhitespace 暴露給 TextEditor API。PR #234858
- @silamon (Simon Lamon):Diff 編輯器:將
1 files修正為1 filePR #240092 - @simon-id (simon-id):修復:工作區搜尋使用正確的 findMatch 顏色(修復 #237909)PR #237910
- @SimonSiefke (Simon Siefke):修復:設定指示器中的記憶體洩漏PR #236417
- @ssigwart (Stephen Sigwart):修復嘗試縮排時意外的 Tab 補全PR #136572
- @SunsetTechuila (Grigory):feat(commands):新增
insertFinalNewLinePR #241126 - @tcvdh (Thijs van den Heuvel):修復:在重用終端之前等待 clear 命令執行PR #240970
- @terrymun (Terry Mun-Andersen):修復:移除 CONTRIBUTING.md 中多餘的反引號PR #240305
- @tmm1 (Aman Karmani):tsb:修復已刪除後重新新增的原始檔未重新生成的問題PR #238409
- @xymopen (xymopen_Official)
- 將 Node 新增為 npm 指令碼執行器PR #236967
- 將 Node 新增為 npm 指令碼執行器(第二版)PR #240527
- @zardoy (Vitaly):[Git] 遷移到 git autostash 進行拉取以提高效能PR #187850
對 vscode-css-languageservice 的貢獻
- @GauravB159 (Gaurav Bhagchandani):添加了 lab() 和 lch() 顏色預覽PR #306
對 vscode-eslint 的貢獻
- @edemaine (Erik Demaine):探測 Civet 的支援PR #1965
- @mustevenplay (mustevenplay):新增 Typescript 配置檔案檢測PR #1968
對 vscode-hexeditor 的貢獻
- @tomilho (Tomás Silva):將 Hex Compare Selected 移至 Compare Selected 下方PR #561
對 vscode-jupyter 的貢獻
- @thesuperzapper (Mathew Wicks):修復讀取
JUPYTER_RUNTIME_DIR和XDG_RUNTIME_DIRPR #16451
對 vscode-languageserver-node 的貢獻
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán):semaphore.ts 中的小拼寫錯誤PR #1618
- @yf-yang:修復:避免 Dispose 未匹配的處理程式PR #1614
對 vscode-mypy 的貢獻
- @DetachHead
- @hamirmahal (Hamir Mahal):修復:CI 中使用已棄用的
node12PR #336 - @ivirabyan (Ivan Virabyan):新增 dmypy 狀態檔案設定PR #347
對 vscode-pull-request-github 的貢獻
- @christianvuerings (Christian Vuerings):修復使用自定義 SSH 複製 GitHub 永久連結PR #6669
對 vscode-python-debugger 的貢獻
- @TCPsoftware (tcpsoft):將 "args": "${command:pickArgs}" 設定為預設除錯配置PR #548
對 vscode-vsce 的貢獻
- @mohankumarelec (mohanram):更新了 semver 比較PR #1078
- @stevedlawrence (Steve Lawrence):允許生成可復現的 .vsix 包PR #1100
對 debug-adapter-protocol 的貢獻
- @angelozerr (Angelo):新增 IntelliJ / LSP4IJ DAP 支援PR #529
- @samisalreadytaken:在 adapters.md 中新增 Squirrel DebuggerPR #530
- @SpartanJ (Martín Lucas Golini):更新 tools.md 添加了一個新的 DAP 客戶端:ecodePR #526
- @sssooonnnggg (Song):chore:新增 luau 偵錯程式PR #516
- @theIDinside (Simon Farre):在除錯介面卡列表中新增 Midas,附帶 VSCodePR #528
對 language-server-protocol 的貢獻
- @ind1go (Ben Cox):工作區診斷中的拼寫錯誤PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud):feat:Copilot 語言伺服器在伺服器列表中PR #2107
- @Szasza (Szasza Palmer):將 Wing 語言伺服器新增到伺服器列表PR #2101
- @the-mikedavis (Michael Davis):澄清
$0不應使用任何其他程式碼片段語法PR #2087 - @yassun7010 (yassun7010):將 Tombi 新增到 LSP 列表。PR #2089
對 python-environment-tools 的貢獻
- @pantheraleo-7:新增對檢測
$VIRTUAL_ENV的支援PR #181