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 Edits 的筆記本支援 - 快速迭代筆記本的編輯。
- Copilot Vision - 在聊天提示中附加影像並與影像互動。
- 程式碼搜尋 - 讓 Copilot 為您的聊天提示尋找相關檔案。
- 終端機 IntelliSense (預覽) - 為您的終端機提供豐富的完成支援。
- 拖放參考 - 在新的編輯器中快速開啟預覽參考。
- Linux 自訂標題列 - 預設啟用 Linux 的自訂標題列支援。
- 未解決的診斷 (預覽) - 在提交具有未解決診斷的程式碼時提示。
- 原始檔控制中的軟刪除 - 將未追蹤的檔案移至垃圾桶,而不是刪除它們。
- 自訂指示一般可用 - 使用自訂指示來調整 Copilot 以符合您的需求。
如果您想在線上閱讀這些版本資訊,請前往 code.visualstudio.com 上的更新。Insiders:想要盡快試用新功能嗎?您可以下載每晚組建的 Insiders 版本,並在最新更新可用時立即試用。
GitHub Copilot
Copilot 功能可能會經歷不同的早期存取階段,這些階段通常透過設定啟用和設定。
階段 | 描述 |
---|---|
實驗性 | 此功能仍在開發中,尚未準備好供一般使用。 檢視實驗性功能 ( @tag:experimental )。 |
預覽 | 此功能仍在精進中,但已準備好使用。歡迎提供意見反應。 檢視預覽功能 ( @tag:preview )。 |
穩定 | 此功能已準備好供一般使用。 |
Copilot Edits
代理人模式改進 (實驗性)
上個月,我們在 VS Code Insiders 中為 Copilot Edits 引入了代理人模式。在代理人模式中,Copilot 可以自動搜尋您的工作區以尋找相關內容、編輯檔案、檢查檔案是否有錯誤,以及執行終端機命令 (在您的許可下) 以端對端完成工作。
注意:代理人模式今天在 VS Code Insiders 中提供,而且我們剛開始在 VS Code 穩定版中逐步推出。一旦為您啟用代理人模式,您將在 Copilot Edits 檢視中看到模式下拉式選單 — 只需選取代理人即可。
我們在本月對工具使用方式的 UX 進行了多項改進
- 終端機命令現在會內嵌顯示,因此您可以追蹤執行了哪些命令。
- 您可以在執行終端機命令之前,在聊天回應中編輯建議的終端機命令。
- 使用 ⌘Enter (Windows、Linux Ctrl+Enter) 快速鍵確認終端機命令。
代理人模式會自動搜尋您的程式碼庫以尋找相關內容。展開訊息以查看已完成哪些搜尋的結果。
我們也對代理人模式的提示和行為進行了各種改進
- 聊天中的復原和取消復原動作現在會復原或取消復原聊天回應中進行的最後一個檔案編輯。這對於代理人模式很有用,因為您現在可以復原模型採取的某些步驟,而無需回滾整個聊天回應。
- 代理人模式現在可以自動或在指示下執行您的組建工作。如果您看到模型在不應該執行工作時執行工作,請透過 github.copilot.chat.agent.runTasks 設定停用此功能。
深入瞭解 Copilot Edits 代理人模式 或閱讀代理人模式公告部落格文章。
注意:如果您是 Copilot Business 或 Enterprise 使用者,您組織的系統管理員必須選擇加入使用 Copilot「編輯器預覽功能」,代理人模式才能可用。
Copilot Edits 的筆記本支援 (預覽)
我們在 VS Code Insiders 中以預覽功能的形式引入了 Copilot Edits 中的筆記本支援。您現在可以使用 Copilot 編輯筆記本檔案,並享有與編輯程式碼檔案相同的直覺式體驗。從頭開始建立新的筆記本、修改多個儲存格中的內容、插入和刪除儲存格,以及變更儲存格類型。此預覽功能在處理資料科學或文件筆記本時提供順暢的工作流程。
注意:此功能目前僅在具有 GitHub Copilot Chat 預先發行版本的 VS Code Insiders 中提供。我們將繼續改進體驗,然後在未來的版本中將其帶到 VS Code 穩定版。
精進的編輯器整合
我們完善了 Copilot Edits 與程式碼和筆記本編輯器的整合
- 在套用變更時不再需要捲動。檢視區保持在原位,讓您更容易專注於變更內容。
- 將編輯檢閱動作從「接受」重新命名為「保留」,並將「捨棄」重新命名為「復原」,以更清楚地反映正在發生的事情。Copilot Edits 的變更會即時生效,它們會在進行時套用和儲存,使用者可以保留或復原它們。
- 在保留或復原檔案後,會自動顯示下一個檔案。
影片示範了編輯如何套用和儲存。即時預覽會更新,而且使用者決定「保留」變更。復原和進一步調整仍然是可能的。
重新整理的 UI
為了準備將 Copilot Edits 與 Copilot Chat 統一,我們為 Copilot Edits 進行了改版。已附加但尚未傳送的檔案現在會呈現為一般聊天附件。只有使用 AI 修改過的檔案才會新增至變更的檔案清單,該清單位於聊天輸入部分上方。
透過 chat.renderRelatedFiles 設定,您可以啟用取得相關檔案的建議。相關檔案建議會呈現在聊天附件下方。
已移除 Copilot Edits 限制
先前,您在 Copilot Edits 中附加到提示的檔案數目限制為 10 個。在此版本中,我們移除了此限制。此外,我們也移除了每 10 分鐘 14 次互動的用戶端速率限制。
請注意,伺服器端使用速率限制仍然適用。
自訂指示一般可用
設定:github.copilot.chat.codeGeneration.useInstructionFiles
自訂指示可讓您調整 GitHub Copilot,使其以您和您的團隊工作的方式提供聊天回應和程式碼建議。在工作區的 .github/copilot-instructions.md
檔案中以 Markdown 格式描述您的特定需求。
在此里程碑中,我們將 .github/copilot-instructions.md
的自訂指示設為一般可用。請確定已啟用 github.copilot.chat.codeGeneration.useInstructionFiles VS Code 設定,然後 Copilot 將在產生回應時使用這些指示。
深入瞭解 Copilot 中的自訂指示。
聊天中更順暢的驗證流程
如果您將原始碼託管在 GitHub 存放庫中,您就能夠利用多項功能,包括進階程式碼搜尋、@github
聊天參與者等等!
然而,對於私人 GitHub 存放庫,VS Code 需要獲得與您在 GitHub 上的存放庫互動的權限。在一段時間內,當您叫用特定功能時 (例如,詢問 @workspace
或 @github
問題,或使用 #codebase
工具),我們的慣用 VS Code 驗證流程會顯示一個強制回應對話方塊。
為了使此體驗更順暢,我們在聊天中引入了此確認
它不僅不像強制回應對話方塊那樣突兀,而且還具有新功能
- 授與:您會像以前一樣 (透過強制回應視窗) 完成一般的驗證流程。
- 現在不要: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 Edits 的語言模型,現在您也可以變更內嵌建議的模型。
或者,您可以透過命令面板中的 變更完成模型 命令或標題列中 Copilot 選單中的 設定程式碼完成 項目來變更用於程式碼完成的模型。
注意:可用模型的清單可能會有所不同,並隨時間變更。如果您是 Copilot Business 或 Enterprise 使用者,您的系統管理員需要透過選擇加入 GitHub.com 上的 Copilot 原則設定 中的
編輯器預覽功能
,為您的組織啟用特定模型。
模型可用性
在此版本中,我們新增了更多模型供您在使用 Copilot 時選擇。以下模型現在可在 Visual Studio Code 和 github.com 聊天中的模型選擇器中使用
-
GPT 4.5 (預覽):OpenAI 的最新模型 GPT-4.5 現在可在 GitHub Copilot Chat 中供 Copilot Enterprise 使用者使用。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 免費版 使用者,則會顯示配額資訊
- 編輯器相關設定,例如程式碼完成
- 使用其他 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 Edits 協助工具
我們讓 Copilot Edits 更容易存取。
- 現在有音訊訊號表示具有修改的檔案和變更區域 (插入、修改和刪除)。
- 協助工具差異檢視器現在適用於修改過的檔案。就像在差異編輯器中一樣,選取 F7 以啟用它。
activeEditorState
視窗標題變數
我們有一個新的 window.title 變數 activeEditorState
,用於向螢幕閱讀器使用者指示編輯器資訊,例如修改狀態、問題數目,以及檔案何時有待處理的 Copilot Edits。當處於螢幕閱讀器最佳化模式時,預設會附加此變數,並且可以使用 accessibility.windowTitleOptimized 停用。
工作台
Linux 上的自訂標題列
自訂標題列現在預設在 Linux 上啟用。自訂標題列可讓您存取版面配置控制項、Copilot 選單等等。
您可以隨時還原回原生標題裝飾,從自訂標題操作功能表或設定 window.titleBarStyle 為 native
。
我們很高興能繼續收到關於此體驗的意見反應,並且已經根據現有的意見反應努力改進未來里程碑的體驗。
將標籤用於次要側邊欄檢視
我們決定變更次要側邊欄中檢視的外觀,以顯示標籤而不是圖示,這與我們在面板區域中的做法類似。這讓您更容易區分不同的檢視,例如 Copilot Edits 和 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.diff.experimental.toggleInline
您現在可以為筆記本啟用內嵌差異檢視。此功能可讓您在單一內嵌檢視中檢視筆記本儲存格內的變更,而不是傳統的並排比較。
透過將 notebook.diff.experimental.toggleInline 設定為 true
來啟用此功能。然後,您可以使用右上角的編輯器選單將差異檢視切換為內嵌。
筆記本內嵌值懸停
筆記本內嵌值現在會截斷其裝飾,以符合檢視區的寬度,並具有豐富的懸停效果以顯示完整值,同時保持空白字元格式。這會保持資料框架等變數的形狀,使值更容易一目瞭然。
終端機 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 功能需要我們偵測此行內建議,此功能先前使用一種簡易實作方式,僅檢查文字是否使用 faint 或 italics 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
Tab 鍵完成功能中顯示 CDPATH 項目
我們現在支援在使用 cd
時將 $CDPATH
項目顯示為完成項目
此功能也適用於 Windows(;
分隔符號),並且不需要 shell 原生支援此功能,因為預設是使用絕對路徑。
使用 terminal.integrated.suggest.cdPath 進行設定。
絕對路徑
現在支援絕對路徑。
別名支援
現在也偵測到 bash、zsh 和 fish 的命令別名,並具有新的獨特圖示
區分選項和旗標
CLI 選項(具有值)和旗標(沒有值)現在會在 UI 中透過不同的圖示進行區分
工作
工作重新執行動作
我們為終端機新增了重新執行工作動作,⌃⇧R (Windows、Linux Ctrl+Shift+R)。此動作會顯示在終端機索引標籤的行內工具列和終端機的右鍵選單中。
偵錯
偵錯行內值懸停
如果啟用設定 debug.inlineValues,則行內值裝飾現在具有行內懸停效果,讓您更輕鬆地快速讀取較長的值。
語言
TypeScript 5.8
VS Code 現在包含 TypeScript 5.8.2。此主要更新帶來了新的語言改進,包括 改良的條件運算式類型檢查 和 支援編寫符合 Node 全新 --experimental-strip-types 選項的程式碼。它還包含許多工具改進和錯誤修正。
請查看 TypeScript 5.8 發行部落格,以取得有關此更新的更多詳細資訊。
遠端開發
Remote Development 擴充功能,可讓您使用 Dev Container、透過 SSH 或 Remote Tunnels 的遠端機器,或 適用於 Linux 的 Windows 子系統 (WSL) 作為全方位功能的開發環境。
重點包括
- Linux 舊版伺服器的 EOL
- 擴充的 Proxy 可設定性
您可以在 Remote Development 發行說明中深入瞭解這些功能。
企業支援
允許可用的擴充功能的多行支援
您現在可以使用多行字串在 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
改進 Proxy 支援
GitHub 驗證擴充功能現在利用 Electron 版本的 fetch
來發出 Web 要求。這對具有特定 Proxy 和防火牆設定的使用者有所幫助。如果您知道您在具有 Proxy 設定的環境中執行,並且無法在 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
的修改,後者過去接受與新的 AuthenticationGetSessionPresentationOptions
具有相同簽章的 AuthenticationForceNewSessionOptions
。
如果您明確使用 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 問題中告訴我們您的想法。
Shell 環境
擴充功能能夠存取使用者的目前作用中 shell 環境資訊,適用於從 VS Code 整合式終端機開啟的 pwsh、zsh、bash 和 fish shell。這僅在啟用 terminal.integrated.shellIntegration.enabled 時可用。
使用者可以透過 terminal.integrated.shellIntegration.environmentReporting 決定是否回報其 shell 環境資訊。
試用看看,並在這個 GitHub 問題中告訴我們您的想法。
工程
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) 的版本。如需其他資訊,請參閱我們的 FAQ。
洩漏的可處置物件的開發時間追蹤
VS Code 使用可處置模式進行明確的資源管理,例如關閉檔案、清除 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):修正迷你地圖中標頭錯置的問題 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):更新聊天的
newEditSession
命令以接受輸入提示字元 PR #241796 - @devm33 (Devraj Mehta):修正:將 electron 新增為 webpack 的外部項目 PR #239134
- @dmotte (Motte):修正 terminal.integrated.confirmOnExit 的行為 PR #240074
- @dvangonen (Daniil Vangonen):從本文中移除不必要的類別 PR #240633
- @gabritto (Gabriela Araujo Britto):還原 "[typescript-language-features] 可展開的懸停 (#_228255)" PR #240011
- @gjsjohnmurray (John Murray)
- 將多重選取項目提供給
scm/resourceGroup/context
選單命令 (修正 #92337) PR #192172 - 新增
scmResourceGroupState
環境定義金鑰 (#_192009) PR #194804 - SCM - SCM 檢視上的較簡潔標題 PR #230693
- 修正「顯示使用者按鍵繫結」選項在鍵盤快速鍵編輯器上的問題 (修正 #240068) PR #240085
- 「新增觸發中斷點...」上的錯誤「確定」大寫 (修正 #240490) PR #240492
- 將多重選取項目提供給
- @hickford (M Hickford):「通道使用者顯示」中的記錄提供者 PR #240692
- @ihavecoke (ihavecoke):將 tab_size 設定限制在 1 到 16 之間 PR #228957
- @jakebailey (Jake Bailey):在擴充功能主機開發中保留 --disable-extensions PR #240415
- @jamestut (James Nugraha):在初始化語彙基元分析器之前計算 TextModel 限制 PR #240919
- @jeanp413 (Jean Pierre)
- 修正終端機分割檢視可處置物件洩漏的問題 PR #241597
- 修正損壞的終端機連結懸停,在能夠懸停在內容上方之前隱藏 PR #241599
- 修正時間軸檢視洩漏事件接聽程式的問題 PR #241607
- @KexyBiscuit (Kexy Biscuit a.k.a. るる):允許偵測 powershell-preview snap PR #240054
- @klaussner (Christian Klaussner):修正 macOS 上的交通號誌置中問題 PR #212471
- @naman108 (Natha Paquette):儲存 URI 文件中的錯字 PR #241600
- @nknguyenhc (Nguyen):擴充功能詳細資料內容逸出容器 PR #240134
- @notoriousmango (Seong Min Park)
- 讓命令中心偵錯啟動器優先提供最近使用的組態 PR #240744
- 採用 Markdown 以使用 vscode 記錄輸出通道 PR #241342
- @pouyakary (Pouya Kary ✨):功能:自訂迷你地圖章節標題標記偵測 RegExp ✨ PR #210271
- @rgrunber (Roland Grunberg):將 adjustWhitespace 公開給 TextEditor API。 PR #234858
- @silamon (Simon Lamon):Diff 編輯器:將
1 files
更正為1 file
PR #240092 - @simon-id (simon-id):修正:工作台搜尋使用正確的 findMatch 色彩 (修正 #237909) PR #237910
- @SimonSiefke (Simon Siefke):修正:設定指示器中的記憶體洩漏 PR #236417
- @ssigwart (Stephen Sigwart):修正嘗試縮排時發生非預期的 Tab 鍵完成 PR #136572
- @SunsetTechuila (Grigory):功能(命令):新增
insertFinalNewLine
PR #241126 - @tcvdh (Thijs van den Heuvel):修正:在重複使用終端機之前,等待清除命令執行完成 PR #240970
- @terrymun (Terry Mun-Andersen):修正:移除 CONTRIBUTING.md 中多餘的反引號 PR #240305
- @tmm1 (Aman Karmani):tsb:修正已刪除和重新新增的來源檔案未重新產生的問題 PR #238409
- @xymopen (xymopen_Official)
- 新增節點作為 npm 指令碼執行器 PR #236967
- 新增節點作為 npm 指令碼執行器 (第 2 次) 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):將「十六進位比較選取範圍」移至「比較選取範圍」下方 PR #561
對 vscode-jupyter
的貢獻
- @thesuperzapper (Mathew Wicks):修正讀取
JUPYTER_RUNTIME_DIR
和XDG_RUNTIME_DIR
的問題 PR #16451
對 vscode-languageserver-node
的貢獻
- @MariaSolOs (Maria José Solano)
- @mciccale (Marco Ciccalè Baztán):semaphore.ts 中的小錯字 PR #1618
- @yf-yang:修正:避免處置不相符的處理常式 PR #1614
對 vscode-mypy
的貢獻
- @DetachHead
- @hamirmahal (Hamir Mahal):修正:在 CI 中使用
已淘汰的 node12
PR #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:將 Squirrel Debugger 新增至 adapters.md PR #530
- @SpartanJ (Martín Lucas Golini):更新 tools.md,新增新的 DAP 用戶端:ecode PR #526
- @sssooonnnggg (Song):chore:新增 luau 偵錯工具 PR #516
- @theIDinside (Simon Farre):將 Midas 新增至偵錯配接器清單,含 VSCode PR #528
對 language-server-protocol
的貢獻
- @ind1go (Ben Cox):工作區診斷中的錯字 PR #2086
- @MariaSolOs (Maria José Solano)
- @MuntasirSZN (Muntasir Mahmud):功能:伺服器清單中的 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