2020 年 11 月(1.52 版)
1.52.1 更新:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:Intel | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2020 年 11 月版。正如在11 月迭代計劃中宣佈的那樣,我們繼續花了兩週時間處理 GitHub 問題和拉取請求,這在我們的問題整理指南中有詳細說明。在我們的所有 VS Code 儲存庫中,我們關閉(分類或修復)了 5242 個問題,甚至比我們在2019 年 10 月的上次整理迭代中關閉的 4622 個問題還要多。在我們關閉問題的同時,您建立了 2937 個新問題。主要的vscode 儲存庫現在有 2146 個未解決的功能請求和 884 個未解決的 bug。此外,我們還關閉了 144 個拉取請求。
和往年一樣,我們使用了 Benjamin Lannon 的即時跟蹤器來跟蹤我們的進度。
在專注於整理之後,我們還解決了幾個功能請求和社群拉取請求。這帶來了許多新功能和設定,其中一些主要亮點包括:
- 差異編輯器中的自動換行 - 內聯檢視和並排檢視現在都支援自動換行。
- 新擴充套件二分法功能 - 排除哪些擴充套件導致 VS Code 中出現問題。
- 鍵盤快捷鍵編輯器改進 - 從命令面板建立鍵繫結。
- 資源管理器中的撤消檔案操作 - 在資源管理器中撤消或重做檔案操作。
- 新的 Git 命令和設定 - 透過新功能最佳化您的版本控制體驗。
- 預覽編輯器改進 - 完全關閉預覽編輯器,並嘗試新的互動模型。
- 使用空格縮排時的粘性製表位 - 使用空格縮排時改進了體驗。
- 改進的基於單詞的建議 - 顯示來自其他開啟檔案的基於單詞的建議。
- 終端配置支援 - 從終端下拉選單修改終端設定。
- 新的遠端開發資源 - 檢視新的影片和學習模組。
工作臺
預覽編輯器改進
我們根據使用者反饋對預覽編輯器的處理方式進行了多項更新。
workbench.editor.enablePreviewFromQuickOpen
設定現在預設停用,因此從快速開啟開啟的編輯器將不再以預覽模式顯示。
當您開始程式碼導航(例如,使用轉到定義)時,您從中開始的編輯器將退出預覽模式並保持開啟狀態,而新編輯器將處於預覽模式,直到您進一步導航。
我們更改了所有自定義樹(例如,在擴充套件或 Git 檢視中使用的樹)以使其與內建樹(例如,檔案資源管理器)更一致地工作。這意味著,以下互動現在適用於所有這些樹:
- 雙擊或滑鼠中鍵單擊以非預覽模式開啟。
- Enter 以非預覽模式開啟(Space 以預覽模式開啟)。
Alt+Click
在活動編輯器旁邊開啟一個編輯器。
注意:如果您是使用我們自定義樹 API 的擴充套件作者,您也將受益於此更改。請確保將 vscode.open
或 vscode.diff
命令用於 TreeItem.command
以獲取新的預覽模式行為。
編輯器溢位選單中新增了一個選單項保持編輯器開啟,允許您完全關閉預覽編輯器。
恢復以前的會話視窗
現有 window.restoreWindows
設定的新值 preserve
允許您強制在關閉 VS Code 之前開啟的每個視窗在重新啟動 VS Code 時恢復,即使 VS Code 被明確要求開啟特定的資料夾或檔案。一個常見的示例是在平臺的資源管理器中雙擊檔案以在 VS Code 中開啟它,或使用終端開啟特定的檔案或資料夾。如果沒有 window.restoreWindows: preserve
設定,VS Code 將只按指示開啟檔案或資料夾,而不會恢復任何其他視窗。
拖放時停用編輯器組拆分
新設定 workbench.editor.splitOnDragAndDrop
可防止在拖放編輯器時拆分編輯器組。還可以透過按住 Shift 鍵 (macOS) 或 Alt 鍵 (Windows, Linux) 在拖放操作期間有條件地切換此功能。
資源管理器中的撤消檔案操作
檔案資源管理器現在支援所有檔案操作的撤消和重做:刪除、重新命名、複製、移動、新建檔案和新建資料夾。確保焦點在檔案資源管理器中,並觸發撤消或重做命令,您的最後一次檔案操作將分別被撤消或重做。請記住,我們為編輯器和檔案資源管理器提供了單獨的撤消堆疊,我們根據焦點選擇撤消哪個。
資源管理器中長時間執行操作的進度
我們現在在檔案資源管理器和狀態列中顯示長時間執行的檔案操作(超過 500 毫秒)的進度。還初步支援取消長時間執行的操作。這在複製大資料夾或從遠端位置下載資源時應該會有所幫助。
開啟編輯器排序
有一個新設定 explorer.openEditors.sortOrder
用於控制開啟編輯器列表中的排序順序。
值有:
editorOrder
- 編輯器按編輯器選項卡顯示的相同順序列出(預設)。alphabetical
- 編輯器在每個編輯器組內按字母順序排列。
alphabetical
排序僅影響“開啟編輯器”檢視 - 它不會以任何方式“移動選項卡”。
當您開啟大量檔案並且想要匹配相關檔案(例如,hello.component.js 和 hello.component.html)時,這會很有幫助。
可訪問的進度控制
工作臺進度顯示已變得更易於訪問。VS Code 設定了適當的 ARIA 角色,以便螢幕閱讀器可以報告 VS Code 中所有長時間執行操作的進度。大多數螢幕閱讀器預設情況下僅在進度持續超過 10 秒時才宣佈進度。
原始碼管理更改顯示其父資料夾路徑
從原始碼管理檢視開啟的差異編輯器現在將顯示其檔案路徑(當選項卡被停用時)。以前,只顯示檔名,但現在如果更改前和更改後的檔案在同一資料夾中,則會顯示父資料夾。
新的代理登入對話方塊預設啟用
我們的新代理登入對話方塊現在預設啟用。您可以閱讀我們的以前的發行說明瞭解更多詳細資訊。設定 window.enableExperimentalProxyLoginDialog
可用於啟用舊對話方塊,但我們將在不久的將來刪除此支援。如果您發現新登入對話方塊有問題,請透過提交問題告知我們。
改進的終端環境處理 (Linux, macOS)
當您首次透過 Dock 或啟動器(而不是終端)在 Linux 或 macOS 上啟動 VS Code 時,VS Code 會啟動一個後臺程序來解析您的 shell 環境(由 .bashrc
或 .zshrc
定義或更改)。然後,VS Code 會使用檢測到的所有環境變數,以便從終端或 Dock/啟動器啟動沒有任何區別,這在除錯或執行任務時很重要。
不幸的是,直到此後臺程序執行完畢,VS Code 才打開。為了不長時間阻塞啟動,VS Code 將在 10 秒後開始開啟。在這種情況下,VS Code 現在會通知您它無法解析 shell 環境並提供一個連結以瞭解更多資訊。
同樣,VS Code 現在會在三秒後顯示警告,表明 VS Code 啟動被阻止以解析您的 shell 環境。
我們正在積極研究改變我們的策略,以避免在後臺解析 shell 環境時阻止 VS Code 啟動,但這隻有在未來的里程碑中才能實現。
該領域的其他值得注意的更改是:
- 您現在可以在啟動第二個 VS Code 視窗之前從終端定義和更改環境變數,這些變數將正確覆蓋第一次啟動的變數,從而有效地允許按視窗設定環境變數(例如,這允許您在啟動之前透過
nvm
等工具按視窗更改 Node.js 版本)。 - 即使您在第二個視窗中切換資料夾,在啟動第二個 VS Code 視窗之前從終端設定的環境變數現在也會保留。
改進的工作臺溢位
每當沒有足夠的空間來容納工作臺中的所有檢視時,VS Code 現在將顯示捲軸以平移內容並讓您訪問所有內容。這適用於工作臺中的多個區域,例如側邊欄、編輯器網格等。
Sash 懸停邊框顏色
您現在可以自定義工作臺中 sash 的邊框懸停顏色 (sash.hoverBorder
)。
樹:展開模式
新的 workbench.tree.expandMode
設定允許您控制資料夾在樹中的展開方式:使用單擊或雙擊。
macOS Big Sur 更新
由於 Electron 9 的問題,每當您選擇重新啟動以更新時,VS Code 不會自動重新啟動,而是簡單地退出。在下一個 VS Code 版本(應包含 Electron 11)釋出之前,您必須在此情況發生時手動重新啟動 VS Code。在問題 #109728 中閱讀更多內容。
原始碼管理
保留原始碼管理檢視狀態
原始碼管理檢視狀態現在在會話之間保留。即使在退出並重新啟動 VS Code 後,摺疊的樹節點也會保持摺疊狀態。
原始碼管理側邊欄操作
新的 scm.diffDecorationsGutterAction
設定允許您控制單擊編輯器左側的原始碼管理側邊欄裝飾時發生的情況。可能的值是:
diff
- 單擊時開啟內聯差異預覽檢視(預設)。none
- 停用任何操作。
Git:新命令
已向命令面板添加了幾個新的 Git 命令:
- Git:揀選... - 將特定的提交揀選到您的分支。
- Git:重新命名 - 對活動檔案執行 Git 重新命名。
- Git:推送標籤 - 將所有本地標籤推送到遠端。
- Git:檢出到(分離)... - 以分離模式執行檢出。
Git:新設定
此外,還添加了新的 Git 設定:
git.pruneOnFetch
- 使 VS Code 在獲取遠端引用時執行git fetch --prune
。git.ignoreSubmodules
- 您現在可以確保 VS Code 忽略子模組儲存庫中的更改,這在大型 моно倉庫中很有用。git.openAfterClone
- 控制在克隆 Git 儲存庫後是否以及如何開啟資料夾:在當前視窗、在新視窗、未開啟任何資料夾時以及透過提示使用者。git.useCommitInputAsStashMessage
- 啟用 VS Code 在執行Git:暫存時使用原始碼管理輸入框中的提交訊息作為暫存訊息。git.followTagsWhenSync
- 在執行Git:同步時遵循標籤。git.checkoutType
- 控制在執行Git:檢出... 命令時顯示哪些引用以及按什麼順序顯示。
Git:暫存前提示儲存檔案
每當您嘗試暫存更改時,VS Code 現在會提示您儲存未儲存的檔案。
Git:更好的已刪除檔案合併衝突差異
已刪除檔案的合併衝突現在具有改進的差異體驗,顯示與刪除相反的分支上檔案的實際更改。
Git:新增遠端時獲取
VS Code 現在會在您新增遠端後立即執行 git fetch
,從該遠端獲取所有引用。
Git:分離檢出
現在可以在 VS Code 中以分離模式檢出引用。
Git:錯誤時顯示命令輸出
當 Git 命令丟擲錯誤時,您現在可以透過新的顯示命令輸出選項檢視完整的錯誤訊息。
Git:git.api.getRemoteSources 命令的新選項
git.api.getRemoteSources
Git API 命令選項現在支援一個可選的 branch?: boolean
屬性,該屬性將使 Git 提示使用者從遠端源中選擇一個分支,前提是遠端源提供程式支援。
此外,該命令現在支援 providerName?: string
選項,允許呼叫者繞過使用者選擇遠端源並直接使用特定提供程式。
除錯
斷點檢視:異常斷點的條件
VS Code 現在支援使用編輯條件上下文選單操作從斷點檢視編輯異常斷點的條件。
目前,只有 Mock Debug 擴充套件支援(假)異常斷點條件,但很快其他除錯擴充套件也會跟進——例如 JavaScript 偵錯程式。
異常區域可訪問性
編輯器中的異常資訊區域已變得更易於訪問。除錯時,一旦遇到異常,VS Code 將自動將焦點移動到異常區域,這將使螢幕閱讀器報告異常詳細資訊和堆疊幀。
現在還可以使用 Escape 鍵或異常區域右上角的 X 按鈕關閉異常區域。
使用者介面改進
除錯行顯示在概覽標尺中
當前除錯的行現在顯示在編輯器右側的概覽標尺中。對於此裝飾,我們使用已存在的 editor.stackFrameHighlightBackground
顏色。除此之外,VS Code 使用 editor.focusedStackFrameHighlightBackground
顏色在概覽標尺中顯示當前聚焦的除錯行(聚焦的除錯行是非頂部堆疊幀位置,這些位置是在呼叫堆疊檢視中手動選擇的)。
自動除錯配置改進
以前,我們引入了一項功能,使除錯擴充套件能夠分析當前專案並自動提供除錯配置。這些除錯配置是動態建立的,因此它們不會顯示在 launch.json
配置檔案中。在此里程碑中,我們還在 VS Code 重啟(和重新載入)時保留了最近使用的自動除錯配置,以使整個體驗更流暢。如果自動除錯配置在重啟後不再有效,VS Code 將在除錯啟動後要求您從同一提供程式中選擇新的自動配置。
除錯懸停:底部幫助文字/提示以切換到正常懸停
除錯懸停底部現在有幫助文字,使在除錯時將 Alt 切換到編輯器語言懸停更易於發現。提醒一下,當您除錯時,除錯懸停優先於語言懸停,導致無法看到語言懸停。您可以透過按住 Alt 修飾鍵從除錯懸停切換回語言懸停。只要按下 Alt,就會顯示語言懸停而不是除錯懸停。這使得在除錯時更容易閱讀 Javadoc 描述等懸停。
除錯控制檯:摺疊相同行
除錯控制檯現在摺疊相同的輸出並顯示出現次數。此功能使得理解重複的程式輸出變得更加容易。
launch.json 和 tasks.json 的新變數
已引入以下新變數:
${fileWorkspaceFolder}
- 解析為活動 VS Code 編輯器中開啟檔案的 Workspace 資料夾路徑。${fileDirnameBasename}
- 解析為活動 VS Code 編輯器中開啟檔案所在的資料夾名稱。${pathSeparator}
- 解析為作業系統用於分隔檔案路徑元件的字元。
serverReadyAction:按名稱啟動其他除錯配置
serverReadyAction 歷來能夠透過匹配 URL 啟動瀏覽器或 Chrome 除錯。此版本添加了一個新選項,可以透過名稱啟動其他任意配置。例如,在您的 launch.json
中,您可以指定:
"serverReadyAction": {
"action": "startDebugging",
"pattern": "listening on port ([0-9]+)",
"name": "Launch Browser"
}
這允許您在標準 Chrome 除錯配置中傳遞附加選項,並使用其他偵錯程式與 serverReadyAction
。
暫時停用自動附加
現在可以透過狀態列中的自動附加項或透過除錯:切換自動附加命令暫時停用自動附加。以這種方式停用自動附加僅適用於當前視窗,無需重新啟動終端。它可以以相同的方式重新啟用。
JavaScript 偵錯程式
可以在偵錯程式的更新日誌中找到完整的更改列表。
斷點診斷工具
有一個新工具旨在幫助排除阻止除錯或阻止斷點繫結的構建或配置問題。要使用它,請在除錯會話執行時執行除錯:為當前會話建立診斷資訊命令。在以後的 VS Code 版本中,此診斷工具的提示將在適當的時候自動出現。
預設可執行檔案位置設定
有一個使用者設定 debug.javascript.defaultRuntimeExecutable
,允許您指定 Node.js 或 Chrome 二進位制檔案的預設位置。例如,{ "pwa-chrome": "dev" }
將在您使用 Chrome 型別配置進行除錯時使用 Chrome 的“dev”構建。
請注意,要使用此新選項,您需要確保您的啟動配置是 pwa-node
而不是 node
,或者 pwa-chrome
而不是 Chrome。
任務
npm
內建 npm 擴充套件的設定 npm.packageManager
有一個新的預設值:auto
。auto
值將導致包管理器根據 .lock
檔案以及工作區中用於安裝依賴項的包管理器自動檢測。當檢測到多個 .lock
檔案時,仍將選擇一個包管理器,並會顯示警告指示存在衝突。
刪除最近的任務
任務快速選擇始終在頂部有一個最近任務部分。由於這是一個有價值的位置,您現在可以透過右側的刪除最近使用的任務按鈕從快速選擇中刪除任務來更好地管理您的最近任務。
擴充套件
在此里程碑中,我們對“擴充套件”檢視和擴充套件詳細資訊頁面進行了一些改進。
擴充套件檢視現在會自動重新整理。例如,安裝擴充套件後,該擴充套件會立即顯示在擴充套件:已安裝列表中。您還可以使用標題欄中的重新整理按鈕手動重新整理檢視。
主題:GitHub Light
擴充套件的詳細資訊頁面現在會顯示一個上下文選單,其中包含擴充套件的所有操作,就像在“擴充套件”檢視中一樣。
主題:GitHub Light
擴充套件詳細資訊頁面中的功能貢獻選項卡現在顯示擴充套件的啟用事件。
主題:GitHub Light
您現在可以同時停用一個擴充套件及其依賴項。當您嘗試停用具有依賴項的擴充套件時,會顯示一個帶有全部停用操作的通知。
主題:GitHub Light
您可以使用“擴充套件”檢視中擴充套件上下文選單中提供的新增到工作區建議或從工作區建議中刪除操作,從工作區建議中新增或刪除擴充套件。
主題:GitHub Light
當設定同步啟用時,擴充套件建議通知現在會顯示安裝下拉操作,就像在“擴充套件”檢視中一樣。
我們透過棄用 extensions.showRecommendationsOnlyOnDemand
設定來簡化擴充套件建議的配置。您現在可以使用 extensions.ignoreRecommendations
設定來控制擴充套件建議通知,並使用“擴充套件”檢視的可見性操作預設隱藏建議。
故障排除:擴充套件二分法
VS Code 的真正強大之處在於其擴充套件:主題擴充套件新增漂亮的顏色和圖示,語言擴充套件提供 IntelliSense 並啟用程式碼導航,偵錯程式擴充套件使您能夠深入研究錯誤。有時,問題是否由擴充套件引起,以及如果是,由哪個擴充套件引起,並不明顯。直到今天,您需要停用所有擴充套件,然後逐一重新啟用擴充套件以找到有問題的擴充套件。現在,藉助一項名為擴充套件二分法的新功能,此過程變得容易。它使用二分搜尋演算法快速識別導致問題的擴充套件。本質上,它停用您一半的擴充套件,並要求您檢查您看到的問題。如果問題消失了,那麼有問題的擴充套件肯定在停用擴充套件列表中,而不是在當前啟用擴充套件列表中。此過程會重複進行,直到只剩下一個擴充套件。
您可以透過命令面板中的幫助:開始擴充套件二分法命令 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 開始擴充套件二分法。然後,它會引導您完成重複停用和重新啟用擴充套件的過程。每次重新載入後,您都會被提示確認問題是否仍然存在。
擴充套件二分法會反覆要求您檢查問題是否重現。您始終可以透過停止二分法中止,如果您關閉二分法通知,您可以透過幫助:繼續擴充套件二分法命令繼續。
當擴充套件二分法過程完成後,系統會要求您針對該擴充套件提交問題。您也可以在此處保持擴充套件停用。
鍵盤快捷方式編輯器
在此里程碑中,我們對鍵盤快捷鍵編輯器進行了多項改進。
您現在可以透過命令面板,使用右側的配置鍵繫結齒輪按鈕為命令配置鍵繫結。
主題:GitHub Light
您可以從鍵盤快捷鍵編輯器為一個命令新增多個鍵繫結。
主題:GitHub Light
您現在還可以從搜尋輸入框中按特定鍵盤快捷鍵編輯器列進行篩選。
@command:commandId
- 按命令 ID 篩選。例如,@command:workbench.action.showCommands
。@keybinding:keybinding
- 按鍵繫結篩選。例如,@keybinding:f1
。@source:user|default|extension
- 按來源篩選。
您可以使用向上和向下箭頭在鍵盤快捷鍵編輯器中導航搜尋歷史記錄。
IntelliSense
來自其他文件的基於單詞的建議
VS Code 支援簡單的基於單詞的建議。當語言服務不可用或語言服務無法計算結果(例如在評論中輸入時)時,它們很有用。在此版本中,VS Code 現在可以配置為建議來自其他開啟檔案的單詞。使用 editor.wordBasedSuggestionsMode
設定 allDocuments
以建議所有開啟檔案中的單詞,使用 matchingDocuments
以建議相同語言的開啟檔案中的單詞(預設),並使用 currentDocument
僅建議當前檔案中的單詞。
隱藏內聯詳細資訊
VS Code 中的建議具有在建議旁邊單獨的彈出視窗中顯示的詳細資訊。詳細資訊檢視可以關閉,然後詳細資訊的預覽將與建議內聯顯示。內聯顯示建議的詳細資訊可能會佔用太多空間,因此現在可以透過新的布林設定 editor.suggest.showInlineDetails
停用。
TypeScript 建議顯示路徑
TypeScript 可以提供同時新增 import 語句的完成。但是,當有多個同名符號時,很難選擇正確的完成。此版本使其更簡單,因為自動匯入完成的路徑與標籤一起顯示。
自定義 CodeLens
您現在可以配置 CodeLens 項的字體系列和大小。
在上面的螢幕截圖中,字型和大小是使用這兩個設定自定義的:
"editor.codeLensFontFamily": "Comic Sans MS",
"editor.codeLensFontSize": 12,
編輯器
使用空格縮排時粘性製表位
如果您更喜歡使用空格縮排程式碼,有一個名為 editor.stickyTabStops
的新設定,它使 VS Code 將前導空格中的游標移動視為類似於製表符。
刪除單詞命令
現有的刪除單詞操作將從當前游標位置刪除到單詞開頭(例如 Windows/Linux 上的 Ctrl+Backspace)或刪除到單詞末尾(Windows/Linux 上的 Ctrl+Delete)。現在有一個新命令,它將刪除游標下的整個單詞,名為刪除單詞。
差異編輯器中的自動換行
差異編輯器的並排檢視和內聯檢視現在都支援自動換行。通常,差異編輯器將遵循與自動換行相關的編輯器設定。對於預設自動換行的 Markdown 檔案,差異編輯器也將自動換行:
如果您希望差異編輯器永不換行或始終換行,您可以使用新的 diffEditor.wordWrap
設定並將其配置為 "on"
或 "off"
(預設值為 "inherit"
,這意味著差異編輯器繼承編輯器換行設定)。
程式碼片段
隱藏擴充套件片段
現在可以從 IntelliSense 中隱藏擴充套件貢獻的片段。此功能在執行插入片段時可從“插入片段”選擇器中獲得。找到您想要隱藏的擴充套件片段,然後選擇右側的眼睛圖示。
隱藏的片段不會顯示在 IntelliSense 中,但仍可以透過插入片段使用。最後,使用“設定同步”時,隱藏的片段首選項將在您的裝置之間同步。
無字首片段
在編寫片段時,您現在可以省略 prefix 屬性。沒有字首的片段不會顯示在 IntelliSense 中,但可以透過插入片段使用。
整合終端
終端配置支援
您現在可以透過在終端下拉選單中選擇配置終端設定來修改終端設定。
鍵繫結管理
預設情況下,鍵繫結會分派給工作臺而不是終端,如 terminal.integrated.commandsToSkipShell
設定中所指定。當用戶輸入與這些命令之一對應的鍵繫結時,新通知會通知使用者,並提供配置相關設定的選項。
要將大多數鍵繫結傳送到終端而不是工作臺,您可以設定 terminal.integrated.sendKeybindingsToShell
。
語言
Markdown 內聯智慧選擇
使用以下命令在 Markdown 文件中擴充套件和收縮選擇:
- 擴充套件:⌃⇧⌘→ (Windows、Linux Shift+Alt+Right)
- 收縮:⌃⇧⌘← (Windows、Linux Shift+Alt+Left)
選擇適用於斜體、粗體、內聯程式碼塊和連結。
TypeScript 4.1
此版本的 VS Code 包含 TypeScript 4.1.2。此主要的 TypeScript 更新帶來了對許多新語言功能的支援——包括模板字面量型別和對 React 17 工廠的支援——以及改進了 JavaScript 和 TypeScript 的語言工具。一如既往,它還包含許多錯誤修復。
您可以在 TypeScript 部落格上閱讀有關 TypeScript 4.1 的更多資訊。
初步支援 JSDoc @see 標籤
JSDoc @see
標籤允許您在 JSDoc 註釋中引用其他函式和類。下面的示例顯示 crash
函式引用來自另一個檔案的 WrappedError
類:
// @filename: somewhere.ts
export class WrappedError extends Error { ... }
// @filename: ace.ts
import { WrappedError } from './somewhere'
/**
* @see {WrappedError}
*/
function crash(kind) {
throw new WrappedError(kind);
}
VS Code 現在將在執行重新命名時包含基本的 @see
引用。您還可以對 @see
標籤的內容執行轉到定義,並且 @see
標籤也會顯示在引用列表中。
我們計劃在未來版本中繼續改進對 @see
標籤的支援。
IntelliSense 行為和型別檢查的新設定
有兩個新設定控制 JavaScript 和 TypeScript 檔案中的 IntelliSense 和型別檢查行為,這些檔案不是顯式 tsconfig 或 jsconfig 專案的一部分。
-
js/ts.implicitProjectConfig.strictNullChecks
設定啟用嚴格空檢查。它預設值為false
。如果您正在使用 TypeScript,您肯定希望啟用嚴格空檢查,因為它可以捕獲許多常見的程式設計錯誤。
嚴格空檢查在 JavaScript 中也很有用。啟用嚴格空檢查後,懸停和 IntelliSense 資訊將顯示哪些型別可以是
undefined
和null
。如果您在 JavaScript 中啟用型別檢查,VS Code 還可以使用嚴格空檢查來捕獲一些常見的程式設計錯誤。 -
js/ts.implicitProjectConfig.strictFunctionTypes
設定啟用嚴格函式型別。它預設值為true
。嚴格函式型別更難以解釋,但通常也能改善 IntelliSense 並捕獲一些程式設計錯誤。
請記住,如果檔案是 jsconfig 或 tsconfig 專案的一部分,這些設定都將被覆蓋。
重新命名其他隱式 JS/TS 專案設定
JavaScript 和 TypeScript 的其他隱式專案設定已重新命名,以使其更準確:
javascript.implicitProjectConfig.checkJs
->js/ts.implicitProjectConfig.checkJs
javascript.implicitProjectConfig.experimentalDecorators
->js/ts.implicitProjectConfig.experimentalDecorators
這些設定被重新命名,因為它們適用於不是 jsconfig 或 tsconfig 專案一部分的 JavaScript 和 TypeScript 檔案。以前的設定名稱表明它們只適用於 JavaScript 檔案。
HTML
新的格式化程式設定
HTML 擴充套件使用 JSBeautify 作為格式化程式。更新到最新版本的 JSBeautify (1.13) 帶來了一些新的格式化程式設定:
html.format.wrapAttributesIndentSize
:當在html.format.wrapAttributes
中使用force aligned
和aligned multiple
時,或使用null
以使用預設縮排大小時的對齊大小。html.format.templating
:遵守 django、erb、handlebars 和 php 模板語言標籤。html.format.unformattedContentDelimiter
:將文字內容在此字串之間保持在一起。
最後一個設定允許您設定一個標籤來標記不應格式化的區域:
"html.format.unformattedContentDelimiter": "<!-- DoNotFormat -->"
onTypeRename 的新設定名稱
當匹配的結束標籤被修改時編輯標籤的鍵入時重新命名功能現在稱為連結編輯。啟用連結編輯的命令是開始連結編輯 (⇧⌘F2 (Windows, Linux Ctrl+Shift+F2)),Escape 停用連結編輯模式。
啟用它的設定現在是:
"editor.linkedEditing": true
對擴充套件的貢獻
遠端開發
遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
1.52 版的主要功能包括:
- Linux 遠端上的自動埠轉發。
- 在本地安裝遠端擴充套件的新命令。
- 您現在可以在容器中開啟儲存庫時選擇分支。
- 透過在後臺安裝擴充套件來改進伺服器啟動效能。
您可以在遠端開發發行說明中瞭解有關新擴充套件功能和錯誤修復的資訊。
Notebook
VS Code 團隊正在繼續致力於原生支援筆記本並改進其使用者體驗和效能。
改進大文字輸出渲染
如果內容過大,原生 Notebook 編輯器現在將截斷輸出,以確保 UI 始終響應。您仍然可以在文字編輯器中開啟輸出的完整原始內容。
擴充套件創作
檔案裝飾 API
FileDecorationProvider
API 現已最終確定,可供任何擴充套件使用。透過此 API,可以將環境資訊新增到檔案,SCM 和資源管理器中顯示的錯誤裝飾也使用此 API。
撤消資源更改
資源管理器操作(如建立檔案、重新命名檔案或刪除檔案)會引發事件,允許參與,例如 onWillCreateFiles
、onWillRenameFiles
或 onWillDeleteFiles
。此版本增加了對撤消此類資源管理器操作的支援,您應該知道在撤消操作時不會觸發上述事件。
新主題顏色
statusBarItem.errorBackground
:狀態列錯誤項背景顏色。錯誤項從其他狀態列條目中突出顯示,以指示錯誤情況。statusBarItem.errorForeground
:狀態列錯誤項前景色。錯誤項從其他狀態列條目中突出顯示,以指示錯誤情況。
錯誤背景顏色
主題作者現在可以利用新的主題顏色來顯示編輯器中的錯誤。編輯器錯誤、警告和資訊現在可以透過以下方式設定樣式:
editorError.background
editorWarning.background
editorInfo.background
更新的 Codicons
我們已將以下新圖示新增到我們的 codicon 庫中:
check-all
circle-large-filled
circle-large-outline
pass-filled
pinned-dirty
對檢視容器和檢視的 codicons 支援
您現在可以使用 codicons 作為檢視容器和檢視的圖示。示例:
"views": {
"explorer": [
{
"id": "npm",
"name": "NPM Scripts",
"icon": "$(code)",
"visibility": "hidden"
}
]
}
有關可用圖示的列表,請參閱圖示列表。
連結編輯範圍提供程式
以前稱為 OnTypeRenameProvider
的功能現在作為 LinkedEditingRangeProvider
釋出為公共 API。
對於文件中的給定位置,LinkedEditingRangeProvider
將具有相同內容的範圍連結起來。對其中一個範圍的更改可以應用於所有其他範圍。
這可以在 HTML 中看到。編輯起始標籤的名稱時,結束標籤也會自動更新。
FoldingRangeProvider.onDidChangeFoldingRanges
FoldingRangeProvider.onDidChangeFoldingRanges
已成為公共 API。它是一個可選事件,用於指示提供程式的摺疊範圍已更改。
使用查詢篩選器開啟鍵盤快捷鍵編輯器
擴充套件現在可以使用命令 workbench.action.openGlobalKeybindings
在開啟鍵盤快捷鍵編輯器時傳遞查詢文字。
vscode.commands.executeCommand('workbench.action.openGlobalKeybindings', 'query');
fs.isWritableFileSystem
新的 fs.isWritableFileSystem
API 允許您檢查給定檔案系統是否支援寫入。例如,要檢查 URL 為 example:/path/to/file
的文件是否在可寫檔案系統上:
switch (vscode.fs.isWritableFileSystem('example')) {
case true:
// The `example` filesystem supports writing.
// Keep in mind the permissions or other issues may still prevent
// a file from being written.
break;
case false:
// The `example` filesystem does not support writing (it is readonly).
break;
case undefined:
// VS Code does not know about the `example` filesystem
break;
}
自定義編輯器可以使用 fs.isWritableFileSystem
來確定它們是否顯示只讀 UI。
Markdown 樹工具提示 API
將 Markdown 用於 TreeItem
上的 tooltip
的 API 已最終確定。您可以在建立 TreeItem
時將 tooltip
設定為 Markdown 字串,或者,如果您的 Markdown 可能需要額外的時間計算,您可以使用新的 TreeDataProvider.resolveTreeItem
來設定工具提示。
TreeItem 突出顯示 API
期待已久的 TreeItemLabel
API 已最終確定。此 API 可用於在 TreeItem
的 label
上設定突出顯示。您可以在“引用”檢視中看到它的實際應用。
listDoubleSelection 和 listMultiSelection
現在可以在貢獻的樹檢視中使用上下文值 listDoubleSelection
和 listMultiSelection
進行命令啟用。
檢視歡迎內容按鈕啟用
您現在可以為檢視歡迎內容部分設定啟用上下文子句。
建議的擴充套件 API
每個里程碑都會帶來新的提議 API,擴充套件作者可以嘗試使用它們。一如既往,我們希望得到您的反饋。要嘗試提議的 API,您需要執行以下操作:
- 您必須使用 Insiders 版本,因為提議的 API 經常更改。
- 您的擴充套件的
package.json
檔案中必須包含以下行:"enableProposedApi": true
。 - 將最新版本的 vscode.proposed.d.ts 檔案複製到您專案的源位置。
您不能釋出使用提議 API 的擴充套件。下個版本中可能會有破壞性更改,我們絕不希望破壞現有擴充套件。
狀態列條目背景顏色 API
我們建議為 StatusBarItem
新增一個新屬性 backgroundColor
,以設定狀態列條目的背景顏色。目前僅支援 statusBarItem.errorBackground
,以避免狀態列看起來過於花哨。我們可能會在未來擴充套件對更多顏色的支援。
此新 API 的用例是使擴充套件能夠在狀態列中指示錯誤情況。例如,ESLint 擴充套件可能會決定使用此顏色來提醒使用者 ESLint 尚未為工作區啟用。
更多可主題化的圖示
產品圖示主題的工作已恢復。產品圖示主題是一項提議的功能,允許您使用一組自定義圖示為 VS Code 設定樣式。它適用於內建檢視中的所有圖示,以及使用 Codicon 庫中圖示的所有擴充套件。產品圖示主題將在下一個里程碑中公開發布。
已新增更多圖示名稱,特別是針對除錯、擴充套件和終端檢視,以及設定和筆記本編輯器。
檢視更新的圖示列表。
移除提議的日誌記錄 API
大約一年前曾有一個日誌記錄 API(LogLevel
和 onDidChangeLogLevel
)的提案,現已移除。擴充套件可以使用輸出通道 API 進行日誌記錄,或者,當使用自定義日誌記錄器時,使用 ExtensionContext#logUri
。
初步新增提議的測試 API
我們正在研究 VS Code 中的測試,並且該 API 的第一個版本現在出現在 vscode.proposed.d.ts
中。請閱讀連結的問題以獲取更多上下文,如果您有任何意見,請參與。我們預計將比觀察者部分更早地釋出 API 的提供程式部分。
新的上下文鍵運算子
<
、<=
、>
或 >=
現在可用於上下文鍵表示式。這是一個貢獻命令的示例,該命令僅在開啟兩個或更多工作區資料夾時出現:
"contributes": {
"menus": {
...
"when": "workspaceFolderCount >= 2"
...
}
}
語言伺服器協議
語言伺服器協議 3.16 版本的功能集已最終確定,並可在LSP 協議站點上獲取。3.16 版本的主要亮點是:
詳細的更改日誌還包含對現有請求的所有次要改進。
除錯介面卡協議
支援條件異常
在此里程碑中,2020 年 9 月的條件異常提案已最終確定,現在是除錯介面卡協議 (DAP) 1.43 版的一部分。
協議新增透過新的可選 filterOptions
屬性擴充套件了 setExceptionBreakpoints
請求,用於設定異常過濾器及其條件。除錯介面卡可以透過 supportsExceptionFilterOptions
功能宣佈其支援條件異常功能。
StackTraceResponse.totalFrames 的語義已澄清
除錯介面卡協議中 supportsDelayedStackTraceLoading
功能的描述似乎表明,為了使延遲堆疊幀載入工作,介面卡必須用可用堆疊幀的正確數量填充 StackTraceResponse
的 totalFrames
欄位。然而,對於某些偵錯程式或執行時,此值不容易計算,這使得支援延遲堆疊幀載入變得昂貴。
由於堆疊幀總數從未在 UI 中顯示,我們澄清了 totalFrames
的原始 - 有些不足的 - 語義描述:除錯介面卡現在可以自由地為 totalFrames
提供一個大(不正確)值,並且客戶端應該準備好接收比請求的幀更少的幀,並將其用作已到達堆疊末尾的指示。
RunInTerminalRequestArguments.cwd 的語義已澄清
由於 runInTerminal
請求的 cwd
屬性(“當前工作目錄”)是非可選的,因此無法省略該屬性以表達“不關心”的情況。例如,如果除錯介面卡知道“cwd”已經正確,並且無需客戶端生成“更改目錄”命令,則 DAP 規範未描述如何實現此目的。
為了解決這個缺點,我們透過補充以下內容澄清了 DAP 規範:客戶端僅在 cwd
屬性包含非空路徑時才需要執行更改目錄命令。
工程
為問題報告器和程序資源管理器啟用沙盒和上下文隔離
為了從啟用 Electron 的沙盒和上下文隔離中獲得更多反饋,我們將其推送到我們的程序資源管理器和問題報告器視窗啟用。此配置最終也將成為主 VS Code 視窗的預設配置。
sandbox
已啟用contextIsolation
已啟用- 資源透過自定義
vscode-file
方案(而不是file
)提供服務。
NPM 依賴項的安全供應鏈
我們透過利用原始碼掃描和測試服務,改進了我們的 NPM 依賴項供應鏈,以提高我們的構建管道安全性和可靠性。
Linux ARM 儲存庫
VS Code for ARM 架構(aarch64
和 armhf
)現在釋出在以下 Linux 儲存庫中:
新命令
鍵 | 命令 | 命令 ID |
---|---|---|
在差異編輯器中聚焦主要側邊 | workbench.action.compareEditor.focusPrimarySide |
|
在差異編輯器中聚焦次要側邊 | workbench.action.compareEditor.focusSecondarySide |
|
在差異編輯器中聚焦另一側 | workbench.action.compareEditor.focusOtherSide |
文件
遠端開發
有幾種新的方式可以瞭解 VS Code 遠端開發:
- 觀看討論 VS Code 遠端開發的“製表符與空格”影片。
- 或者嘗試涵蓋如何使用 Docker 容器作為開發環境的分步學習模組。
GitHub 整合
- 檢視我們關於如何利用編輯器的 GitHub 整合的新學習模組:Visual Studio Code 中的 GitHub 簡介。
我們如何開放地製作 VS Code
觀看開發人員 Alex Ross 和 Benjamin Pasero 在 GitHub Universe 上的會議錄影我們如何開放地製作 VS Code,瞭解我們的團隊如何將 VS Code 構建為開源並在 GitHub 上與社群協作。
在 Chromebook 上使用 VS Code
您知道您可以在 Chromebook 上執行 VS Code 嗎?我們認為這對學生和初級程式設計師來說是一個很好的選擇。透過我們的部落格文章在 Chromebook 上學習 VS Code,瞭解如何在 Chrome OS(透過 Crostini)上設定 VS Code,其中包含使用 JavaScript 和 Python 開始編碼的說明。
值得注意的修復
- 39543:在拆分 json 設定編輯器的概覽標尺中突出顯示匹配的單詞。
- 67905:同時安裝多個擴充套件 vsix 檔案
- 83187:一個配置中的環境變數洩漏到另一個配置中。
- 88703:Settings UI 中未報告 URI 格式欄位上的錯誤
- 97202:${config
} 變數在多根工作區啟動配置中解析失敗。 - 98041:Emmet 忽略“評估數學表示式”上的選擇
- 107320:當安裝包含 main 的擴充套件時,不應出現主題選擇器。
- 107461:除錯控制檯上的歷史記錄未保留
- 109111:除錯控制檯不遵守使用者設定。
- 110077:資料斷點未顯示在斷點檢視中。
- 110426:支援從 stdin 讀取的
--diff
引數 - 110738:允許擴充套件為自定義檔案系統方案設定編輯器標籤
- 110775:Shift 右鍵單擊的“永久刪除”選項已消失
- 110854:支援已開啟編輯器中檔案系統提供程式的只讀更改
- 110905:CLI:除非強制,否則如果擴充套件已安裝,則不訪問 Marketplace
感謝
最後但同樣重要的是,衷心感謝以下本月為 VS Code 做出貢獻的人們:
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Simon Chan (@yume-chan)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
對 vscode
的貢獻
- Aasim Khan (@aasimkhan30)
- 修復 ListWidget escape 按鈕行為 PR #110760
- 為複選框添加了輪廓偏移,以使焦點可見。 PR #110038
- @AE1020:使捲軸中的點選按頁移動 PR #104923
- @alisonnoyes:Quiet Light 主題差異語法高亮 PR #107926
- Andrew Casey (@amcasey):公開 TS 伺服器跟蹤 PR #110534
- Andrew Branch (@andrewbranch):[typescript-language-features] 更新 importModuleSpecifierPreference 值 PR #110536
- @apogeeoak:防止重新開啟 markdown 預覽時出錯。(#_107205) PR #111449
- Jonathan Belcher (@belcherj):修復 Firefox 的合成邏輯 PR #106873
- @BTNDev:更新了 javascript for in 片段 PR #111062
- Borja Zarco (@bzarco):在沒有
folderUri
的情況下解析配置變數時不要失敗。PR #97203 - @chanmaoooo:新增 'deleteWordEntire' 命令 PR #109511
- chenjigeng (@chenjigeng):修復 HTML 中編寫 javascript 時 Hover 樣式不正確 PR #111110
- @dataleaky:更新 package.json PR #111661
- Devansh Jethmalani (@devanshj):feat(quickinput):支援 codicons in prompt PR #102898
- Aadhish Sriram S (@dfireBird):feat:檢測預設暫存訊息 microsoft#106907 PR #107074
- @digeff:為 searchView/context 添加了擴充套件點 PR #109049
- Nathaniel Palmer (@diminutivesloop):失敗時提供顯示 git 命令輸出 PR #95354
- Dor Mesica (@dormesica):在丟棄暫存之前添加了警告。 PR #94267
- David Sanders (@dsanders11)
- 修復錯誤訊息 PR #111269
- 為 vscode.RelativePattern 的 base 引數新增 vscode.Uri 型別 PR #111155
- 使用標籤作為“關注連結”命令的工具提示 PR #110917
- 澄清命令啟用的效果 PR #110423
- 使用 Array.flat() PR #110189
- Ikko Ashimine (@eltociear):修復拼寫錯誤 'sequece' 為 'sequence' PR #109643
- Erik Krogh Kristensen (@erik-krogh):修復解析 markdown 檔案時災難性的回溯 PR #109964
- Jakub Piskiewicz (@eXotech-code):添加了自動開啟克隆儲存庫的設定。 PR #94369
- Fabio Zadrozny (@fabioz):FileSystemWatcher 限制的文件 (#_60813) PR #110858
- Himanshu Kapoor (@fleon):允許 monaco-editor 與 Jest 正常工作 PR #109833
- Ben Curtis (@Fmstrat):新增 ignoreSubmodules 選項 PR #88772
- John Murray (@gjsjohnmurray)
- 修復 #109733 防止標題欄中出現雙重“(只讀)”字尾 PR #109736
- 修復 #106487 為 viewsWelcome 貢獻的按鈕實現“啟用”子句 PR #107705
- Guillaume Lachance (@glachancecmaisonneuve):Windows 資源管理器圖示 PR #86283
- Hung-Wei Hung (@hunghw):建立帶更改檔案的空提交 #107753 PR #107958
- Dhruva Srinivas (@IQUBE-X):向 Markdown 片段新增定義列表 PR #110026
- Jean Pierre (@jeanp413)
- 修復擴充套件編輯器在快速導航導航欄時出現的故障 PR #110370
- 修復終端在列印長行時滾動時的延遲 PR #110213
- 改進了合併衝突中已刪除檔案的差異 PR #91245
- 修復原始碼控制記住樹摺疊狀態 PR #89313
- Jessica Petty (@jepetty):新增節點任務以修復損壞的 Rich Nav 構建 PR #110762
- Josias (@justjosias):拼寫錯誤 hightlight -> highlight PR #108451
- @KapitanOczywisty:比較時忽略 LineDecoration 順序 PR #108379
- Ken Aoki (@kena0ki):更新 xterm.css PR #109850
- Wenlu Wang (@Kingwl)
- Oliver Larsson (@LarssonOliver): 實現 git.pruneOnFetch 設定 PR #89249
- Jiaxun Wei (@LeuisKen): 在 ExtensionUrlBootstrapHandler 中快取 OpenURLOptions PR #110725
- Jade (@lf-): 明確的 fontLigatures 描述 PR #109987
- Logan Rosen (@loganrosen): 將 .ember-cli 標記為 jsonc 而不是 json PR #110541
- Mohammed Al-Dahleh (@maldahleh): #109255 - 為設定 "檔案: 編碼" 下拉選單新增編碼描述 PR #109551
- Mathias Rasmussen (@mathiasvr): 僅允許 Git 修改訊息 PR #91838
- MD Asif Hasan (@mdasifhasan): 修復 Pull 和 Sync 的 fetchOnPull 行為 PR #99324
- Seth Fitzsimmons (@mojodna): 拼寫錯誤:Uncommited → Uncommitted PR #109119
- Nicholas Rayburn (@nrayburn-tech): 為 launch.json 新增 dirSep 變數 PR #105887
- oli (@olivercoad): 處理衝突的多字元自動關閉對 PR #110094
- @Pikachu920: 防止“null”不必要的連線到反饋 URL PR #111325
- Pablo Sebastian Greco (@psgreco)
- 進一步清理 armhfp 和 aarch64 rpm 硬編碼依賴 PR #111253
- 修復 armv7hl 和 aarch64 的硬編碼 rpm 依賴 PR #111198
- Rotem Bar (@rotem-bar): feat(extensions): 在停用帶有啟用依賴的擴充套件時,添加了一個停用相關依賴的選項 PR #104997
- Andreas Ziegler (@rupran): scmViewPane: 不在提交訊息輸入欄位中渲染空白 PR #107913
- Dmitry Sharshakov (@sh7dm): Git: 在儲存前詢問是否儲存未儲存的檔案 PR #94358
- Shivang Tripathi (@shivangg): feat: 自動檢測 npm.packageManager #102050 PR #102494
- Shunsuke Iwamoto (@shskwmt): 修復 #93946。滾動時移除焦點。 PR #94280
- Emanuel Tesař (@Siegrift): 啟用 tsec 作為語言服務外掛 PR #108682
- Jonathan Mannancheril (@SneakyFish5)
- Git: 新增 cherryPick 命令 PR #104614
- 新增 git.pushTags 設定 PR #104312
- Scott Davis (@stdavis): feat: 實現 Git: 推送標籤命令 PR #110096
- Suman B K (@sumanbk92): 將 ` 包含在 foldEndPairCharacters 中 PR #110108
- Tim (@Timmmm): 新增原子標籤選項 PR #107126
- @turara
- 更新 OneSnippet#move 方法以修復 #96545。 PR #108964
- 為 SearchView 新增 updateTextFromFindWidgetOrSelection 方法 PR #108401
- 更新 CodeActionOnSaveParticipant PR #108193
- Alexander (@usernamehw)
- 新增一個設定,無論語言如何,都包含基於單詞的建議 PR #110494
- 修復 #99971 - 在功能貢獻中顯示啟用事件 PR #100010
- Valter Pires (@vfcp): 更正 "Tomorrow Night Blue" 主題在 package.nls.json 中的 themeLabel PR #110178
- Jason Wang (@wangjaso): 提供選項,將 git.api.getRemoteSources 預設設定為 github 提供商 PR #106368
- Eno Yao (@Wscats)
- 支援按鍵繫結瀏覽器上下文鍵 PR #110902
- 支援大於和小於 PR #110846
- 最佳化程式碼可讀性 PR #110572
- @xndcn: 修復小地圖滑塊的覆蓋區域 PR #108448
- winwin2011 (@YuJianghao): 修復進度位溢位錯誤 PR #110411
- Zuckjet (@Zuckjet): 懸停資訊不應在單詞內中斷 PR #106885
對 language-server-protocol
的貢獻
- @KamasamaK
- Danny Tuppeny (@DanTup): 調整以簡化規範解析 PR# 1156
對 vscode-languageserver-node
的貢獻
- Niccolò Belli (@darkbasic): 實現 ShowTextDocumentRequest PR #490
- Danny Tuppeny (@DanTup): 新增對 onProgress 中介軟體的支援 PR #690
- Julien HENRY (@henryju): 使用 appName 作為客戶端資訊而不是 'vscode' PR #697
對 vscode-eslint
的貢獻
對 vscode-js-debug
的貢獻
- Momtchil Momtchev (@mmomtchev): 新增對除錯外部節點內部結構的支援 PR #824
對 vscode-html-languageservice
的貢獻
- Jean Pierre (@jeanp413): 修復自動完成文字編輯輸出 </[object Object]> PR #93
對 node-jsonc-parser
的貢獻
- Dan Russell (@dangrussell): 將副檔名新增到 typings 屬性值 PR #43
對 vscode-generator-code
的貢獻
- Tom Sherman (@tom-sherman): 將已棄用的
assert.equal
替換為strictEqual
PR #229 - Tomáš Hübelbauer (@TomasHubelbauer): 允許透過 CLI 傳遞 gitInit、pkgManager 和 webpack PR #227
對 vscode-vsce
的貢獻
- Fabian Meumertzheim (@fmeum): 確保 *.vsix 中的 package.json 可寫 PR #508
- James George (@jamesgeorge007): chore: 移除過時程式碼 PR #511
- Matan Gover (@matangover): presense -> presence PR #510