🚀 在 VS Code 中

2021 年 9 月 (版本 1.61)

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

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

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


歡迎使用 Visual Studio Code 2021 年 9 月發行版本。此版本包含許多更新,希望您會喜歡,重點摘要如下:

如果您想在線上閱讀這些版本資訊,請前往 Updates,網址為 code.visualstudio.com

觀看重點摘要,了解 VS Code 團隊發行派對中此版本的新功能。您可以在我們的 YouTube 頻道上找到活動錄影

測試人員:想盡快試用新功能嗎?您可以下載每晚的 測試人員 組建,並在最新更新可用時立即試用。

工作台

分割編輯器,而不建立新群組

新增了 在群組中分割 命令 (⌘K ⇧⌘\ (Windows、Linux Ctrl+K Ctrl+Shift+\)),可將編輯器分割成兩側,而不需要第二個編輯器群組。這可讓您在同一個檔案的兩個並排編輯器中工作。您也可以透過短片中看到的切換版面配置按鈕,在垂直或水平分割之間切換版面配置。

如果您偏好垂直或水平分割,可以使用新的設定 workbench.editor.splitInGroupLayout

有新的命令可以透過按鍵繫結使用此功能

  • workbench.action.splitEditorInGroup
  • workbench.action.toggleSplitEditorInGroup
  • workbench.action.joinEditorInGroup
  • workbench.action.toggleSplitEditorInGroupLayout

以及在側邊之間導覽

  • workbench.action.focusFirstSideEditor
  • workbench.action.focusSecondSideEditor
  • workbench.action.focusOtherSideEditor

新的顏色 sideBySideEditor.border 設定分隔兩側邊界的顏色。

鎖定的編輯器群組

我們在上一個里程碑中推出了鎖定的編輯器群組,作為一項實驗性新功能。在此里程碑期間,設定體驗已獲得改善,可讓您輕鬆選取在開啟時應自動鎖定群組的編輯器

Locked editor group setting

此設定現在稱為 workbench.editor.autoLockGroups。同樣地,與編輯器群組鎖定相關的命令已重新命名,不再是實驗性功能

  • workbench.action.lockEditorGroup
  • workbench.action.unlockEditorGroup
  • workbench.action.toggleEditorGroupLock

透過裝飾來指示已刪除和唯讀的編輯器

開啟的編輯器可以指示它們是否為唯讀,或者它們相關聯的資源是否已從磁碟中刪除。此指示是透過將「已刪除」和/或「唯讀」附加至編輯器標籤來提供,這需要相當多的空間。

VS Code 現在使用裝飾來達到此目的

  • 具有已刪除資源的編輯器會以刪除線和紅色顯示。
  • 具有唯讀資源的編輯器會以鎖定圖示顯示。

Editor readonly and deleted decorations

將編輯器分割到現有的群組中

當您將編輯器分割到側邊時,即使側邊存在現有的群組,VS Code 也會開啟新的編輯器群組。然而,有時您會想要將編輯器分割到已存在的群組中。

為了支援此功能,新增了命令

  • workbench.action.splitEditorToPreviousGroup:分割到上一個群組。
  • workbench.action.splitEditorToNextGroup:分割到下一個群組。
  • workbench.action.splitEditorToAboveGroup:分割到目前群組上方的群組。
  • workbench.action.splitEditorToBelowGroup:分割到目前群組下方的群組。
  • workbench.action.splitEditorToLeftGroup:分割到目前群組左側的群組。
  • workbench.action.splitEditorToRightGroup:分割到目前群組右側的群組。
  • workbench.action.splitEditorToFirstGroup:分割到第一個群組。
  • workbench.action.splitEditorToLastGroup:分割到最後一個群組。

差異編輯器的較短標籤

當您比較兩個檔案時,工作區相對資料夾路徑會附加在檔案名稱的前面,導致很難看到正在比較的檔案名稱。

在此版本中,資料夾現在已從標籤中隱藏,除非兩個檔案名稱相同,否則會比照一般編輯器標籤的行為。

如果兩個檔案名稱完全相同,則會顯示描述,提示資料夾差異

Diff editor comparing two files

macOS:檔案選單變更

在 macOS 上,如果您從「檔案」選單中選取「開啟...」選單項目,則可以開啟檔案和資料夾。對於新使用者而言,這可能會令人驚訝,而且人們嘗試使用「開啟工作區」命令來開啟資料夾,但該選單項目專門用於開啟 .code-workspace 檔案。

為了避免混淆,我們對 macOS 上的檔案選單進行了輕微調整

  • 新增項目開啟資料夾...以開啟資料夾。
  • 開啟工作區...已重新命名為從檔案開啟工作區...

macOS File menu

遙測設定

有一個新的遙測設定 telemetry.telemetryLevel,可提供更高的設定細微度,並讓使用者選取他們是否只想傳送錯誤遙測,而不要傳送一般使用資料。值為 onerroroffonerror 的值也會啟用損毀報告程式。

現有的設定 telemetry.enableTelemetrytelemetry.enableCrashReporter 已標示為已淘汰,改用新的 telemetry.telemetryLevel 設定,但仍會繼續受到尊重。

迷你地圖背景透明度

現在可以使用新加入的 minimap.foregroundOpacity 顏色,獨立於迷你地圖文字的不透明度來設定迷你地圖背景的不透明度。

更新的「說明」選單項目

隨著入門體驗的不斷改進,「說明」選單項目已更新為更常用的名稱。這是根據新使用者的學習經驗,但希望能讓所有人更容易找到協助。「入門影片」現在是「影片教學課程」,「互動式遊樂場」變成「編輯器遊樂場」。您可以在「說明」選單和「命令面板」中找到新名稱。「說明」選單也有顯示所有命令項目,作為開啟「命令面板」的額外入口點。

編輯器

括號配對引導線

編輯器現在支援基本的括號配對引導線。括號配對引導線使用與括號配對色彩化功能相同的顏色和演算法。括號配對比對演算法在最近的「括號配對色彩化速度提升 10,000 倍」部落格文章中有詳細描述。

類似於縮排引導線,使用中的括號配對引導線會被醒目提示。

Bracket pair guides shown in the editor

可以透過設定 editor.guides.bracketPairs 設定 (預設為 false) 來啟用括號配對引導線。我們將繼續反覆運算此功能,並在下一個版本中探索垂直引導線。

縮排引導線設定

editor.renderIndentGuideseditor.highlightActiveIndentGuide 設定已淘汰,改用 editor.guides.indentationeditor.guides.highlightActiveIndentation

原始碼控制

Git 存放庫的「發佈或同步」動作按鈕

Git 擴充功能現在會在「原始碼控制」檢視中新增一個新的「動作」按鈕,讓您可以更輕鬆地發佈或同步任何未推送的變更。

New Source Control view Sync button

主題:Amethyst Theme

依預設,如果存在未推送的提交,Git 擴充功能會新增如上所示的 同步變更 按鈕;如果分支尚未發佈,則會新增 發佈變更 按鈕。此外,使用者可以透過設定 git.showUnpublishedCommitsButton 設定來自訂此行為,該設定預設為 whenEmpty,因此只有在存在未推送的提交且檢視中沒有其他變更時,才會顯示按鈕。

這個新的動作按鈕作為「原始碼控制」擴充功能的新建議 API 提供,如需更多詳細資訊,請參閱下方的「建議 API」章節

最後,使用者可以透過新的 scm.showActionButton 設定完全停用「原始碼控制」檢視中任何動作按鈕的顯示,這會覆寫任何「原始碼控制」擴充功能的行為。

增加變更檔案顯示的限制

在此版本之前,Git 擴充功能在「原始碼控制」檢視中可以顯示的變更硬式編碼限制為 5000 個。此限制是為了防止使用者在 VS Code 處理 Git 報告的所有變更時必須等待太久。此限制現在已增加到 10,000 個變更,並且有一個新的 git.statusLimit 設定,允許使用者自訂限制 (如果需要,每個存放庫)。此設定也可以設定為 0 以完全停用限制,但請注意,如果變更很多,這可能會導致更新花費很長時間。

此外,當超出限制時,我們在輸入方塊上新增了以下警告指示器。

New warning indicator, which reads "Too many changes were detected. Only the first 10,000 changes will be shown below"

終端機

固定尺寸

您現在可以透過 終端機:設定固定尺寸 命令 (workbench.action.terminal.setDimensions) 靜態設定終端機尺寸。這對於換行可能會令人不適或造成干擾的情況很有用。

命令將顯示提示,您可以在其中輸入偏好的寬度和/或高度。

Terminal Set Fixed Dimensions column width prompt

自訂標題和描述

終端機名稱通常是它們相關聯的處理程序名稱,有時很難區分終端機。

您現在可以使用 terminal.integrated.tabs.titleterminal.integrated.tabs.description 設定中的變數來設定標題和描述。

目前的預設值為

{
  "terminal.integrated.tabs.title": "${process}",
  "terminal.integrated.tabs.description": "${task}${separator}${local}${separator}${cwdFolder}"
}

可用的變數為

  • ${cwd} - 終端機的目前工作目錄
  • ${cwdFolder} - 終端機的目前工作目錄。
  • ${workspaceFolder} - 終端機啟動所在的工作區。
  • ${local} - 指示遠端工作區中的本機終端機。
  • ${process} - 終端機處理程序的名稱。
  • ${separator} - 條件式分隔符號 (" - "),僅在被具有值或靜態文字的變數包圍時顯示。
  • ${sequence} - 處理程序提供給 xterm.js 的名稱。
  • ${task} - 指示此終端機與工作相關聯。

Emoji 輸入法

現在 macOS 上的輸入法編輯器 (IME) 支援 Emoji。

Dialog showing Emojis available in the Integrated Terminal for IME on macOS

Alt 緩衝區使用中內容鍵

某些終端機 UI 應用程式 (例如 nano) 使用的鍵盤快速鍵會被 VS Code 工作台取用,這限制了它們在整合到 VS Code 內的功能。當 alt 緩衝區處於使用中狀態時,新的 when 子句內容TerminalContextKeys.altBufferActive 會將按鍵繫結導向至終端機而非工作台,以解決此問題。

語言

新的 JavaScript 和 TypeScript 語言狀態項目

目前的 TypeScript 版本和 IntelliSense 狀態現在會顯示在語言狀態列項目中

The JavaScript and TypeScript IntelliSense status item showing config file and TypeScript version

以前,TypeScript 版本一律顯示在狀態列中。您可以釘選版本以還原舊行為

語言狀態項目也會顯示目前檔案的 jsconfig/tsconfig,並指示您目前是否處於部分模式

跨未命名檔案的 IntelliSense

所有未命名的 JavaScript 和 TypeScript 檔案現在都視為同一個專案的一部分。這表示在一個未命名檔案中定義的全域符號現在會顯示為其他檔案中的建議。

這更符合工作區中磁碟上檔案的行為。您可以將 importexport 新增至未命名的檔案,以將其轉換為模組,這會從其他檔案中隱藏其全域變數。

跨網頁上檔案的 IntelliSense

當 VS Code 在瀏覽器中執行時,IntelliSense 現在可在 vscode.devgithub.dev 上的 JavaScript 和 TypeScript 檔案之間運作。

Cross file JavaScript IntelliSense on github.dev

請記住,當 VS Code 在瀏覽器中執行時,它只能存取您目前開啟的檔案,因此 VS Code 無法提供專案範圍的 IntelliSense 功能,例如自動匯入。

更一致的 JSX 標籤摺疊

當您在 JavaScript 或 TypeScript 中摺疊 JSX 標籤時,VS Code 現在會繼續顯示結束標籤

Folding in JSX

這與 HTML 中的摺疊運作方式一致。

預覽功能

TypeScript 4.5 支援

此更新包含即將推出的 TypeScript 4.5 版本的初始支援。如需有關新語言和工具功能的詳細資訊,請參閱 TypeScript 4.5 beta 公告貼文。一些工具重點

  • JSX 屬性完成的初始支援
  • 更精確的參考 CodeLens 參考計數。

若要開始使用 TypeScript 4.5 每晚組建,請安裝 TypeScript Nightly 擴充功能

請分享您的意見反應,並讓我們知道您是否遇到任何 TypeScript 4.5 的錯誤。

跨應用程式重新啟動還原終端機工作階段

當 VS Code 視窗關閉時,終端機處理程序會被處置。在此版本中,有一個新的選擇加入設定,用於記錄和還原緩衝區,並使用它來重新建立處理程序。設定 terminal.integrated.persistentSessionReviveProcess 以啟用此功能。

The terminal buffer gets restored on application restart with a message indicating when the snapshot was taken

切換終端機大小以符合內容寬度

您可以使用 ⌥Z (Windows、Linux Alt+Z) 或使用索引標籤內容選單動作切換大小以符合內容寬度,在符合完整內容和換行之間切換終端機寬度。

這與編輯器中切換換行類似,並共用按鍵繫結。

擴充功能貢獻

Jupyter

目錄

現在可以透過「命令面板」中的Jupyter:顯示目錄命令來存取 Jupyter Notebook 的目錄。這個相同的功能也可以透過 Notebook 工具列中的圖示存取。

此功能適用於 VS Code 內的所有 Notebook,因此可以透過「檔案總管」中的「大綱」檢視存取。

透過「新增檔案」選單建立新的 Notebook

您現在可以使用選單項目檔案 > 新增檔案...來建立新的 Jupyter Notebook。也可以從「歡迎」頁面或「命令面板」上的 新增檔案... 項目存取此選單。

偵錯

VS Code 現在支援 Jupyter Notebook 的完整偵錯功能。若要試用,請確定您已安裝 ipykernel v6+ 作為您選取的核心,設定中斷點,然後選取偵錯儲存格命令。

遠端偵錯

您也可以使用逐行執行和使用遠端核心偵錯 Jupyter Notebook。若要試用,請使用 Jupyter:指定連線的本機或遠端 Jupyter 伺服器 命令連線到您的遠端核心,確定您已安裝 ipykernel v6+ 作為您選取的核心,然後照常使用「逐行執行」或偵錯。

分離的轉譯器擴充功能

Jupyter Notebook 轉譯器已分離到個別的擴充功能 (Jupyter Notebook 轉譯器),讓使用者可以在 vscode.devgithub.dev 上檢視 Notebook 輸出,例如 plotly、vega、latex 等。

Python

新的 Python 逐步解說

Python 擴充功能現在提供逐步解說,其中包含一些基本設定步驟,以改善 VS Code 中 Python 的入門體驗。

New Python walkthrough

改善的偵錯體驗

當使用沒有 launch.json 設定檔案的工作區時,Python 擴充功能 每次您開始偵錯 Python 檔案或專案,都會顯示偵錯工具設定選單。當偵錯具有自訂引數 (例如 Flask、Django 或 FastAPI) 的 Web 應用程式時,這可能會特別煩人。

您現在不需要在每次開始偵錯時都選擇設定,因為您進行的第一個選擇會重複用於工作階段的其餘部分。

GitHub 提取要求和問題

GitHub 提取要求和問題擴充功能的開發工作仍在繼續,這可讓您處理、建立及管理提取要求和問題。查看擴充功能 0.31.0 版本的變更記錄,以查看重點摘要。

遠端開發

遠端開發擴充功能的開發工作仍在繼續,這可讓您使用容器、遠端電腦或 Windows Linux 子系統 (WSL) 作為功能完善的開發環境。

1.61 版本的功能重點包括

  • 轉送連接埠中的 DNS 名稱。
  • 輕鬆選取容器其他功能。
  • Dev Containers 擴充功能可以在 WSL 中執行 CLI 命令。

您可以在「遠端開發」版本資訊中瞭解新的擴充功能和錯誤修正。

擴充功能撰寫

平台特定擴充功能

擴充功能現在可以針對 VS Code 支援的每個平台 (Windows、Linux、macOS) 發佈不同的 VSIX。從 VS Code 1.61.0 版開始,VS Code 會尋找符合目前平台的擴充功能套件。從 1.99.0 版開始,vsce 擴充功能發佈工具支援發佈 平台特定擴充功能

如果您的擴充功能具有平台特定程式庫或相依性,平台特定擴充功能會很有用,因此您可以控制平台套件中包含的確切二進位檔。常見的使用案例是當擴充功能使用 原生節點模組 時。

如需更多資訊,請參閱我們的平台特定擴充功能文件

測試標籤和非錯誤輸出

本月,我們針對建置在新的測試 API 上的擴充功能發佈了其他 API。

  • 測試標籤可讓您設定是否以及如何執行 (或不執行) 某些測試。

  • 非錯誤輸出可讓您將其他主控台輸出與特定測試案例建立關聯。

    輸出的訊息會內嵌顯示,類似於失敗訊息。

    Image showing "hello world" displayed inline beside a console.log statement

啟用檔案系統提供者宣告檔案為唯讀

檔案系統提供者現在可以透過 FileStat 物件上的新 permissions 屬性,將個別檔案標示為唯讀,方法是將屬性的值設定為 FilePermission.Readonly。唯讀檔案不可編輯。

注意:如果所有檔案都應視為唯讀,您可以在呼叫 registerFileSystemProvider 時使用現有的 isReadonly 選項。

設定編輯器擴充功能類別

當存在類別時,「設定」編輯器現在會針對擴充功能的 contributes.configuration 端點顯示子樹狀結構。

若要建立多個類別,contributes.configuration 接受組態陣列,且每個組態的 title 鍵會用於區段標題。還有一個 order 欄位,可讓您在子樹狀結構中重新排序類別。

New Setting editor table of contents showing CSS language features having its own subtree

類型階層

新增類型階層提供者的 API 建議已定案。

WebviewOptions.enableForms

WebviewOptions 上的新 enableForms 屬性可讓您啟用或停用 Webview 內的表單。為了向後相容性,如果您已設定 enableScriptsenableForms 預設為 true。否則預設為 false。

我們建議停用表單,除非您的 Webview 內容需要它們。

終端機狀態

Terminal 物件上公開了一個新的 state 屬性,以及對應的 window.onDidChangeTerminalState 事件,指示使用者是否與終端機互動。例如,擴充功能可能想要等到使用者與終端機互動後再執行動作。

在測試資料上執行 Web 擴充功能測試

@vscode/test-web 節點模組提供 CLI 和 API,以在 Chromium、Firefox 或 Webkit 中測試 Web 擴充功能。

此里程碑的新功能是 folderPath 選項,可在測試資料上開啟 VS Code for the Web。記憶體內檔案系統包含指定位置的資源,以便測試可以使用檔案。

vscode-test-web --browserType=chromium --extensionDevelopmentPath=$extensionLocation $testDataLocation

更新的 codicon

以下新圖示已新增至我們的 codicon 程式庫

List of codicon icons that were added

  • beaker-stop
  • bracket-dot
  • bracket-error
  • bracket
  • debug-continue-small
  • graph-line
  • graph-scatter
  • pie-chart

Visual Studio Code 的 Webview UI 工具組

Visual Studio Code 的 Webview UI 工具組是用於在 Visual Studio Code 中建置以 Webview 為基礎的擴充功能的元件程式庫。

Webview Toolkit component artwork

程式庫的功能包括

  • 實作 Visual Studio Code 設計語言:建立與編輯器其餘部分外觀和風格一致的擴充功能。
  • 自動支援色彩主題:所有元件的設計都考慮到主題,並會自動顯示目前的編輯器主題。
  • 使用任何技術堆疊:程式庫以一組 Web 元件的形式出貨,這表示開發人員可以使用工具組,無論其擴充功能是以何種技術堆疊 (React、Vue、Svelte 等) 建置。
  • 開箱即可存取:所有元件都隨附符合 Web 標準的 ARIA 標籤和鍵盤導覽。

虛擬工作區擴充功能指南

有一個新的虛擬工作區擴充功能指南,可協助擴充功能作者在 VS Code 在虛擬環境中執行時測試和更新其擴充功能。隨著 GitHub Repositories 等擴充功能的推出 (它會建立自己的虛擬檔案系統),以及 vscode.devgithub.dev 等新工作流程 (VS Code 在您的瀏覽器中執行),擴充功能再也不能假設它們可以直接存取磁碟上的檔案系統或平台功能。

虛擬工作區擴充功能指南涵蓋

  • 您的擴充功能是否可以在虛擬工作區中運作而無需修改。
  • 如何更新您的擴充功能以在沒有磁碟上檔案系統的虛擬工作區中運作。
  • 如何向 VS Code 發出訊號,指示在虛擬工作區中執行時是否要啟用或停用您的擴充功能。

建議的擴充功能 API

每個里程碑都隨附新的建議 API,擴充功能作者可以試用。與往常一樣,我們希望收到您的意見反應。這是您試用建議 API 必須執行的動作

  • 您必須使用測試人員組建,因為建議 API 經常變更。
  • 您的擴充功能的 package.json 檔案中必須有這一行:"enableProposedApi": true
  • vscode.proposed.d.ts 檔案的最新版本複製到您專案的來源位置。

您無法發佈使用建議 API 的擴充功能。下一個版本中可能會有重大變更,而且我們絕不希望破壞現有的擴充功能。

TaskPresentationOptions close 屬性

close 屬性是 tasks.json 結構描述中的 presentation 屬性,可在 TaskPresentationOptions API 中使用。它的功能與相符的 tasks.json 屬性相同,可藉由控制終端機是否會在工作完成時關閉。

索引標籤 API

有一個建議的 API,用於讀取和操作索引標籤。這解鎖了常見的功能要求,例如在沒有支援 textDocument 時想要存取開啟資源的清單。您可以在問題 #133532 中提供有關此 API 的意見反應。

MarkdownString.supportHtml

MarkdownString 上新建議的 supportHtml 屬性可呈現 Markdown 文字內顯示的安全原始 HTML 子集。

supportHtml 屬性預設為 false。停用時,VS Code 會移除 Markdown 文字中顯示的任何原始 HTML 標籤。

控制器轉譯器指令碼現在使用 JavaScript 模組

NotebookController.rendererScripts 可讓 Notebook 控制器在執行任何轉譯器之前,將一組 JavaScript 檔案預先載入到 Notebook 中。這些指令碼可以初始化 Notebook 或定義轉譯器相依的全域符號。

轉譯器指令碼以前是正常的 JavaScript 檔案。這些指令碼可以使用 VS Code 匯出的全域符號來呼叫 VS Code 特定 API。

這個全域符號無法探索,也沒有讓 VS Code 對轉譯器指令碼本身進行太多控制。為了修正這個問題,轉譯器指令碼現在使用匯出 activate 函數的 JavaScript 模組。此函數會傳遞 VS Code API

interface KernelPreloadContext {
    readonly onDidReceiveKernelMessage: Event<unknown>;
    postKernelMessage(data: unknown): void;
}

export function activate(ctx: KernelPreloadContext): Promise<void> | undefined {
    ...
}

此變更也讓 NotebookController 的轉譯器指令碼與貢獻的Notebook 轉譯器提供的轉譯指令碼更一致。

Quick Pick keepScrollPosition 屬性

window.createQuickPick() 傳回的 QuickPick 物件上的 keepScrollPosition 屬性已新增為建議 API。這可讓您控制 Quick Pick 中的捲軸位置 (cursorTop) 是否移回清單頂端。

以下是此 API 的幾個使用案例

  • 使用建議的 QuickPickItemButtons API 實作「從清單中移除此項目」選項 (例如,Ctrl/Cmd + P x QuickPickItemButton)。
  • 使用建議的 QuickPickItemButtons API 實作「以某種方式切換此項目」選項 (例如,插入程式碼片段命令)。
  • 在 Quick Pick 中非同步載入項目 (例如 setInterval 透過重新指派 .items 屬性將項目新增至清單,其中捲動不應跳至頂端)。

若沒有控制捲動位置的能力,這些操作中的每一個都會強制 Quick Pick 的捲動位置跳至清單頂端。keepScrollPosition 允許擴充功能作者控制此行為。

SourceControl.actionButton

原始檔控制 API 現在在 SourceControl 物件上包含 actionButton 屬性,允許 SCM 提供者有條件地在輸入框下方顯示「動作」按鈕。例如,當有未推送的變更時,Git 擴充功能會使用此新屬性來顯示發佈或同步按鈕。

語言伺服器協定

新一代 語言伺服器協定,以及對應的 npm 模組,已發佈。新版本包含類型階層的建議實作。

工程

切換至 DOMPurify 以清理呈現的 HTML

我們已切換為在內部使用 DOMPurify 來清理在主要工作台中呈現的 HTML。這主要用於清理呈現的 Markdown。

DOMPurify 維護良好,並開箱即用地符合 trusted types。此切換有助於保護使用者,並讓我們更有信心啟用諸如 MarkdownString.supportHtml 等功能。

針對 Big Sur CLI 使用 open 命令

在 macOS Big Sur 上,當從命令列啟動 VS Code 時,我們現在使用 open 命令來產生 VS Code。此變更允許 VS Code 像從 macOS Dock 啟動一樣開啟,這修正了一些涉及授權的問題。

檔案監看變更

用於偵測磁碟上檔案和資料夾變更的檔案監看器已變更為一個 程式庫,該程式庫可以處理我們所有支援的平台 (Windows、Linux、macOS),並減少維護不同平台不同監看器的管理負擔。我們計劃在所有平台上預設啟用此程式庫。在此迭代中,我們在 Windows 和 macOS 上啟用了它,並計劃很快在 Linux 上啟用它。

新的監看器在啟動時應更快,並減少花費在大型資料夾上的 CPU 週期。使用此程式庫的一個缺點是,檔案監看器不再自動偵測工作區中在 macOS 上是符號連結的資料夾。如果您有這樣的設定,您可以使用新的 files.watcherInclude 設定來明確新增符號連結路徑,以包含在檔案監看中。從好的方面來說,您可以在 Windows 上使用此新設定來明確包含工作區內的符號連結資料夾,這在以前的 Windows 上是不可能的。

您應該不會注意到日常工作中有任何差異,但如果檔案監看對您來說已損壞,請回報問題。如果遇到問題,可以使用設定 files.legacyWatcher 來啟用舊的監看器。

文件

進階容器設定

有一個新章節涵蓋 Dev Containers 擴充功能的 進階容器設定

在容器文件中,您可以學習如何

進階容器設定文件提供設定開發容器的提示和程式碼範例,以及簡短的 YouTube 影片

值得注意的修正

  • 69665:當作業系統從睡眠狀態恢復時,終端機有時會顯示損毀的紋理
  • 130407:[trivial] settings>files: 排除變更模式為 (空白) 將無法刪除
  • 133149:工作終端機標記為資訊/警告等級問題的失敗。
  • 133567:協助工具:在尋找參考中的最上層樹狀節點的標籤都只讀取「true」
  • 133910:當解析 Shell 環境失敗或逾時時顯示錯誤
  • 133976:允許透過協定 URL 開啟 .code-workspace

感謝您

最後但同樣重要的是,衷心感謝以下人士在本月對 VS Code 的貢獻

對我們問題追蹤的貢獻

vscode 的貢獻

vscode-eslint 的貢獻

vscode-html-languageservice 的貢獻

vscode-json-languageservice 的貢獻

vscode-languageserver-node 的貢獻

vscode-pull-request-github 的貢獻

vscode-references-view 的貢獻

vscode-vsce 的貢獻

language-server-protocol 的貢獻

monaco-editor-webpack-plugin 的貢獻