現已釋出!閱讀關於 11 月新增功能和修復的內容。

2023 年 2 月(版本 1.76)

更新 1.76.1:此更新解決了這些問題

更新 1.76.2:此更新解決了這些問題

下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap


歡迎使用 Visual Studio Code 2023 年 2 月版本。此版本中包含許多我們希望您會喜歡的更新,主要亮點包括

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。

內測版:想盡快嘗試新功能?您可以下載每晚的內測版構建,並儘快嘗試最新的更新。

輔助功能

終端命令失敗音訊提示

當帶有 shell 整合的終端中的命令以非零程式碼退出時,有視力的使用者可以透過檢視命令裝飾來快速瞭解存在失敗。為了向螢幕閱讀器使用者傳達失敗,VS Code 現在播放 audioCues.terminalCommandFailed 音訊提示。

您可以透過滾動“幫助:列出音訊提示”下拉列表來收聽可用的音訊提示聲音。

List Audio Cues dropdown with Terminal Command Failed cue selected

改進的錯誤音訊提示響應能力

audioCues.lineHasError 音訊提示現在在字元導航期間播放,以便螢幕閱讀器使用者更好地瞭解編輯器中的錯誤位置。

終端可訪問緩衝區改進

上次迭代中,我們引入了終端可訪問緩衝區,它允許螢幕閱讀器使用者透過“終端:聚焦可訪問緩衝區”命令訪問終端內容。

本次迭代中,我們改進了可訪問緩衝區,增加了選擇和連結支援,使其成為只讀,並使用 shell 整合洞察將輸出限制為僅重要的終端內容 - 執行的命令、退出程式碼(如果有)和輸出。我們計劃在下一次迭代中新增此功能的配置。

上下文特定的 Tab 焦點模式

切換 Tab 鍵移動焦點”命令對於確定工作臺還是編輯器/終端接收 Tab 鍵輸入非常有用。

新的 editor.tabFocusMode 設定允許使用者設定預設行為。當值設定為 true 時,工作臺接收 Tab 鍵輸入,而不是編輯器或終端。

Windows 上的螢幕閱讀器 shell 整合支援

由於在這種情況下 PowerShell 支援存在問題,當在 Windows 上檢測到螢幕閱讀器時,shell 整合以前被停用。我們已確定這在大多數情況下不再是問題,因此已啟用它。

終端可訪問性幫助新增功能

與螢幕閱讀器社群的討論促使在“終端輔助功能幫助”對話方塊 () 中添加了新內容,例如提及“建立新終端(帶配置檔案)”和“首選項:開啟輔助功能設定”命令。

配置檔案

配置檔案在上次里程碑中釋出到穩定版,可讓您根據當前工作流和專案快速切換 VS Code 配置。您可以儲存一組自定義設定,例如設定、擴充套件和鍵盤快捷鍵,在您的機器之間同步它們,並輕鬆與同事共享它們。

配置檔案徽章

VS Code 現在透過在“管理”活動欄圖示上顯示配置檔名稱的前兩個字母作為配置檔案徽章來指示當前自定義配置檔案。

Two profile badges showing the first two letters of the profiles

主題可以透過配置兩個新的主題顏色來自定義配置檔案徽章背景和前景顏色

  • profileBadge.background
  • profileBadge.foreground

切換配置檔案

您現在可以使用命令面板中的“配置檔案:切換配置檔案”命令快速切換配置檔案 (⇧⌘P (Windows, Linux Ctrl+Shift+P)),它會顯示一個列出可用配置檔案的下拉列表。

Switch Profile command dropdown listing available profiles

遠端工作區中的配置檔案

您現在可以建立和自定義包含遠端擴充套件的配置檔案,並在遠端開發工作區中切換它們。

下面是在兩個透過遠端 - SSH 連線的例項中活動的兩個不同配置檔案(“文件編寫”和“程式碼”)。

Profiles active in two Remote - SSH instances

配置檔案文件

如果您想了解有關配置檔案的更多資訊以及它們何時有用,請檢視新的Visual Studio Code 中的配置檔案主題。本文詳細介紹瞭如何建立、修改、共享和重用配置檔案。

工作臺

可移動的資源管理器檢視

VS Code 中的大多數檢視和檢視容器都是可移動的,除了少數幾個內建的。在此版本中,資源管理器檢視容器 (⇧⌘E (Windows, Linux Ctrl+Shift+E)) 現在是可移動的,可以放置在輔助側邊欄或底部面板中,以允許進一步自定義工作臺。

下面是已移動到面板區域的檔案資源管理器檢視。

File Explorer view moved to the panel area

如果您想將所有檢視重置回預設佈局,可以從命令面板執行“檢視:重置檢視位置”。

固定寬度居中佈局

檢視:切換居中佈局”命令 (workbench.action.toggleCenteredLayout) 現在具有固定寬度佈局選項。此選項透過新的 workbench.editor.centeredLayoutFixedWidth 設定啟用。啟用並激活居中佈局時,編輯器將居中,並嘗試在視窗和麵板大小調整時保持其寬度。

多個快速差異

隨著擬議的多個快速差異 API 的引入,多個擴充套件可以提供快速差異。當一個檔案中存在多個快速差異時,您現在會看到一個下拉列表,用於選擇要檢視的差異基準

Multiple quick diffs and diff base dropdown

評論

註釋”檢視有一個新的“全部展開”命令,與現有的“全部摺疊”相對應。未解決註釋的裝訂線圖示現在與“註釋”檢視中使用的圖示相同。

配置預設日誌級別

您現在可以從“開發人員:設定日誌級別...”命令配置 VS Code 或擴充套件的預設日誌級別。此設定在重新啟動後仍然有效,並在機器之間同步。

Default log level dropdown with several extensions listed

選擇一個擴充套件會顯示與預設日誌級別相同的日誌級別下拉列表。

擴充套件編輯器中的已驗證釋出者域

擴充套件編輯器現在在已驗證指示器旁邊顯示已驗證的釋出者域。下面,prettier.io 域顯示在已驗證徽章的右側。

Prettier extension in the extension editor displaying verified publisher domain prettier.io

編輯器

JSONC 文件排序

現在可以按鍵對 JSONC(帶註釋的 JSON 文件)檔案進行排序。要使用此功能,請從命令面板中選擇“JSON:排序文件”。

用於匹配和著色的獨立括號對

在此迭代中,我們更改了同時配置 editor.language.bracketseditor.language.colorizedBracketPairs 時的行為。以前,設定 editor.language.colorizedBracketPairs 會覆蓋用於括號匹配的 editor.language.brackets(因為兩者都使用相同的括號對樹)。現在,兩個設定的並集用於括號匹配,但只有在 editor.language.colorizedBracketPairs 中配置的括號才會著色。

原始碼管理

Git 提交語法突出顯示

VS Code 採用了新的 Git 語法,它為 Git 提交訊息檔案提供了語法突出顯示。新語法對非英語語言有更好的支援。

Git 和 GitHub 文件

無論您是原始碼控制新手還是經驗豐富的 Git 使用者,您都可以在我們的文件的原始碼控制部分了解有關 VS Code Git 整合的更多資訊。文章包括

Notebook

核心選擇器預設模式:MRU

核心選擇器現在預設顯示最近使用的 (MRU) 核心。這與以前的行為不同,以前是顯示所有可用的核心。您仍然可以透過輔助選擇器“選擇另一個核心...”檢視所有核心,當您安裝了最新的 JupyterPython 擴充套件時,它將按來源(例如:Jupyter 核心、Python 環境等)對核心進行分組。

Notebook kernel picker with MRU list and using the Select Another Kernel option

Notebook 渲染器效能診斷

執行 notebook 單元格時,某些 notebook 輸出渲染器可能需要很長時間才能渲染。為了幫助識別這些渲染器,我們在 notebook 單元格狀態列的懸停中添加了診斷資訊。此檢視顯示每個渲染器執行所需的時間以及總執行時間。此外,懸停中的連結將開啟問題報告器,其中預先填寫了渲染器的名稱和執行時間,以便您在發現渲染器執行時間過長時可以輕鬆提交問題。

Image showing the cell Status bar hover with renderer execution times

內建錯誤渲染器現在支援指向檔案和行號的連結。這允許您單擊錯誤訊息中的檔案路徑並在編輯器中開啟檔案。

Jupyter 擴充套件的錯誤渲染器已棄用,取而代之的是內建錯誤渲染器。

Notebook built-in error renderer

語言

需要連結到另一個 Markdown 文件中的標題,但不記得或不想鍵入完整的檔案路徑?嘗試使用工作區標題完成!要開始,只需在 Markdown 連結中鍵入 ## 即可檢視當前工作區中所有 Markdown 標題的列表

Suggestions for all Markdown headers in the current workspace

接受其中一個完成以插入指向該標題的完整連結,即使它位於另一個檔案中

Adding a link to the selected header in another file

您可以使用“Markdown > 建議 > 路徑:包括工作區標題完成”設定 (markdown.suggest.paths.includeWorkspaceHeaderCompletions) 配置是否/何時顯示工作區標題完成。

有效的設定值是

  • onDoubleHash (預設值) - 僅在鍵入 ## 後顯示工作區標題完成。
  • onSingleOrDoubleHash - 在鍵入 ### 後顯示工作區標題完成。
  • never - 永不顯示工作區標題完成。

請記住,查詢當前工作區中的所有標題可能會很耗時,因此第一次請求時可能會有輕微延遲,特別是對於包含許多 Markdown 檔案的工作區。

新的 markdown.preferredMdPathExtensionStyle 設定配置 VS Code 是否首選在指向 Markdown 檔案的連結中使用副檔名。此首選項用於語言工具,例如路徑完成連結重新命名

有效的設定值是

  • auto - 嘗試保留副檔名的現有樣式。
  • includeExtension - 在連結中包含尾隨的 .md
  • removeExtension - 從連結中刪除尾隨的 .md

遠端開發

遠端開發擴充套件允許您透過 SSH 或遠端隧道使用開發容器、遠端機器或適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。

您可以在遠端開發發行說明中瞭解有關新擴充套件功能和錯誤修復的資訊。

遠端選單

在這個里程碑中,我們對遠端選單進行了幾項可用性改進,可以透過單擊狀態列左下角的遠端指示器訪問該選單

  1. 現在有一個預設的鍵盤快捷鍵來開啟遠端選單:⌥⌘O (Windows, Linux Ctrl+Alt+O)

  2. 我們減少了遠端擴充套件對遠端選單的貢獻,以便輕鬆地一目瞭然地檢視連線到遠端視窗的所有操作。

    • 開啟遠端視窗的基本操作現在始終在遠端選單中可用,因此即使您已經在遠端視窗中,您也可以發現連線到另一個遠端的操作。
    • 大多數用於配置或開始使用遠端的操作已從遠端選單移至命令面板,以節省遠端選單中的空間。
  3. 遠端選單中的“安裝其他遠端擴充套件”選項現在指向精選的遠端開發擴充套件列表,如果所有此類擴充套件都已安裝,則從遠端選單中隱藏。

遠端倉庫

在這個里程碑中,我們在遠端儲存庫擴充套件中引入了“無需克隆即可瀏覽和編輯遠端儲存庫”演練,以幫助您在 GitHub 和 Azure Repos 中搜索、編輯和建立快速提交,而無需在本地克隆。

您還可以檢視遠端儲存庫教程以幫助您入門。

Web 版 VS Code

在這個里程碑中,我們為託管在 GitHub 和 Azure Repos 儲存庫中、在 vscode.dev 上的 Git LFS 跟蹤檔案添加了實驗性只讀支援。

在下面的短影片中,當在 vscode.dev 上滾動 Markdown 預覽時,vscode-docs 儲存庫中儲存在 Git LFS 上的影像可見。

當您在 GitHub 或 Azure Repos 儲存庫中檢視檔案時,根據您的 .gitattributes 配置,我們會檢測該檔案是否為 LFS 跟蹤,以及是否需要從 GitHub 或 Azure Repos 的 LFS 伺服器獲取。

您還可以將 GitHub 儲存庫Azure Repos 擴充套件與 VS Code 桌面版一起使用,以瀏覽包含 Git LFS 跟蹤檔案的儲存庫,而無需克隆。

此行為可以透過以下設定停用

  • "githubRepositories.experimental.lfs.read.enabled": false
  • "azureRepos.experimental.lfs.read.enabled": false

VS Code 尚不支援提交 Git LFS 跟蹤檔案,github.dev 不支援 Git LFS 讀取。

擴充套件

改進的擴充套件搜尋相關性

我們改進了擴充套件檢視Marketplace 庫中擴充套件搜尋結果的相關性。結果現在應該更合適,特別是對於多詞查詢。

之前 之後
Search results for "mono debugger" showing Java debugger extension as the top result Search results for "mono debugger" showing Mono debug extension as the top result

對擴充套件的貢獻

Jupyter

IPyWidgets

Jupyter 擴充套件現在支援 IPyWidgets 的版本 8。依賴於 IPyWidgets 7.* 的 Python 小部件將繼續工作,因為版本 7.*8.* 都受支援。

互動式視窗核心選擇

修改了互動式視窗的核心自動選擇,以使其與新的核心選擇器 UI 更好地配合使用。除非以前為該工作區中的互動式視窗選擇了另一個核心,否則使用當前活動的直譯器,在這種情況下,使用以前選擇的核心。

Python

改進的 pytest IntelliSense 支援

Pylance 擴充套件現在具有強大的功能,可以幫助您在使用 pytest 編寫清晰、簡潔且易於理解的測試時更高效、更有效地工作

  • 支援 pytest fixture 和引數化引數的完成、轉到定義查詢所有引用重新命名符號 (F2)。
  • 透過內嵌提示(由 "python.analysis.inlayHints.pytestParameters" 設定啟用)和程式碼操作,支援 pytest 引數的型別註釋。
  • 基於提供給裝飾器的引數值,對引數化 pytest 引數進行型別推斷。

下面的短影片重點介紹了這些新的 pytest 功能

GitHub 拉取請求和議題

GitHub 拉取請求和問題擴充套件取得了更多進展,該擴充套件允許您處理、建立和管理拉取請求和問題。亮點包括

  • PR 描述和註釋中的永久連結渲染。
  • 從描述頁面重新請求審閱。
  • 已簽出 PR 中檔案的快速差異。

檢視擴充套件 0.60.0 版本的更改日誌以檢視其他亮點。

預覽功能

全域性搜尋現在支援顯示來自 notebook 的結果,就像它們在 notebook 編輯器中顯示一樣。啟用 search.experimental.notebookSearch 來試用此功能,並讓我們知道您遇到的任何錯誤!這目前僅支援搜尋單元格輸入和單元格中的 Markdown 源。

主題:Community Material Theme(在 vscode.dev 上預覽)

非同步分詞

此版本附帶了實驗性非同步分詞功能。此功能允許編輯器在單獨的 Web worker 中對文件進行分詞,這可以提高文件較大時編輯器的響應能力。

目前,非同步分詞預設停用,但可以透過將 editor.experimental.asyncTokenization 設定為 true 來啟用。

TypeScript 5.0 支援

此更新包括對即將釋出的 TypeScript 5.0 版本的支援。有關 TypeScript 團隊目前正在進行的工作的更多詳細資訊,請參閱TypeScript 5.0 Beta 部落格文章TypeScript 5.0 迭代計劃。一些編輯器工具亮點

  • 新的 switchcase 完成幫助您更快地填寫 switch 語句的兩個部分。
  • 正在努力在 github.devvscode.dev 上啟用專案範圍的 IntelliSense。

要開始使用 TypeScript 5.0 每晚版本,請安裝 TypeScript Nightly 擴充套件或安裝最新的 VS Code 1.76+ Insiders 版本

擴充套件創作

在此迭代中,我們引入了對 InputBox 提示和驗證訊息中連結的支援。在這些字串中,您現在可以使用以下語法建立連結

[link text](link target)

連結目標可以是 URL 或命令 ID。當用戶單擊連結時,連結目標分別在瀏覽器中開啟或作為命令執行。

示例

const result = await vscode.window.showInputBox({
  prompt:
    'Please enter a valid email address [more info](https://aka.ms/vscode-email-validation)',
  validateInput: text => {
    if (text.indexOf('@') === -1) {
      return 'Please enter a valid email address, [more info](https://aka.ms/vscode-email-validation)';
    }
    return undefined;
  }
});

這將導致以下提示

Prompt contains a link that is underlined

以及以下驗證訊息

Validation message contains a link that is underlined

主題:熊貓主題(在 vscode.dev 上預覽)

此行為適用於 showInputBoxcreateInputBox API。

* 啟用事件的資訊診斷

當擴充套件使用 *(星號)啟用事件時,它會在 VS Code 啟動過程中啟用。這可能會延遲 VS Code 的啟動。為了幫助擴充套件作者瞭解使用 * 啟用事件的影響,我們添加了一個資訊診斷,當擴充套件使用 * 啟用事件時顯示。診斷顯示在“問題”檢視中,在擴充套件編輯器中也可見

Diagnostic for * activation event

有關 *(星號)啟用的更多資訊,您可以閱讀啟用事件文件。

when 子句上下文解析的即將發生的更改

擴充套件清單檔案 (package.json) 中使用的when 子句允許擴充套件選擇性地啟用和停用貢獻,例如命令和 UI 元素(例如,選單或檢視)。下一個 VS Code 版本計劃包含一個新的 when 子句解析器。新的解析器提供更多功能和正確性,但它也對 when 子句強制執行更嚴格的規則,並可能導致現有 when 子句出現一些中斷。檢視問題 #175540 以瞭解有關中斷和新功能的更多資訊。還鼓勵您訂閱該問題,以獲取有關新解析器的更新,包括新功能、中斷和遷移指南。

即將進行的 Electron 更新可能需要對本機模組進行強制更改

我們計劃在下一個穩定版本中更新到 Electron 22。這對利用本機模組的擴充套件產生影響,因為啟用了 V8 記憶體籠:指向外部(“堆外”)記憶體的 ArrayBuffers 不再被允許。這意味著依賴 V8 中此功能的本機模組需要重構才能在 VS Code 1.77 及更高版本中繼續工作。

請遵循Electron 部落格文章中的建議,瞭解如何使您的本機模組與未來版本的 VS Code 相容。

語言伺服器協議

語言伺服器協議 (LSP) 客戶端 (8.1.0) 和伺服器 (8.1.0) npm 包已釋出新版本。這些是錯誤修復版本(主要解決使用全文文件同步時請求排序問題)幷包含用於自定義訊息處理的 JSON-RPC 庫的 API 新增。

提議的 API

每個里程碑都會帶來新的提議 API,擴充套件作者可以嘗試這些 API。一如既往,我們希望得到您的反饋。以下是嘗試提議 API 的步驟

  1. 查詢您要嘗試的提議並將其名稱新增到 package.json#enabledApiProposals
  2. 使用最新的vscode-dts並執行vscode-dts dev。它會將相應的d.ts檔案下載到您的工作區中。
  3. 您現在可以根據該提議進行程式設計。

您不能釋出使用提議 API 的擴充套件。下個版本中可能會有破壞性更改,我們絕不希望破壞現有擴充套件。

OpenDialogOptions allowUIResources

知道它們何時在遠端擴充套件主機中執行的擴充套件可以使用 allowUIResources 來使“顯示本地”按鈕顯示在開啟檔案對話方塊中。使用 allowUIResources 的擴充套件應始終檢查返回的 URI 的方案。

QuickPickItems 的工具提示

在此迭代中,我們引入了一個新的擬議 API,用於 QuickPickItem 上的 tooltip 屬性。此屬性允許您為快速選擇中的每個專案指定工具提示。當用戶將滑鼠懸停在專案上時,或者使用 Ctrl+Space 切換時,會顯示工具提示。

示例

await vscode.window.showQuickPick(
  [
    {
      label: 'label',
      tooltip: 'tooltip'
    },
    {
      label: 'label2',
      tooltip: new vscode.MarkdownString('tooltip2 [link](https://github.com)')
    }
  ],
  {
    placeHolder: 'placeholder'
  }
);

這將導致以下快速選擇

主題:熊貓主題(在 vscode.dev 上預覽)

顯然,這是一個不需要工具提示的簡單示例。當您想提供可能包含多行或指向其他資源的連結的長描述時,工具提示非常有用。

我們認為此屬性是對 Quick Pick API 的一個很好的補充,我們期待您的反饋。

工程

更多 Electron UtilityProcess 採用

作為我們的程序沙盒之旅的一部分,我們希望確保我們的應用程式中不再有啟用 Node.js 的瀏覽器視窗。在這個里程碑中,我們開始將最後一個剩餘的程序從隱藏的 Node.js 瀏覽器視窗轉換為 Electron UtilityProcess。作為這項工作的一部分,檔案觀察者程序也必須移入自己的實用程式程序。

一個新的設定 window.experimental.sharedProcessUseUtilityProcess 啟用 UtilityProcess 的使用,我們計劃在下一個版本中將其設定為預設值。

macOS 10.11 和 10.12 支援已終止

如我們在1.75 發行說明中所述,1.76 是最後一個支援 macOS 10.11 (OS X El Capitan) 和 10.12 (macOS Sierra) 的版本。有關更多資訊,請參閱我們的常見問題解答

值得注意的修復

  • 168939 跨重新載入和檢視移動保留徽章隱藏狀態。
  • 164397 RTL macOS 中佈局控制位置不正確。

感謝

最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-pull-request-github 的貢獻

vscode-vsce 的貢獻

monaco-editor 的貢獻

© . This site is unofficial and not affiliated with Microsoft.