2024 年 4 月 (版本 1.89)
更新 1.89.1:此更新解決了這些 問題。
下載:Windows: x64 Arm64 | Mac: 通用 Intel silicon | Linux: deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2024 年 4 月發行版本。此版本有許多更新,我們希望您會喜歡,其中一些主要重點包括
- 預覽 Markdown 圖片和影片 - 將滑鼠懸停在連結上方,即可預覽 Markdown 中的圖片和影片。
- 增強的分支切換 - 在分支之間切換時,無縫還原開啟的編輯器。
- 中鍵點擊貼上支援 - 使用滑鼠中鍵點擊,在終端機中快速貼上文字。
- 透過遠端 - SSH 的 WSL - 透過遠端 - SSH 連線到遠端機器時,使用 WSL。
- 協助工具檢視 - 從協助工具檢視瀏覽註解、聊天程式碼區塊和終端機命令。
- UI 動作的鍵盤快速鍵 - 直接使用滑鼠右鍵,自訂 UI 動作的鍵盤快速鍵。
- 快速搜尋 - 使用快速搜尋在您的工作區中搜尋文字。
- AI 驅動的重新命名建議 - 在編輯器中使用 Copilot 取得智慧重新命名建議。
- Copilot 內容排除 - 將檔案從 Copilot 上下文中排除。
- 本機工作區擴充功能 - 直接在您的工作區中包含和安裝擴充功能。
如果您想在線上閱讀這些發行說明,請前往 code.visualstudio.com 上的更新。Insiders: 想要盡快試用新功能嗎?您可以下載每晚組建的 Insiders 版本,並在最新更新可用時立即試用。
協助工具
進度協助工具訊號
設定 accessibility.signals.progress
讓螢幕閱讀器使用者能夠在使用者介面中任何顯示進度列的地方聽到進度。訊號會在經過三秒後播放,然後每五秒循環播放,直到進度列完成。可能會播放訊號的範例包括:搜尋工作區、聊天回應等待中、筆記本儲存格正在執行等等。
改良的編輯器協助工具訊號
現在,當行有錯誤或警告,或游標位於錯誤或警告上時,會有個別的協助工具訊號。
我們支援自訂在編輯器中於行和欄之間導覽時協助工具訊號的延遲。此外,aria 警示訊號的播放延遲時間比音訊提示訊號長。
當顯示建議控制項時,內嵌建議不再觸發協助工具訊號。
協助工具檢視
協助工具檢視 (⌥F2 (Windows Alt+F2,Linux Shift+Alt+F2)) 讓螢幕閱讀器使用者能夠檢查工作台功能。
終端機改良
現在,當您在終端機協助工具檢視中導覽到下一個 (⌥↓ (Windows、Linux Alt+Down)) 或上一個 (⌥↑ (Windows、Linux Alt+Up)) 命令時,您可以聽到目前命令是否失敗。此功能可以使用設定 accessibility.signals.terminalCommandFailed
來切換。
當從啟用 Shell 整合的終端機開啟此檢視時,VS Code 會警示終端機命令列,以改善體驗。
聊天程式碼區塊導覽
當您位於聊天回應的協助工具檢視中時,現在可以在下一個 (⌥⌘PageDown (Windows、Linux Ctrl+Alt+PageDown)) 和上一個 (⌥⌘PageUp (Windows、Linux Ctrl+Alt+PageUp)) 程式碼區塊之間導覽。
註解檢視
當安裝了提供註解的擴充功能,且焦點位於註解檢視時,您可以從協助工具檢視中檢查註解並在註解之間導覽。從協助工具檢視也可以執行擴充功能提供的註解動作。
工作台
語言模型使用量報告
對於使用語言模型的擴充功能,您現在可以在擴充功能編輯器和執行階段擴充功能編輯器中追蹤其語言模型使用量。例如,您可以檢視語言模型請求的數量,如下列 Copilot Chat 擴充功能的螢幕擷取畫面所示
本機工作區擴充功能
本機工作區擴充功能,首次在 VS Code 1.88 版本 中推出,現已全面推出。您現在可以直接在您的工作區中包含擴充功能,並僅為該工作區安裝。此功能旨在滿足您的特定工作區需求,並提供更量身打造的開發體驗。
若要使用此功能,您需要將您的擴充功能放在工作區內的 .vscode/extensions
資料夾中。然後,VS Code 會在擴充功能檢視的 工作區建議 區段中顯示此擴充功能,使用者可以從該處安裝。VS Code 只會為該工作區安裝此擴充功能。本機工作區擴充功能需要使用者信任工作區,才能安裝和執行此擴充功能。
例如,考慮 VS Code 儲存庫 中的 vscode-selfhost-test-provider
擴充功能。此擴充功能插入測試功能,讓貢獻者能夠直接在工作區內檢視和執行測試。以下螢幕擷取畫面顯示擴充功能檢視的「工作區建議」區段中的 vscode-selfhost-test-provider
擴充功能,以及安裝它的能力。
請注意,您應該將解壓縮的擴充功能包含在 .vscode/extensions
資料夾中,而不是 VSIX
檔案。您也可以只包含擴充功能的來源,並將其建置為工作區設定的一部分。
快速開啟中的自訂編輯器標籤
上個月,我們推出了 自訂標籤,讓您可以個人化編輯器索引標籤的標籤。此功能旨在協助您更輕鬆地區分具有相同名稱的檔案 (例如 index.tsx
檔案) 的索引標籤。
在此基礎上,我們已將自訂標籤的使用延伸到快速開啟 (⌘P (Windows、Linux Ctrl+P))。現在,您可以使用您建立的自訂標籤搜尋您的檔案,使檔案導覽更加直覺。
自訂鍵盤快速鍵
我們讓自訂使用者介面動作的鍵盤快速鍵變得更加簡單。在您的工作台中,在任何動作項目上按一下滑鼠右鍵,然後選取 自訂鍵盤快速鍵。如果動作具有 when
子句,則會自動包含,讓您更輕鬆地設定您需要的鍵盤快速鍵。
在樹狀結構中尋找鍵盤快速鍵
我們已解決在樹狀結構控制項中,尋找控制項經常意外開啟的問題。例如,當尋找控制項出現在 Explorer 檢視中,而不是在編輯器中搜尋時。
為了減少這些意外啟動,我們已將在樹狀結構控制項中開啟尋找控制項的預設鍵盤快速鍵變更為 ⌥⌘F (Windows、Linux Ctrl+Alt+F)。如果您偏好先前的設定,您可以輕鬆地使用鍵盤快速鍵編輯器還原為 list.find
命令的原始鍵盤快速鍵。
自動偵測系統色彩模式改良
如果您希望您的佈景主題遵循系統的色彩模式,您已經可以透過啟用設定 window.autoDetectColorScheme
來執行此操作。
啟用後,目前的佈景主題由暗色模式下的 workbench.preferredDarkColorTheme
設定和亮色模式下的 workbench.preferredLightColorTheme
設定定義。
在這種情況下,workbench.colorTheme
設定將不再被考慮。它僅在 window.autoDetectColorScheme
關閉時使用。
在此里程碑中,新功能是佈景主題選擇器對話方塊 (喜好設定:色彩佈景主題 命令) 現在可以感知系統色彩模式。請注意,當系統處於暗色模式時,佈景主題選取僅顯示暗色佈景主題
對話方塊也有一個新按鈕,可直接將您帶到 window.autoDetectColorScheme
設定
在註解中貼上 Markdown 連結
在註解控制項的輸入編輯器中,貼上連結的行為與在 Markdown 檔案中貼上連結的行為相同。會顯示貼上選項,您可以選擇貼上 Markdown 連結,而不是您複製的原始連結。
原始檔控制
在切換分支時儲存/還原開啟的編輯器
在此里程碑中,我們已解決長期以來的功能要求,以便在原始檔控制分支之間切換時儲存和還原編輯器。使用 scm.workingSets.enabled
設定來啟用此功能。
若要在首次切換到分支時控制開啟的編輯器,您可以使用 scm.workingSets.default
設定。您可以選取不開啟任何編輯器 (empty
),或使用目前開啟的編輯器 (current
,預設值)。
用於檢視變更的專用命令
為了更輕鬆地檢視多檔案差異編輯器中特定類型的變更,我們已在命令面板中新增一組新的命令:Git:檢視已暫存的變更、Git:檢視變更 和 Git:檢視未追蹤的變更。
筆記本
最小錯誤轉譯器
您可以使用新的筆記本錯誤轉譯器版面配置,並使用設定 notebook.output.minimalErrorRendering
。這個新的版面配置僅顯示錯誤和訊息,以及用於展開完整錯誤堆疊檢視的控制項。
停用大型筆記本的備份
現在已停用大型筆記本檔案的定期檔案備份,以減少將檔案寫入磁碟所花費的時間。可以使用設定 notebook.backup.sizeLimit
調整限制。我們也正在試驗一個選項,以避免在使用 notebook.experimental.remoteSave
儲存筆記本檔案時封鎖轉譯器,以便在不產生效能損失的情況下進行自動儲存。
修正大綱/黏性捲動效能衰退問題
在過去幾個月中,我們收到了關於筆記本編輯器效能衰退的回饋。衰退很難精確指出,也不容易重現。感謝社群持續提供記錄和回饋,我們可以確定衰退來自大綱和黏性捲動功能,因為我們在其中新增了新功能。這些問題已在此版本中修正。
我們感謝社群的回饋和耐心,我們將繼續改善筆記本編輯器的效能。如果您繼續遇到效能問題,請隨時在 VS Code 儲存庫 中提交新的問題。
搜尋
快速搜尋
快速搜尋讓您可以快速在您的工作區檔案中執行文字搜尋。快速搜尋不再是實驗性功能,因此請嘗試使用命令面板 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 中的 搜尋:快速搜尋 命令來試用!✨🔍
佈景主題:Night Owl Light (在 vscode.dev 上預覽)
請注意,所有快速搜尋命令和設定在其識別碼中不再具有「experimental」關鍵字。例如,命令 ID workbench.action.experimental.quickTextSearch
變更為 workbench.action.quickTextSearch
。如果您有使用這些舊 ID 的設定或鍵盤快速鍵,這可能相關。
搜尋樹狀結構遞迴展開
我們有一個新的內容功能表選項,讓您可以遞迴開啟搜尋樹狀結構中選取的樹狀結構節點。
佈景主題:Night Owl Light (在 vscode.dev 上預覽)
終端機
預設啟用 Git Bash Shell 整合
Git Bash 的 Shell 整合現在已自動啟用。這為 Git Bash 帶來了許多功能,例如命令導覽、黏性捲動、快速修正等等。
設定中鍵點擊以貼上
在大多數 Linux 發行版本中,中鍵點擊會貼上選取範圍。現在可以在其他作業系統上啟用類似的行為,方法是將 terminal.integrated.middleClickBehavior
設定為 paste
,這會在點擊中鍵時貼上常規剪貼簿內容。
擴充的 ANSI 超連結支援
透過 OSC 8 跳脫序列 建立的 ANSI 超連結先前僅支援 http
和 https
通訊協定,但現在適用於任何通訊協定。基於安全性考量,預設情況下僅啟用具有 file
、http
、https
、mailto
、vscode
和 vscode-insiders
通訊協定的連結,但您可以透過 terminal.integrated.allowedLinkSchemes
設定新增更多通訊協定。
終端機的新圖示選擇器
從終端機索引標籤內容功能表中選取變更圖示,現在會開啟為設定檔建置的新圖示選擇器
佈景主題:Sapphire (在 vscode.dev 上預覽)
視窗大小報告支援
終端機現在回應下列跳脫序列請求
CSI 14 t
報告終端機的視窗大小 (像素)CSI 16 t
報告終端機的儲存格大小 (像素)CSI 18 t
報告終端機的視窗大小 (字元)
⚠️ 已棄用畫布轉譯器
終端機具有三種不同的轉譯器:DOM 轉譯器、WebGL 轉譯器和畫布轉譯器。我們一直想移除畫布轉譯器,但由於 DOM 轉譯器效能不佳,且 WebKit 未實作 webgl2
而受阻。這兩個問題現在都已解決!
此版本中,我們已從回退鏈中移除畫布轉譯器,因此僅當 terminal.integrated.gpuAcceleration
設定明確設定為 "canvas"
時才會啟用。我們計劃在下一個版本中完全移除畫布轉譯器。如果 terminal.integrated.gpuAcceleration
設定為 "on"
或 "off"
時,您遇到問題,請告訴我們。
偵錯
JavaScript 偵錯工具
JavaScript 偵錯工具現在會自動尋找出現在 runtimeExecutable
設定中 node_modules/.bin
資料夾中的二進位檔。現在,它會依名稱自動解析它們。
請注意,在以下範例中,您可以只參考 mocha
,而無需指定二進位檔的完整路徑。
{
"name": "Run Tests",
"type": "node",
"request": "launch",
- "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha",
- "windows": {
- "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/mocha.cmd"
- },
+ "runtimeExecutable": "mocha",
}
語言
Markdown 路徑完成中的圖片預覽
VS Code 的內建 Markdown 工具為 Markdown 中的連結和圖片提供路徑完成。完成圖片或影片檔案的路徑時,我們現在會在完成詳細資料中直接顯示小型預覽。這可以協助您更輕鬆地找到您要尋找的圖片或影片。
懸停以預覽 Markdown 中的圖片和影片
想要快速預覽某些 Markdown 中的圖片或影片,而無需開啟完整的 Markdown 預覽?現在您可以將滑鼠懸停在圖片或影片路徑上方,以查看其小型預覽
改良的 Markdown 標題重新命名
您是否知道 VS Code 的內建 Markdown 支援讓您可以使用 F2 重新命名標題?這很有用,因為它也會自動更新所有指向該標題的連結。在此迭代中,我們改進了在 Markdown 檔案具有重複標題的情況下處理重新命名的功能。
考慮 Markdown 檔案
# Readme
- [Example 1](#_example)
- [Example 2](#_example-1)
## Example
...
## Example
...
兩個 ## Example
標題具有相同的文字,但可以使用唯一的 ID (#example
和 #example-1
) 個別連結到每個標題。先前,如果您將第一個 ## Example
標題重新命名為 ## First Example
,則 #example
連結會正確變更為 #first-example
,但 #example-1
連結不會變更。但是,在重新命名之後,#example-1
不再是有效的連結,因為不再有重複的 ## Example
標題。
我們現在正確處理了這種情況。例如,如果您在上面的文件中將第一個 ## Example
標題重新命名為 ## First Example
,則新文件將會是
# Readme
- [Example 1](#_first-example)
- [Example 2](#_example)
## First Example
...
## Example
...
請注意,這兩個連結現在都已自動更新,以便它們都保持有效!
遠端開發
遠端開發擴充功能,讓您可以使用 開發容器、透過 SSH 或 遠端通道 的遠端機器,或 Windows Subsystem for Linux (WSL) 作為全功能開發環境。
重點包括
- 透過 SSH 連線到 WSL
您可以在遠端開發發行說明中深入瞭解這些功能。
擴充功能的貢獻
GitHub Copilot
終端機內嵌聊天
終端機內嵌聊天現在是終端機中的預設體驗。當終端機處於焦點時,使用 ⌘I (Windows、Linux Ctrl+I) 鍵盤快速鍵來啟動它。
終端機內嵌聊天使用 @terminal
聊天參與者,它具有關於整合式終端機的 Shell 及其內容的上下文。
一旦建議了命令,使用 ⌘Enter (Windows、Linux Ctrl+Enter) 在終端機中執行命令,或使用 ⌥Enter (Windows、Linux Alt+Enter) 將命令插入終端機。也可以在 Copilot 的回應中直接編輯命令,然後再執行它 (目前在 Windows 和 Linux 上是 Ctrl+向下、Tab、Tab,在 macOS 上是 Cmd+向下、Tab、Tab)。
Copilot 驅動的重新命名建議按鈕
現在可以使用重新命名控制項中的閃爍圖示來觸發 Copilot 驅動的重新命名建議。
內容排除
GitHub Copilot 內容排除現在在 Copilot Chat 中受到所有 Copilot for Business 和 Copilot Enterprise 客戶的支援。關於設定內容排除的資訊,請參閱 GitHub 文件。
當檔案被內容排除排除時,Copilot Chat 無法看到檔案的內容或路徑,並且它不會用於產生 LLM 建議。
預覽:在筆記本編輯器中產生
我們現在支援在筆記本編輯器中自動啟動內嵌聊天的情況下插入新儲存格。當 notebook.experimental.generate
設定設定為 true
時,我們會在筆記本工具列和儲存格之間的插入工具列上顯示 產生 按鈕。當焦點位於筆記本清單或儲存格容器上時,也可以透過在 macOS 上按下 Cmd+I (或在 Windows/Linux 上按下 Ctrl+I) 來觸發它。此功能可以協助簡化在語言模型的協助下在新儲存格中產生程式碼的流程。
Python
「實作所有繼承的抽象類別」程式碼動作
使用 Pylance 時,使用抽象類別現在更容易了。當定義從抽象類別繼承的新類別時,您現在可以使用 實作所有繼承的抽象類別 程式碼動作,以自動實作父類別中的所有抽象方法和屬性
佈景主題:Catppuccin Macchiato (在 vscode.dev 上預覽)
新的自動縮排設定
先前,Pylance 的自動縮排行為是透過 editor.formatOnType
設定控制的,如果您想要停用自動縮排,但使用其他支援的工具啟用輸入時格式化,這曾經是一個問題。為了解決這個問題,Pylance 有自己的設定來控制其自動縮排行為:python.analysis.autoIndent
,預設為啟用。
Debugpy 已從 Python 擴充功能中移除,改為使用 Python 偵錯工具擴充功能
既然偵錯功能已由 Python 偵錯工具 擴充功能處理,我們已從 Python 擴充功能中移除 debugpy。
作為此變更的一部分,您在 launch.json
檔案中指定的 "type": "python"
和 "type": "debugpy"
都會參考 Python 偵錯工具擴充功能的路徑,您的 launch.json
檔案不需要任何變更即可有效執行和偵錯。展望未來,我們建議使用 "type": "debugpy"
,因為這直接對應於 Python 偵錯工具擴充功能。
現在可以在測試期間停用 Socket
您現在可以從 Python 測試重寫的測試 UI 中執行停用 Socket 的測試。這是透過 Python 擴充功能與測試執行子程序之間的通訊切換為現在使用具名管道來實現的。
更新了次要測試錯誤
測試檢視現在正確顯示使用 testscenarios 搭配 unittest 和巢狀類別內參數化測試的專案。此外,測試 Explorer 現在處理具有符號連結的工作區中的測試,特別是符號連結路徑的子系的工作區根目錄,這在 WSL 案例中特別有用。
Pylance 的效能改進
Pylance 團隊一直收到回饋,指出 Pylance 的效能在過去幾個版本中有所下降。我們已對記憶體消耗和索引效能進行了一些較小的改進,以解決各種回報的問題。但是,對於那些可能仍然遇到 Pylance 效能問題的使用者,我們懇請透過命令面板中的 Pylance:回報問題 命令提交問題,最好附上記錄、程式碼範例和/或工作環境中安裝的套件。
Hex Editor
Hex Editor 現在除了長期存在的「取代」模式外,還具有插入模式。插入模式允許在檔案內和檔案末尾新增位元組,並且可以使用 Insert 鍵或從狀態列切換。
Hex Editor 現在也會在狀態列中顯示目前懸停的位元組。
GitHub Pull Requests
在 GitHub Pull Requests 擴充功能方面取得了更多進展,這讓您可以處理、建立和管理提取要求和問題。新功能包括
- 當隱藏設定
"githubPullRequests.experimentalUpdateBranchWithGitHub": true
啟用時,適用於未簽出 PR 的實驗性衝突解決已可用。此功能讓您無需在本機簽出分支即可解決 PR 中的衝突。此功能仍處於實驗階段,並非在所有情況下都適用。 - 當從提取要求和問題檢視觸發 開啟協助工具說明 時,會顯示協助工具說明對話方塊。
- 當有足夠空間時,所有檢閱動作按鈕都會顯示在「使用中提取要求」側邊欄檢視中。
檢閱擴充功能 0.88.0 版本的變更記錄,以瞭解其他重點。
TypeScript
由 VS Code 核心處理的檔案監看
新的實驗性設定 typescript.tsserver.experimental.useVsCodeWatcher
控制 TS 擴充套件是否使用 VS Code 的核心檔案監看支援來滿足檔案監看需求。TS 大量使用檔案監看,通常使用他們自己基於 node.js 的實作。透過使用 VS Code 的檔案監看器,監看應該會更有效率、更可靠,並消耗更少的資源。我們計劃在五月份逐步為使用者啟用此功能,並監控是否有回歸問題。
預覽功能
適用於 PowerShell 的 VS Code 原生 IntelliSense
我們針對終端機內的 PowerShell IntelliSense 已經有一個原型版本有一段時間了,最近我們才有更多時間投入來完善它。這就是它的樣子
目前,它會在 -
字元或按下 ctrl+space 時觸發。若要啟用此功能,請在您的 settings.json
檔案中設定 "terminal.integrated.shellIntegration.suggestEnabled": true
(目前不會顯示在設定 UI 中)。
對於此功能來說,現在還處於早期階段,但我們很樂意聽取您對它的意見回饋。我們計劃進行的一些更重要的事項包括使其觸發更加可靠 (#211222)、使建議更加一致,無論彈出視窗在何處觸發 (#211364),以及使體驗盡可能接近編輯器 IntelliSense 體驗 (#211076, #211194)。
貼上時自動更新 Markdown 連結
假設您正在撰寫一些 Markdown 文件,並且您意識到文件中的某個章節實際上屬於其他地方。因此,您將其複製並貼到另一個檔案中。一切都很好,對吧?但是,如果複製的文字包含任何相對路徑連結、參考連結或圖片,那麼這些連結現在很可能會損壞,並且您必須手動修復它們。這可能非常麻煩,但幸運的是,新的「貼上時更新連結」功能可以幫上忙!
若要啟用此功能,只需設定 "markdown.experimental.updateLinksOnPaste": true
。啟用後,當您在目前編輯器中的 Markdown 檔案之間複製和貼上文字時,VS Code 會自動修復所有相對路徑連結、參考連結以及所有具有相對路徑的圖片/影片。
貼上後,如果您意識到您反而想要插入您複製的確切文字,則可以使用貼上控制項切換回正常的複製/貼上行為。
支援 TypeScript 5.5
我們現在支援 TypeScript 5.5 beta 版。請查看 TypeScript 5.5 beta 版部落格文章 和 迭代計劃,以了解此版本的詳細資訊。
編輯器重點功能包括
- 正規表示式的語法檢查。
- 檔案監看改進。
若要開始使用 TypeScript 5.5 beta 版,請安裝 TypeScript Nightly 擴充套件。如果您在使用 TypeScript 5.5 時遇到任何錯誤,請分享意見回饋並告知我們。
API
改進了註解輸入編輯器中對語言功能的支援
當撰寫新的註解時,VS Code 會建立一個精簡的文字編輯器,該編輯器由 TextDocument
支援,就像 VS Code 中的主要編輯器一樣。在此迭代中,我們在這些註解文字編輯器中啟用了一些額外的 API 功能。這包括
- 對工作區編輯的支援。
- 對診斷的支援。
- 對建議的貼上即程式碼 API 的支援。
註解文字文件可以透過具有 comment
結構描述的 URI 來識別。
我們期待看到擴充套件使用這個新功能來構建什麼!
最終確定的視窗活動 API
視窗活動 API 已最終確定。此 API 提供了一個簡單的額外 WindowState.active
布林值,擴充套件可以使用它來判斷視窗最近是否與使用者互動過。
vscode.window.onDidChangeWindowState(e => console.log('Is the user active?', e.active));
建議的 API
視圖的輔助功能說明對話方塊
可以透過 accessibilityHelpContent
屬性為任何擴充套件貢獻的視圖新增輔助功能說明對話方塊。當焦點在視圖中時,螢幕閱讀器使用者會聽到提示以開啟對話方塊 (⌥F1 (Windows Alt+F1, Linux Shift+Alt+F1)),其中包含概述和有用的命令。
GitHub Pull Request 擴充套件的問題和 PR 視圖使用了這個 API。
語言模型和 Chat API
語言模型命名空間 (vscode.lm
) 匯出新的函式,以檢索語言模型資訊並計算給定字串的 Token 數量。它們分別是 getLanguageModelInformation
和 computeTokenLength
。您應該使用這些函式來建立在語言模型限制內的提示。
注意:內嵌聊天現在由即將推出的聊天參與者 API 提供支援。這也表示
registerInteractiveEditorSessionProvider
已被棄用,並將很快被移除。
更新的文件貼上建議
我們持續迭代 文件貼上建議 API。此 API 使擴充套件能夠掛鉤到文字文件中的複製/貼上操作。
API 的重大變更包括
-
新的
resolveDocumentPasteEdit
方法,它會在貼上操作時填寫編輯內容。如果計算編輯內容需要很長時間,則應使用此方法,因為它僅在實際需要套用貼上編輯時才會被呼叫。 -
所有貼上操作現在都由
DocumentDropOrPasteEditKind
識別。這與現有的CodeActionKind
非常相似,並用於貼上操作的按鍵繫結和設定中。
文件貼上擴充套件範例 包含所有最新的 API 變更,因此您可以測試該 API。請務必分享對變更和整體 API 設計的意見回饋。
Hover 詳盡程度
在此迭代中,我們新增了一個新的建議 API 來收縮/展開 Hover,稱為 editorHoverVerbosityLevel
。它引入了一個名為 VerboseHover
的新類型,它有兩個布林欄位:canIncreaseHoverVerbosity
和 canDecreaseHoverVerbosity
,它們表示 Hover 詳盡程度可以增加或減少。如果其中一個設定為 true,則 Hover 會顯示 +
和 -
圖示,可用於增加/減少 Hover 詳盡程度。
建議的 API 也為 provideHover
方法引入了一個新的簽章,它採用 HoverContext
類型的額外參數。當使用者傳送 Hover 詳盡程度請求時,Hover 內容會填入先前的 Hover,以及 HoverVerbosityAction
,它指示使用者是否想要增加或減少詳盡程度。
擴充套件觸發的 TestRun 上的 preserveFocus
對於擴充套件觸發的測試執行請求上的 preserveFocus
布林值,有一個 建議。先前,從擴充套件 API 觸發的測試執行從未導致焦點移動到測試結果視圖中,這需要一些擴充套件重新發明輪子以維持使用者體驗相容性。這個新選項可以在 TestRunRequest
上設定,以要求編輯器移動焦點,就像從編輯器內觸發執行一樣。
值得注意的修正
- 209917 輔助視窗:還原最大化狀態 (Linux, Windows)
感謝您
最後但同樣重要的是,非常感謝 VS Code 的貢獻者。
Issue 追蹤
對我們的 issue 追蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @ArturoDent (ArturoDent)
Pull requests
對 vscode
的貢獻
- @4-tel: fix: 搜尋偵錯主控台中以 "!" 開頭的行 #174146 PR #210178
- @CareyJWilliams (Carey Williams): 修正工作範本寫入空的 tasks.json PR #210675
- @cpendery (Chapman Pendery)
- fix: 捆綁錯誤導致終端機建議失敗 PR #208822
- feat: 新增 git-bash 支援到 shell integration PR #208960
- fix: 改善 Windows 上終端機標記放置 PR #209136
- fix: 當沒有完成項目時,終端機建議應隱藏模態視窗 PR #210289
- fix: split 在 git bash 中失敗 PR #210513
- @Ditoo29 (Diogo Pinto): fix: 換行字元的序列化 PR #209703
- @frankli0324 (Frank): 在執行 npm view 時停用 corepack 自動釘選功能 PR #210601
- @g-plane (Pig Fang): 當所有檔案都暫存或提交時,自動關閉 Git multi-diff 編輯器 PR #210327
- @gjsjohnmurray (John Murray)
- 改善
workbench.activityBar.iconClickBehavior
和workbench.activityBar.location
設定的描述 PR #210574 - 正確清除活動列圖示徽章 (修復 #210640) PR #210645
- 改善
- @grgar (George Garside)
- 不要在網頁上使用 window.customTitleBarVisibility 設定 PR #209162
- 修復色彩選擇器命令標題 PR #210349
- 將 cmd 啟動逸出字元移動到提示字元的末尾 PR #210443
- @hsfzxjy (Xie Jingyi): 記錄偵錯的可導航容器事件 PR #209357
- @jswillard (John Willard): 在快速開啟中顯示自訂標籤 PR #209681
- @marvinthepa (Martin Sander): 終端機中的滑鼠中鍵貼上 PR #136633
- @mmastrac (Matt Mastracci): 將
windowOptions
新增到 xtermTerminal 以允許ESC [18t
運作 PR #209310 - @nopeless (nopeless): fix: 在 shell integration bash 檔案中將
cmd
設定為區域變數 PR #208364 - @pagict (Premium): feat. 新增選單項目 'expand-select' 以展開搜尋視圖中的子樹 PR #206033
- @pisv (Vladimir Piskarev): 修正在
OpenJsDocLinkCommand_Args
中的不正確類型 PR #209872 - @qirong77: 修復 Monaco-Editor 中內嵌建議工具列中遺失的類別,導致 CSS 變數無效 PR #207582
- @r-sargento (Rafael Sargento): 修復 #201247 (整合式終端機未從預設設定檔設定環境變數) PR #209711
- @ScriptBloom (alviner): fix: 迷你地圖區段標題在第一次載入時顯示不完整: #209603 PR #209605
- @sheetalkamat (Sheetal Nandi): 使用 vscode watches for tsserver PR #193848
- @telamon (Tony Ivanov): 已修復 #114425 防止安裝時的 mime 污染 PR #209510
- @timorthi (Timothy Ng): 當行號顯示模式變更時,重新渲染黏性捲動 PR #210815
- @WardenGnaw (Andrew Wang): 為 selectAndStartDebugging 命令新增 'noDebug' PR #209893
- @zWingz (zWing): fix: execCommand workbench.extensions.installExtension 時發生意外錯誤 PR #210135
- @ale-dg: 持續提供意見回饋和日誌,以協助我們診斷筆記本編輯器和 jupyter 中的多個效能問題。
對 vscode-css-languageservice
的貢獻
- @liaoyinglong (vigoss): 支援巢狀 @container PR #390
對 vscode-emmet-helper
的貢獻
對 vscode-eslint
的貢獻
- @hyoban (Stephen Zhou): fix: 將 json、jsonc 新增到
eslint.probe
的預設選項中 PR #1830
對 vscode-hexeditor
的貢獻
對 vscode-json-languageservice
的貢獻
- @michaeltlombardi (Mikey Lombardi (He/Him)): 確保剖析器對 minContains/maxContains 使用 errorMessage PR #229
對 vscode-languageserver-node
的貢獻
- @werat (Andy Hippo): 當取消註冊不存在的功能時,不要崩潰 PR #1460
對 vscode-python-debugger
的貢獻
- @DavidArchibald (David Archibald): 修復在 WSL 上執行時,偵錯工具附加到程序的問題 PR #267
對 vscode-vsce
的貢獻
- @yutotnh (yutotnh): feat: 忽略由
git worktree add
產生的 .git PR #943
對 language-server-protocol
的貢獻
- @asukaminato0721 (Asuka Minato): 新增 2 個 lsp PR #1918
- @MariaSolOs (Maria José Solano): 新增標記診斷訊息說明 PR #1917
- @practicalli-johnny (Practicalli Johnny): servers: 更新 clojure-lsp 儲存庫和維護者 PR #1921
- @sz3lbi (szelbi): 新增 SAP CDS 伺服器 PR #1924
- @unvalley (unvalley): docs: 將 biome 新增到 lsp 伺服器 PR #1923
- @Wilfred (Wilfred Hughes): 修正在 RequestCancelled 文件註解中的錯字 PR #1922
對 monaco-editor
的貢獻
- @timotheeguerin (Timothee Guerin): 新增 TypeSpec 語言的支援 PR #4450