2022 年 10 月 (版本 1.73)
更新 1.73.1:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2022 年 10 月版。此版本包含許多我們希望您會喜歡的更新,其中一些主要亮點包括
- 搜尋包含/排除資料夾 - 在樹狀檢視中快速設定要包含/排除的資料夾。
- 命令中心模式快捷方式 - 在最近檔案列表之前顯示常用模式。
- 合併編輯器改進 - 訪問“組合”選項以自動合併衝突。
- Markdown 自動連結更新 - 在重新命名/移動時更新檔案和影像連結。
- 更多音訊提示 - 任務完成或失敗,終端快速修復可用。
- vscode.dev 保護分支工作流 - 在提交到受保護分支時建立新分支。
- 新 Python 擴充套件 - 用於 isort、Pylint 和 Flake8 的新獨立擴充套件。
- 開發容器模板 - 基於現有模板建立新的開發容器。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
內測版:想盡快嘗試新功能?您可以下載每晚的內測版構建,並儘快嘗試最新的更新。
輔助功能
新音訊提示
有新的音訊提示可幫助處理任務和終端。
- 任務完成 - 任務完成時發出聲音(由
audioCues.taskCompleted設定控制)。 - 任務失敗 - 任務失敗時發出聲音(
audioCues.taskFailed)。 - 終端快速修復 - 如果當前行有快速修復可用(
audioCues.terminalQuickFix)。
螢幕閱讀器模式下的自動換行
在螢幕閱讀器模式下執行 VS Code 時,自動換行已被停用,以防止螢幕閱讀器體驗下降。此問題已修復,可以透過 editor.wordWrap 啟用。
輔助功能設定標籤
現在提供了一個 accessibility 標籤,以提高輔助功能相關設定的發現性。
首選項:開啟輔助功能設定 命令將開啟設定編輯器,並應用 @tag:accessibility 篩選器。
工作臺
搜尋包含和排除資料夾
在搜尋檢視的結果樹狀檢視中右鍵單擊資料夾時,上下文選單中現在有兩個新選項。
-
選擇將搜尋限制到資料夾會將所選資料夾路徑新增到要包含的檔案文字框中。在此文字框中新增路徑會將搜尋結果限制為符合列出路徑或模式的結果。

主題:GitHub Dark Dimmed(在 vscode.dev 上預覽)
-
選擇從搜尋中排除資料夾會將所選資料夾路徑新增到要排除的檔案文字框中。在此處新增路徑將排除任何符合列出路徑或模式的搜尋結果。

主題:GitHub Dark Dimmed(在 vscode.dev 上預覽)
命令中心模式快捷方式
命令中心添加了一個新的頂部區域,可以輕鬆發現如何導航到檔案、執行命令等。
這個簡短的模式列表還提供了鍵盤繫結提示,以便您可以直接跳轉到最常用的模式(例如轉到檔案),而無需經過命令中心。
命令中心 UI 預設不顯示在標題欄中,但您可以透過視窗:命令中心(window.commandCenter)設定或右鍵單擊標題欄並勾選命令中心來啟用它。
設定編輯器工作區信任和策略指示器
由於受限模式工作區或在組織策略下進行管理而未應用的設定現在使用指示器來顯示其狀態。使用者即使在受限模式工作區中也可以讀取和寫入工作區設定(使用 settings.json 檔案始終可以做到),但在計算要在受限工作區中使用的設定的最終值時,不會考慮工作區設定值。
預設的淺色主題也進行了一些調整,指示器區域中的 codicon 渲染更清晰,焦點邊框更緊密。

大綱預設摺疊狀態
有一個新設定 outline.collapseItems,用於控制大綱檢視中專案的預設摺疊狀態。預設值為 false,這意味著大綱專案預設展開。將其設定為 true 可使大綱專案預設摺疊。此設定可以按語言設定,也適用於筆記本。
重新排列檢視選單
在 VS Code 選單欄的“檢視”選單中,最後一組是不斷增長的編輯器操作列表。為了平衡選單增長和功能,我們將主要與外觀相關的專案移到了外觀子選單下。自動換行和粘性滾動選項保留在選單底部的原始位置。

主題:GitHub Light Default(在 vscode.dev 上預覽)
輸入 UI 上的圓角
文字輸入、文字區域和下拉選單現在都顯示圓角,以匹配上一個版本中應用於按鈕的相同樣式。

快速選擇列表樣式更新
快速選擇 UI 中使用的列表樣式已稍作更新,帶有圓角和增加的左右邊距。
更新列表檢視的 codicons
平面列表和樹狀列表檢視現在使用更清晰的 codicons 來表示列表型別。
輔助側邊欄前景色
輔助側邊欄通常模仿主側邊欄的主題設定,但並非所有主題鍵都能被正確拾取。輔助側邊欄現在正確使用 "sideBar.foreground" 主題鍵。
在右側帶有資源管理器的主要側邊欄和左側帶有大綱檢視的輔助側邊欄都使用相同的粉紅色前景色。

主題:GitHub Light Default(在 vscode.dev 上預覽)
不再有“太多摺疊範圍”通知
出於效能原因,我們將編輯器中顯示的摺疊範圍數量限制為 5000。此限制可以透過設定 editor.foldingMaximumRegions 配置。當超出限制時,VS Code 過去會顯示通知。現在,狀態列中的語言狀態懸停會顯示該資訊。

預設摺疊提供程式
通常,當有多個摺疊提供程式對某種語言處於活動狀態時,VS Core 會嘗試合併結果。如果存在衝突的範圍,則會丟棄一些範圍。此外,並非所有摺疊提供程式都可以與其他提供程式組合。
新的 editor.defaultFoldingProvider 設定允許您選擇要使用的摺疊提供程式。提供程式的名稱是貢獻它的擴充套件 ID({publisher}.{extension})。
以下示例將(假設的)擴充套件 aeschli.better-folding 的摺疊提供程式設定為 JavaScript 的預設值。
"[javascript]": {
"editor.defaultFoldingRangeProvider": "aeschli.better-folding"
}
按輸出通道設定日誌級別
您現在可以使用命令開發人員:設定日誌級別...按日誌輸出通道設定日誌級別。當您只想檢視特定日誌輸出通道的更多日誌時,這很有用。該命令將首先顯示輸出通道列表,選擇一個後,系統將提示您設定日誌級別。

您還可以從命令列按擴充套件設定日誌級別。當您想檢視特定擴充套件的更多日誌時,這很有用。例如,以下指令碼允許您啟動 VS Code,並將 Git 擴充套件的日誌輸出通道的預設日誌級別設定為 debug。
code --log vscode.git:debug
新的 list.collapseAllToFocus 樹狀檢視命令
一個新的命令 list.collapseAllToFocus 允許您遞迴摺疊當前聚焦的樹專案。當您想要摺疊不是根節點的樹專案的所有子節點時,這很有用。該命令沒有預設的鍵盤繫結,但您可以透過“鍵盤快捷方式編輯器”(⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S))新增自己的鍵盤快捷方式。
合併編輯器
在這個里程碑中,我們繼續完善合併編輯器,此更新包含了一些錯誤修復和一些新功能。
接受雙方追加衝突
在此版本中,始終可以選擇接受傳入和接受當前。當選擇了這兩個選項時,合併編輯器會追加相應的更改行。
在下面的短影片中,由於兩行都被接受,RelativePattern 被匯入了兩次

當衝突可以在字元級別無衝突解決時,會顯示選項接受組合,可用於自動解決衝突。
在下面的影片中,兩個符號都被匯入到同一個 import 語句中

針對基礎的差異裝飾
當基礎檢視開啟時,顯示當前聚焦側與基礎之間的差異。此差異檢視可用於更好地理解傳入和當前中的更改。

差異演算法改進
合併編輯器的預設差異演算法已更改。新差異演算法針對合併場景進行了最佳化。在常見情況下,塊數最少,插入位置得到最佳化。如果新演算法導致問題,可以使用設定 "mergeEditor.diffAlgorithm": "smart" 切換回上一個演算法(預設現在是 experimental)。
以下螢幕截圖演示了插入方面的改進。請注意,兩種差異都是正確的,但新行為更清晰地突出了插入的文字
舊行為

新行為

新差異演算法目前僅在合併編輯器中預設啟用。如果您希望常規差異編輯器也使用新差異演算法,可以設定 "diffEditor.diffAlgorithm": "experimental"。
導航衝突
您現在可以單擊衝突計數器跳轉到下一個未處理的衝突

語言
Markdown 檔案重新命名/移動時自動連結更新
厭倦了在移動或重新命名檔案時意外破壞 Markdown 中的連結或影像?試試新的 markdown.updateLinksOnFileMove.enabled 設定吧!
啟用此新設定後,當在 VS Code 資源管理器中移動或重新命名檔案時,VS Code 會自動更新 Markdown 中的連結和影像

您可以使用 markdown.updateLinksOnFileMove.include 控制受影響的檔案型別。預設情況下,它對所有 Markdown 檔案和常見影像檔案格式啟用。
Markdown 插入連結命令
新的Markdown:插入工作區中的檔案連結和Markdown:插入工作區中的影像命令允許您使用檔案選擇器快速插入連結和影像到 Markdown 中
請記住,這些命令只是將連結和影像新增到 Markdown 檔案的一種選項。您也可以使用Markdown 路徑完成,甚至可以從 VS Code 的資源管理器中拖放檔案來插入連結或影像。
Markdown 未使用和重複連結定義診斷
我們內建的 Markdown 驗證現在可以提醒您未使用或重複的連結定義。您可以使用 markdown.validate.enabled 啟用此功能

如果您想對這些錯誤進行更精細的控制,可以使用這些 markdown.validate 設定來停用這些錯誤(ignore)或更改其嚴重性(warning、error)
markdown.validate.duplicateLinkDefinitions.enabledmarkdown.validate.unusedLinkDefinitions.enabled
還有一個快速修復程式可以刪除重複或未使用的連結定義。
Markdown 連結出現次數高亮顯示
Markdown 中的連結出現次數高亮顯示會顯示游標下的連結在當前文件中所有被使用的地方

請注意,當游標位於文件中的第一個連結上時,所有指向 First Header 的連結以及標題本身都會在文件中和文件右側的裝訂線中高亮顯示。
此功能預設關閉。要啟用它,請開啟 markdown.occurrencesHighlight.enabled 設定。
新 Razor 語法高亮語法
VS Code 有一個新的、維護更好的 Razor 語法,用於 Razor 檔案的語法高亮顯示。新語法得到積極維護,修復了舊語法中存在的問題。
Web 版 VS Code
改進的分支建立和保護工作流
當您在 VS Code for Web 上的 GitHub 或 Azure Repos 儲存庫中時,提交到受保護的分支現在會通知您當前分支受保護,並提示您建立新分支。
此流程還將遵循以下設定
git.branchPrefix允許您使用配置的字首預填充分支名稱快速輸入。"git.branchProtectionPrompt": "alwaysCommitToNewBranch"允許您在嘗試提交到受保護的分支時跳過提示,直接進入建立新分支的快速輸入。
此外,當您建立新分支時,可以透過配置 "remoteHub.switchToCreatedBranch": "always" 來繞過關於是否切換到新建立分支的提示。
上述所有內容也適用於在桌面版 VS Code 上使用 GitHub Repositories 或 Azure Repos 擴充套件。
Web 中的本地化改進
幾個月前,我們開始著手 VS Code for the Web 的本地化工作。到目前為止,VS Code 核心及其擴充套件清單中靜態宣告的字串已經可以本地化。本次迭代中,我們完成了最後一塊拼圖:擴充套件程式碼中的字串。這是因為我們上個月提出的本地化 API 已經定稿。
隨著我們在所有擴充套件中繼續採用這個新 API,請留意 VS Code 中將有更多部分被本地化。如果您是擴充套件作者,可以在 vscode-l10n 儲存庫中瞭解有關新 API 的更多資訊。
對擴充套件的貢獻
Python
遷移到 isort 擴充套件
在 2022 年 5 月的版本中,我們宣佈了一個新的 isort 擴充套件,它與 Python 擴充套件協同工作以對匯入進行排序。例如,當您開啟一個檔案並且匯入不遵循 isort 標準時,它會顯示錯誤診斷並提供程式碼操作來修復匯入順序。在此版本中,我們正在遷移到使用獨立的 isort 擴充套件,而不是內建在 Python 擴充套件中的 isort 支援,透過自動將其與 Python 擴充套件一起安裝。
Pylance 預設關閉自動匯入
自從 Pylance 首次實現自動匯入以來,我們收到了很多關於它如何令人困惑,有時甚至令人惱火的反饋,例如當意外接受建議時自動將匯入新增到檔案中。從這個版本開始,在使用 Pylance 時,包預設不再自動匯入。如果您想為 Python 專案重新啟用自動匯入,可以透過設定 "python.analysis.autoImportCompletions": true 來實現。
Pylint 和 Flake8 擴充套件推薦
在我們的以前的版本中,我們宣佈了新的 Pylint 和 Flake8 擴充套件,它們透過 語言伺服器協議 (LSP) 與 Python 擴充套件協同工作以提供 linting。在此版本中,如果您仍在使用內建在 Python 擴充套件中的 Pylint 和 Flake8 功能,我們將顯示通知,提示您安裝這些新擴充套件。

遠端開發
遠端開發擴充套件允許您將容器、遠端機器或適用於 Linux 的 Windows 子系統 (WSL) 用作功能齊全的開發環境。此版本的亮點包括:
您可以在遠端開發發行說明中瞭解有關新擴充套件功能和錯誤修復的資訊。
GitHub 拉取請求和議題
我們繼續開發 GitHub Pull Requests and Issues 擴充套件,它允許您處理、建立和管理拉取請求和問題。檢視擴充套件的 0.54.0 版本的更新日誌以檢視其他亮點。
預覽功能
TypeScript 4.9
此更新包括對即將釋出的 TypeScript 4.9 版本的支援。有關 TypeScript 團隊目前正在進行的工作的更多詳細資訊,請參閱 TypeScript 4.9 迭代計劃。一些編輯器工具亮點
- 一個新的排序匯入命令,它會排序匯入,但不會刪除未使用的匯入。
- 在 return 語句上執行轉到定義現在會跳轉到函式宣告。
- 切換到新的預設檔案監視器,它應該具有更好的效能。
要開始使用 TypeScript 4.9 nightly build,請安裝 TypeScript Nightly 擴充套件。
設定配置檔案
我們在過去幾個月一直在努力支援 VS Code 中的設定配置檔案,這是社群最受歡迎的需求之一。此功能透過 workbench.experimental.settingsProfiles.enabled 設定提供預覽。試用一下,並透過在 vscode 儲存庫中建立問題或在 問題 #116740 中評論來向我們提供反饋。
顯示已同步的配置檔案資料
您現在可以在同步活動(遠端)檢視中檢視為每個配置檔案同步的資料。這有助於瞭解為每個配置檔案同步了哪些資料。

注意:此功能目前僅在 VS Code 的 Insiders 版本中提供。
擴充套件創作
為工作區編輯提供元資料
用於應用工作區編輯的 API 現在允許擴充套件提供元資料,例如將編輯標記為重構。編輯器將遵循此額外元資料和重構後的自動儲存(設定:files.refactoring.autoSave)。
限制 MarkdownString 和 webviews 中可執行的命令
MarkdownString 中的命令連結是在 VS Code 的懸停訊息或 IntelliSense 詳細資訊中建立自定義互動的有用方法。Webviews 還可以使用命令連結直接從 webview 觸發 VS Code 命令。然而,命令連結也可能很危險,因為它們可用於執行任何命令,包括許多未設計為考慮安全性的命令。因此,命令連結預設停用,必須由擴充套件顯式啟用。
雖然這種“全有或全無”的方法有效,但我們也發現它將過多的安全負擔放在了擴充套件作者身上。需要使用命令連結的擴充套件必須驗證其渲染的內容中只包含安全命令。這既容易忘記,也容易出錯。
為了改進這一點,我們引入了新的 API,用於命令連結啟用,允許擴充套件僅啟用受信任的命令子集。
對於 MarkdownString,isTrusted 屬性現在接受一個允許執行的命令列表(所有其他命令將被阻止)
const md = new vscode.MarkdownString(
`A command link: [Open setting](command:workbench.action.openSettings)`
);
// Set trusted commands instead of enabling all commands
md.isTrusted = { enabledCommands: ['workbench.action.openSettings'] };
對於 webviews,WebviewOptions.enableCommandUris 屬性現在可以是一個啟用命令列表,而不是簡單的 true/false
const options: vscode.WebviewOptions = {
enableCommandUris: ['workbench.action.openSettings']
};
我們強烈建議所有使用命令連結的擴充套件都採用這個新的、更嚴格的 API 來提高安全性。
webview 和 webview 檢視的一致來源
為了提高 webviews 的載入時間,我們現在嘗試為給定型別 webview 的所有例項保持一致的來源。這有兩個主要好處
-
Webviews 可以更好地利用快取。這意味著本地資源載入速度應該更快。
-
Webviews 可以使用本地儲存和其他按來源分割槽的 Web API。
請記住,所有 webview 例項現在都將在同一個來源上執行,因此如果它們使用本地儲存等 API,請務必按資源對任何特定於文件的資料/狀態進行分割槽。例如,
localStorage.setItem('scrollPosition', 100)會將所有 webview 例項的scrollPosition設定為 100。如果您想為單個資源設定滾動位置,您還需要在鍵中包含資源 ID:localStorage.setItem(myDocUri, JSON.stringify({scrollPosition: 100 }))。您也不應使用 localStorage 或類似 API 來儲存關鍵資料,例如文件內容。雖然 VS Code 會盡力為 webviews 保持一致的來源,但我們無法保證來源不會更改。
在許多情況下,您應該使用 webview 狀態 API,因為這些 API 會為您處理上述兩個問題。
來源是為每個擴充套件和 webview 型別隨機生成的。所有 webview 例項都使用相同的來源。
目前,正常的 webviews 和 webview 檢視都嘗試保持一致的來源。我們計劃在下一次迭代中將其應用於自定義編輯器和筆記本 webviews。
除錯介面卡協議
新的 'startDebugging' 反向請求
目前 VS Code 支援多個併發除錯會話,但 除錯介面卡協議 (DAP) 僅涵蓋單個會話。這意味著以程式設計方式建立新的除錯會話不是 DAP 的一部分,只能在 DAP 或除錯介面卡之外完成,通常在包含除錯介面卡的除錯擴充套件中完成。因此,對於非 VS Code DAP 客戶端來說,多會話功能(例如自動除錯子程序)並不容易獲得,因為它們通常只使用除錯介面卡,而不使用 VS Code 特定的除錯擴充套件。
為了改善這種情況,我們在 DAP 中添加了一個新的反向請求 startDebugging,它允許擴充套件從除錯介面卡內部建立新的除錯會話(與呼叫者型別相同)。客戶端功能 supportsStartDebuggingRequest 向除錯介面卡指示客戶端支援 startDebugging。
在 10 月版本中,VS Code 已經實現了 startDebugging。
提議的 API
每個里程碑都會帶來新的提議 API,擴充套件作者可以嘗試這些 API。一如既往,我們希望得到您的反饋。以下是嘗試提議 API 的步驟
- 查詢您要嘗試的提議並將其名稱新增到
package.json#enabledApiProposals。 - 使用最新的vscode-dts並執行
vscode-dts dev。它會將相應的d.ts檔案下載到您的工作區中。 - 您現在可以根據該提議進行程式設計。
您不能釋出使用提議 API 的擴充套件。下個版本中可能會有破壞性更改,我們絕不希望破壞現有擴充套件。
靜態筆記本預載入
新的 notebookPreload 提議貢獻點允許擴充套件貢獻指令碼,這些指令碼被載入到特定型別的筆記本中。
{
"contributes": {
"notebookPreload": [
{
"type": "jupyter-notebook", // Type of notebook for the preload script
"entrypoint": "./path/to/preload.js"
}
]
}
}
此貢獻點由 contribNotebookStaticPreloads API 提案控制。擴充套件可以使用預載入在筆記本 JavaScript 環境中載入或定義全域性變數。
預載入指令碼必須是匯出 activate 函式的 JavaScript 模組。所有預載入都在任何渲染器指令碼之前進行評估。
筆記本渲染器可以訪問所有輸出項
自定義筆記本渲染器現在可以訪問它正在渲染的輸出項的所有 MIME 資料。如果渲染器確定它無法正確渲染主輸出項,則此 API 提案允許它回退以渲染其他 MIME 型別之一。
此提案的入口點是新的 OutputItem._allOutputItems 屬性。該屬性是當前輸出項包含的所有 MIME 型別的有序列表。列表中的每個項都具有 { mime, getItem() } 形狀。mime 是 MIME 型別,例如 text/html 或 image/png,而 getItem() 函式返回一個 promise,用於獲取該 MIME 型別的 OutputItem。
以下是渲染器如何使用這個新 API
async function renderOutputItem(outputInfo, element, signal) {
const didRender = tryRenderMainItem(outputInfo, element);
if (!didRender) {
// Fallback to render `text/html`
const htmlItem = await outputInfo._allOutputItems
.find(item => item.mime === 'text/html')
?.getItem();
if (htmlItem) {
// Here we can either render the 'text/html' item ourselves
// or delegate to another renderer.
const renderer = await ctx.getRenderer('vscode.builtin-renderer');
if (renderer) {
return renderer.renderOutputItem(htmlItem, element, signal);
}
}
}
}
試用此提案並告訴我們您的想法!
擴充套件遙測 API
為了進一步推動遙測最佳實踐並增強擴充套件提供的遙測功能,本次迭代引入了提議的 telemetryLogger API。此 API 允許擴充套件提供一個 TelemetryAppender,它充當核心傳送邏輯(使用 Application Insights 或其他資料記錄服務實現)。然後使用此 TelemetryAppender 例項化 TelemetryLogger,這是您應該透過它記錄遙測的類。
TelemetryLogger 提供了一個共享輸出通道來檢視傳送的遙測事件、適當的遙測設定檢查以及個人身份資訊清理。此外,使用 VS Code API 丟擲的任何錯誤都將記錄到您的 appender 中,以便進行更好的錯誤診斷。
在遙測示例中有一個簡單的示例,您可以在問題 #160090中提供反饋。
日誌輸出通道
在上一個里程碑中,我們引入了 LogOutputChannel API 提案,用於建立僅用於日誌記錄的輸出通道。本次迭代中,我們為其添加了 logLevel 屬性和 onDidChangeLogLevel 事件。logLevel 屬性表示輸出通道的當前日誌級別,當輸出通道的日誌級別更改時,會觸發 onDidChangeLogLevel 事件。
/**
* A channel for containing log output.
*/
export interface LogOutputChannel extends OutputChannel {
/**
* The current log level of the channel.
* Defaults to application {@link env.logLevel application log level}.
*/
readonly logLevel: LogLevel;
/**
* An {@link Event} which fires when the log level of the channel changes.
*/
readonly onDidChangeLogLevel: Event<LogLevel>;
...
...
}
我們還向 env 名稱空間添加了 logLevel 屬性和 onDidChangeLogLevel 事件,以表示應用程式的當前日誌級別,當應用程式的日誌級別更改時,會觸發該事件。
export namespace env {
/**
* The current log level of the application.
*/
export const logLevel: LogLevel;
/**
* An {@link Event} which fires when the log level of the application changes.
*/
export const onDidChangeLogLevel: Event<LogLevel>;
}
工程
最佳化輸入延遲
隨著 VS Code 規模的增長,按下按鍵時的活動量也隨之增加。本次迭代中,我們退後一步,對在編輯器中輸入時究竟發生了什麼以及在按鍵渲染到螢幕上之後我們可以推遲什麼進行了徹底的調查。這次探索的主要成果是
- 進行了一些更改,以將盡可能多的工作推遲到按鍵在編輯器中渲染到螢幕上之後。對這種影響的粗略估計是,當 IntelliSense 未顯示時,輸入延遲減少了約 15%,而當 IntelliSense 正在重新篩選時,減少幅度更高。
- 我們現在擁有更精細的技術來手動測量輸入延遲並在此亞毫秒*級別進行最佳化。
- 正在進行一項更改,這將幫助我們跟蹤和報告輸入延遲樣本。這將為我們提供一些具體的數字來維護和改進。
這只是這項工作的開始,我們將在下一次釋出中進行更多更改。
* 這些數字非常依賴於用於測試的硬體。在強大的硬體上改進 0.5 毫秒在更普通的硬體上可能會變成 2 毫秒。
自動渲染器分析
VS Code 的渲染器程序負責其 UI;它確保游標閃爍、能夠輸入和儲存。渲染器程序中的任何效能問題都將對使用者可見,並導致糟糕的體驗。為了幫助我們識別和修復渲染器程序中的效能問題,我們添加了一個新設定 application.experimental.rendererProfiling,可用於自動分析渲染器程序。該設定可以設定為 on 以啟用分析,設定為 off 以停用分析。啟用後,渲染器程序將在“看起來有壓力”時進行幾秒鐘的分析,然後分析配置檔案,匿名化併發送出去進行檢查。您可以使用視窗日誌來跟蹤分析過程。
請注意,此功能目前預設關閉,因為我們仍在學習和調整。請試用並告訴我們您的想法。
Windows 11 上下文選單
在此版本中,VS Code 安裝程式預設將使用 Code - Insiders 開啟上下文選單條目新增到 Windows 11 上下文選單中。對於以前在安裝 Insiders 時選擇使用上下文選單的使用者,更新到最新的 Insiders 時,舊樣式選單 Shift + F10 中顯示的條目現在將替換為較新的條目。對於其他人,您需要重新安裝 Insiders 並在設定嚮導中選擇啟用此選單條目。由於我們在選單條目開發過程中遇到的問題,我們計劃將此功能限制在 Insiders 中幾個里程碑,以獲得信心,然後再將其推送到所有 Windows 11 使用者的 Stable 版本。

使用 Code Insiders 開啟操作將在 Windows 檔案資源管理器資料夾和檔案上下文選單中可用。

值得注意的修復
- 151019 懸停時除錯懸停隱藏
- 153852 提案:刪除 ES5 類相容性以加快擴充套件 API 速度
- 156104 如果埠已經靜態轉發,則不要在 URL 連結點選時自動轉發埠
- 158921 其他地方修改的設定指示器懸停內容溢位
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Simon Chan (@yume-chan)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- RedCMD (@RedCMD)
對 vscode 的貢獻
- @andrewbranch (Andrew Branch):[typescript-language-features] 新增
removeUnusedImports命令 PR #161654 - @babakks (Babak K. Shandiz):🐛 修復未等待的 show CWD picker 呼叫 PR #163220
- @Balastrong (Leonardo Montini):在空檔案上貼上時自動檢測縮排 PR #156282
- @Brikaa (Omar Brikaa):新增水平滾動的鍵盤快捷方式 PR #162992
- @CyrilOtheninGirard (Cyril OG):Bash shell 整合 -- 當 PROMPT_COMMAND 是一個數組時,退出程式碼未恢復 PR #158091
- @daiyam (Baptiste Augrain):feat: 選擇要使用的摺疊提供程式 PR #157434
- @dsanders11 (David Sanders)
- 修復對不存在的
runTestsAPI 的引用 PR #162543 - 如果未匹配的片段是 #top,則將 webview 滾動到頂部 PR #164070
- 修復對不存在的
- @dtivel (Damon Tivel):新增擴充套件簽名驗證服務 PR #162285
- @gjsjohnmurray (John Murray)
- 新增
outline.collapseItems並修復大綱意外摺疊 (#_53262) PR #158650 - 在屬性描述中引用正確的設定 (#_162663) PR #162665
- 新增
- @hughlilly (Hugh Lilly):修復
src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts中描述的逗號拼接 PR #164401 - @jacekkopecky (Jacek Kopecký)
- 在要求儲存之前檢查是否有未儲存的編輯器 PR #159318
- 解決游標錯位問題 PR #159325
- @jakebailey (Jake Bailey)
- 不依賴 typescript protocol.d.ts PR #163365
- 刪除對 typescript/lib/protocol 的遺忘引用 PR #163585
- 確保 'undefined' 不會進入 tsserver.web.js PR #164064
- @jannisspeer:刪除 Snakefile 不被歸類為 Python PR #162749
- @jeanp413 (Jean Pierre)
- 修復分離終端編輯器不觸發 vscode.window.onDidCloseTerminal 事件 PR #154546
- 修復如果恢復簡單瀏覽器 webview 則不會被重用 PR #163389
- 修復停用 OSX 的特權埠 PR #163890
- 修復樹專案標籤中的換行符導致標籤難以辨認 PR #163995
- 修復擴充套件停用按鈕右側沒有邊框半徑 PR #164109
- @joshaber (Josh Abernathy):新增開啟預覽啟用上下文,第 2 部分 PR #163682
- @jsjoeio (Joe Previte):fix: preserve process.execArgv PR #161853
- @laurentlb (Laurent Le Brun):更新“功能貢獻”中的列名 PR #162844
- @marrej (Marcus Revaj):# Provide correct response to applyEdit() PR #162430
- @mrienstra (Michael Rienstra):強制執行 yarn 版本 PR #162610
- @mustard-mh (Huiwen):修復 #161565 PR #161567
- @nikita-r (Nikita R.):修改 "WordPart" 系列命令以遵循 kebab-case(解決 #158667) PR #158672
- @pingren (Ping):在 macOS 上為 monaco 編輯器啟用 user-select PR #156755
- @qingpeng9802 (Qingpeng Li):解決
es5ClassCompat效能問題 PR #155390 - @r3m0t (Tomer Chachamu)
- 允許擴充套件作者在 QuickPick/InputBox 中設定 valueSelection PR #157022
- 當擴充套件更新測試項時篩選測試樹 PR #162169
- @sean-mcmanus (Sean McManus):更新 language-configuration.json PR #163182
- @stephen-ullom (Stephen Ullom):修復命令中心交通燈位置 PR #164246
- @StephenChips (Dongcai Huang):修復 FreePortOutputRegex PR #162323
- @unm4ever (BK0717):新增 __vsc_prior_prompt2 PR #156140
- @w1redch4d (Swapnadeep Som):修復嵌入程式碼中 html 樣式註釋的問題 PR #160981
- @yamachig (yamachi):修復自動環繞在開放字元處關閉 PR #147187
- @yiliang114 (易良):fix: Close #164414, correct transparent transmission folder-uri PR #164415
對 vscode-pull-request-github 的貢獻
- @hoontae24:feat: Add origin of upstream for github enterprise on copy head link PR #4028
- @Thomas1664:UI fixes for checks section PR #4059
- @yin1999 (A1lo):fix: use ssh url for ssh protocol upstream PR #3853
對 vscode-dev-chrome-launcher 的貢獻
- @mirdaki:新增設定 stable 或 insiders build 的選項 PR #20
- @infinitepower18 新增描述並修復擴充套件設定中的空白圖示 PR #18