2024 年 4 月 (版本 1.89)
更新 1.89.1:此更新解決了這些 問題。
下載:Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2024 年 4 月發行版本。此版本包含許多更新,我們希望您會喜歡,其中一些重點包括
- 預覽 Markdown 圖片和影片 - 將滑鼠懸停在連結上以預覽 Markdown 中的圖片和影片。
- 增強的分支切換 - 在分支之間切換時無縫還原開啟的編輯器。
- 中鍵點擊貼上支援 - 使用滑鼠中鍵點擊在終端機中快速貼上文字。
- 透過 Remote - SSH 的 WSL - 連接到遠端電腦時使用 WSL via Remote - SSH。
- 協助工具檢視 - 從協助工具檢視導覽註解、聊天程式碼區塊和終端機命令。
- 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 上預覽)
請注意,所有快速搜尋命令和設定在其識別碼中不再具有「實驗性」關鍵字。例如,命令 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
...
請注意,兩個連結現在都已自動更新,因此它們都保持有效!
遠端開發
遠端開發擴充功能 可讓您使用 Dev Container、透過 SSH 或 Remote Tunnels 的遠端機器,或 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 企業版和 Copilot 商務版客戶支援。有關設定內容排除的資訊,請參閱 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 擴充功能和測試執行子進程之間的通訊切換來實現的,現在使用具名管道。
更新了次要測試錯誤
測試檢視現在使用 unittest 和巢狀類別內參數化測試正確顯示使用 testscenarios 的專案。此外,Test Explorer 現在可以處理具有符號連結的工作區中的測試,特別是符號連結路徑的子系工作區根目錄,這在 WSL 案例中特別有用。
Pylance 的效能改進
Pylance 團隊一直在收到回饋,指出 Pylance 的效能在過去幾個版本中已降低。我們已在記憶體消耗和索引效能方面進行了幾項較小的改進,以解決各種報告的問題。但是,對於那些可能仍然遇到 Pylance 效能問題的使用者,我們懇請透過命令面板中的 Pylance:報告問題 命令提交問題,最好包含記錄、程式碼範例和/或工作環境中安裝的套件。
Hex 編輯器
Hex 編輯器現在除了長期使用的「取代」模式外,還具有插入模式。插入模式允許在檔案內和檔案結尾新增位元組,並且可以使用 Insert 鍵或從狀態列切換。
Hex 編輯器現在也會在狀態列中顯示目前懸停的位元組。
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 的檔案監看器,監看應該更有效率、更可靠且消耗更少的資源。我們計劃在 5 月逐步為使用者啟用此功能,並監控是否有倒退。
預覽功能
適用於 PowerShell 的 VS Code 原生 IntelliSense
我們針對終端機內的 PowerShell IntelliSense 進行了原型設計已有一段時間,最近我們才有更多時間投入進行修飾。這就是它的外觀
目前,它會在 -
字元觸發,或在按下 Ctrl+空格鍵時觸發。若要啟用此功能,請在您的 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 功能。這包括
- 支援工作區編輯。
- 支援診斷。
- 支援建議的貼上為 (paste-as) 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 擴充功能的 Issues 和 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 Aux 視窗:還原最大化狀態 (Linux, Windows)
感謝您
最後但同樣重要的是,非常感謝 VS Code 的貢獻者。
Issue 追蹤
對我們的 Issue 追蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @ArturoDent (ArturoDent)
Pull Requests
對 vscode
的貢獻
- @4-tel: 修正:在偵錯主控台中搜尋以 "!" 開頭的行 #174146 PR #210178
- @CareyJWilliams (Carey Williams): 修正工作範本寫入空的 tasks.json PR #210675
- @cpendery (Chapman Pendery)
- 修正:捆綁錯誤導致終端機建議失敗 PR #208822
- 功能:新增 git-bash 支援至 Shell 整合 PR #208960
- 修正:改進 Windows 上終端機標記的放置 PR #209136
- 修正:當沒有完成項目時,終端機建議應隱藏模式 PR #210289
- 修正:split 在 git bash 中失敗 PR #210513
- @Ditoo29 (Diogo Pinto): 修正:換行字元的序列化 PR #209703
- @frankli0324 (Frank): 在執行 npm view 時停用 corepack 自動釘選功能 PR #210601
- @g-plane (Pig Fang): 當所有檔案已暫存或已提交時,自動關閉 Git 多重差異編輯器 PR #210327
- @gjsjohnmurray (John Murray)
- 改進
workbench.activityBar.iconClickBehavior
和workbench.activityBar.location
設定的描述 PR #210574 - 正確清除活動列圖示徽章 (修正 #210640) PR #210645
- 改進
- @grgar (George Garside)
- 請勿在 Web 上使用 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): 修正:在 Shell 整合 bash 檔案中將
cmd
設為區域變數 PR #208364 - @pagict (Premium): 功能:新增選單項目「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): 修正:迷你地圖區段標頭在首次載入時顯示不完整:#209603 PR #209605
- @sheetalkamat (Sheetal Nandi): 使用 vscode watches 進行 tsserver PR #193848
- @telamon (Tony Ivanov): 已修正 #114425 防止安裝時的 mime 污染 PR #209510
- @timorthi (Timothy Ng): 當行號顯示模式變更時,重新渲染黏性捲動 PR #210815
- @WardenGnaw (Andrew Wang): 為 selectAndStartDebugging 命令新增 'noDebug' PR #209893
- @zWingz (zWing): 修正:執行 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): 修正:將 json、jsonc 新增至
eslint.probe
的預設選項 PR #1830
對 vscode-hexeditor
的貢獻
對 vscode-json-languageservice
的貢獻
- @michaeltlombardi (Mikey Lombardi (He/Him)): 確保剖析器將 errorMessage 用於 minContains/maxContains PR #229
對 vscode-languageserver-node
的貢獻
- @werat (Andy Hippo): 當取消註冊不存在的功能時,不要崩潰 PR #1460
對 vscode-python-debugger
的貢獻
- @DavidArchibald (David Archibald): 修正偵錯工具在 WSL 上執行時附加至處理程序的問題 PR #267
對 vscode-vsce
的貢獻
- @yutotnh (yutotnh): 功能:忽略
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): 伺服器:更新 clojure-lsp 儲存庫和維護者 PR #1921
- @sz3lbi (szelbi): 新增 SAP CDS 伺服器 PR #1924
- @unvalley (unvalley): 文件:將 biome 新增至 LSP 伺服器 PR #1923
- @Wilfred (Wilfred Hughes): 修正 RequestCancelled 文件註解中的錯字 PR #1922
對 monaco-editor
的貢獻
- @timotheeguerin (Timothee Guerin): 新增 TypeSpec 語言的支援 PR #4450