🚀 在 VS Code 中

2022 年 3 月 (版本 1.66)

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

更新 1.66.2:此更新解決了這些安全性問題

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


歡迎使用 Visual Studio Code 2022 年 3 月發行版本。此版本包含許多更新,希望您會喜歡,其中一些主要重點包括

如果您想在線上閱讀這些發行說明,請前往 更新,網址為 code.visualstudio.com

觀看發行派對: 聆聽 VS Code 團隊討論一些新功能。您可以在我們的 YouTube 頻道上找到活動錄影

重點簡短: 如果您只有 60 秒,請查看3 月 VS Code 發行重點影片,快速了解新功能。

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

協助工具

團隊努力使 VS Code 成為最容易存取的編輯器之一。此版本包含多項改進,以協助可用性和協助工具

工作台

本機歷程記錄

檔案的本機歷程記錄現在可在 時間軸 檢視中使用。根據設定的設定,每次您儲存編輯器時,都會將新項目新增到清單中

每個本機歷程記錄項目都包含建立項目時檔案的完整內容,在某些情況下,可以提供更多語意資訊 (例如,指示重構)。

從項目中,您可以

  • 比較變更與本機檔案或先前的項目。
  • 還原內容。
  • 刪除或重新命名項目。

有新的全域命令可與本機歷程記錄搭配使用

  • workbench.action.localHistory.create - 為具有自訂名稱的現用檔案建立新的歷程記錄項目。
  • workbench.action.localHistory.deleteAll - 刪除所有檔案的所有歷程記錄項目。
  • workbench.action.localHistory.restoreViaPicker - 尋找要跨所有檔案還原的歷程記錄項目。

這些命令沒有預設的按鍵繫結,但您可以新增自己的鍵盤快速鍵

還有新的設定可與本機歷程記錄搭配使用

  • workbench.localHistory.enabled - 啟用或停用本機歷程記錄 (預設值:true)。
  • workbench.localHistory.maxFileSize - 建立本機歷程記錄項目時的檔案大小限制 (預設值:256 KB)。
  • workbench.localHistory.maxFileEntries - 每個檔案的本機歷程記錄項目限制 (預設值:50)。
  • workbench.localHistory.exclude - 從本機歷程記錄排除特定檔案的 Glob 模式。
  • workbench.localHistory.mergeWindow - 秒為單位的間隔,在此期間,進一步的變更會新增至本機檔案歷程記錄中最後一個項目 (預設值 10 秒)。

時間軸檢視工具列中的新篩選動作可讓您啟用或停用個別提供者

Timeline filter drop down with Git History unchecked and Local History checked

注意: 本機歷程記錄項目儲存在不同的位置,具體取決於您對 VS Code 的使用方式。開啟本機檔案時,項目會保存在本機使用者資料夾中,而開啟遠端檔案時,項目會儲存在遠端使用者資料夾中。當沒有檔案系統可用時 (例如,在某些使用適用於網頁的 VS Code 的情況下),項目會儲存在 IndexedDB 中。

設定編輯器

語言篩選器

使用者現在可以在設定編輯器搜尋方塊中輸入 @lang:languageId,以檢視和編輯可針對具有 ID languageId 的語言設定的所有設定。透過這種方式,使用者可以檢視語言特定的設定,也稱為語言覆寫。

請注意,這些覆寫會保持設定狀態,直到使用者按一下齒輪圖示並重設設定為止。

下方的簡短影片將語言篩選器設定為 @lang:css,以顯示所有可能的 CSS 語言覆寫設定。

佈景主題:淺粉紅色

工作區和資料夾設定保留

設定編輯器中的工作區和資料夾設定現在會保留,直到使用者手動重設為止。此變更有助於使用者想要明確指定與設定的預設值相同的工作區設定值,但與使用者設定值不同的情況。先前,使用者必須開啟工作區設定 JSON 檔案才能設定此值。

在設定編輯器 工作區 索引標籤中設定了下方的編輯器索引標籤大小,並且會自動新增至工作區的 settings.json 檔案。

佈景主題:淺粉紅色

主要通知按鈕

通知的第一個按鈕現在會以主要色彩顯示,以與其他按鈕區分。這遵循與對話方塊相同的模式。

Notification where first button is displayed as green primary color

佈景主題:GitHub Dark

編輯器的新內容索引鍵

有新的內容索引鍵指出編輯器是否為編輯器群組中的第一個或最後一個

  • activeEditorIsFirstInGroup- 現用編輯器是否為其群組中的第一個。
  • activeEditorIsLastInGroup- 現用編輯器是否為其群組中的最後一個。

這些內容索引鍵可用於使用when 子句有條件地啟用鍵盤快速鍵。

預設二進位編輯器

新的設定 workbench.editor.defaultBinaryEditor 可讓您規避二進位檔案警告,並在偵測到二進位檔案時自動開啟您選擇的編輯器類型。您可以從設定編輯器中的下拉式清單或透過 settings.json 中的 IntelliSense 選取預設二進位編輯器 ID。

更順暢的驗證體驗

您可能會注意到 GitHub 和 Microsoft 的驗證流程都更順暢。

  • 對於 GitHub 驗證,我們已移除初始的 繼續 頁面,因此您的登入體驗減少了一個步驟。
  • 對於 Microsoft 驗證,如果您已使用 Microsoft 登入設定同步或其他擴充功能,我們會盡量減少您被傳送出 VS Code 進行登入的次數。

從 CLI 一起安裝預先發行和一般擴充功能

VS Code 現在支援從命令列一起安裝預先發行和一般擴充功能。例如,下列命令列指示將安裝 GitHub.vscode-pull-request-github 擴充功能的預先發行版本和 GitHub.remotehub 擴充功能的發行版本

code --install-extension GitHub.vscode-pull-request-github@prerelease --install-extension GitHub.remotehub

改進的平台特定擴充功能更新

VS Code 現在支援將平台特定擴充功能更新為更具體的目標平台版本。例如,如果您在 Windows 64 位元上,且已安裝適用於 Windows 32 位元的 C/C++ 擴充功能,而 Marketplace 有適用於 Windows 64 位元的相同版本擴充功能,VS Code 將自動將擴充功能更新為 64 位元版本。

音訊提示改進

新的設定 audioCues.volume (0-100,預設值為 50) 可用於控制音訊提示的音量。摺疊區域也有更新的音訊提示。

側邊面板和側邊列的新名稱

在兩個版本前,我們推出了側邊面板。當時,我們移除了將包含終端機的底部面板移至側邊的功能,以支援新的連貫命令。在聽取使用者意見反應後,我們確定此決策破壞了重要的工作流程,因此我們決定還原該變更。

這讓我們有兩個面板,面板和側邊面板,兩者都可以位於工作台的側邊。為了說明這一點並更好地反映新側邊面板的方向,我們已決定更新側邊列和側邊面板的命名。側邊列現在在 UI 中稱為主要側邊列,而側邊面板現在稱為次要側邊列。

  • 側邊列 -> 主要側邊列
  • 側邊面板 -> 次要側邊列

這些名稱將反映在編輯器中的功能表和命令中;但是,沒有變更任何命令 ID,以防止破壞現有的按鍵繫結。

Command Palette drop down displaying both primary and secondary focus side bar commands

減少動態模式

當啟用作業系統減少動態設定時,工作台現在支援以減少的動畫呈現。可以使用 workbench.reduceMotion 設定 (值為 onoff 或預設值 auto) 覆寫或停用此設定。

註解

GitHub Pull Requests and Issues 擴充功能廣泛使用註解 UI,以將註解新增至問題和提取要求,但任何擴充功能都可以採用。

註解檢視可探索性

當您開啟包含註解的檔案時,將會顯示 註解 檢視。這可以使用設定 comments.openView 來控制。

新增註解可探索性

現在,當您將滑鼠游標停留在可以新增註解的行的任何部分上方時,左側裝訂邊會顯示 "+" 符號。

註解協助工具改進

註解協助工具有多項改進

  • 在目前行新增註解 命令,用於在您位於可註解範圍內時建立註解。
  • 註解執行緒的 aria 標籤,其中包含註解數和執行緒標籤。
  • 前往下一個註解執行緒 命令會將焦點放在註解執行緒控制項中。
  • 新的 前往上一個註解執行緒 命令。
  • 下一個和上一個命令的鍵盤快速鍵:Alt+F9Shift+Alt+F9

終端機

顯示所有尋找比對項目

在終端機中搜尋時,現在會醒目提示搜尋詞彙的所有執行個體。目前選取的比對項目也有特定的醒目提示,可以個別自訂。

您可以透過以 terminal.findMatch 為前置詞的色彩自訂來微調醒目提示色彩的外觀。

A yellow border is shown around all matches except for the currently selected one, which has a red border.

捲軸註解

註解現在會出現在終端機的捲軸中,以指示緩衝區中的關注點。

例如,尋找結果在捲軸中具有對應的註解。

The terminal scroll bar displaying brown annotations for find matches within a file

當啟用Shell 整合的預覽功能時,每次執行的命令都會在捲軸中顯示註解。

Commands are run and corresponding annotations appear in the scroll bar

命令導覽改進

一個鮮為人知的功能,已存在一段時間,是可以快速在終端機中的命令之間導覽。最初,這是根據按下 Enter 的時間,但現在啟用 Shell 整合後,它將升級為使用 Shell 整合知識,以更可靠地識別正確的行。此外,在命令之間跳轉時,現在會顯示 UI 回饋。

此功能可以透過下列按鍵繫結存取

  • macOS:Cmd+向上/向下鍵
  • Linux/Windows:Ctrl+向上/向下鍵 (新增)

可以按住 Shift 鍵,以在終端機中的命令之間進行選取。

複製的文字保留 HTML 樣式

若要從終端機複製 RTF 文字,請執行 終端機:以 HTML 格式複製選取範圍 命令,或使用終端機內容功能表項目 以 HTML 格式複製

變更的最小對比率預設值

terminal.integrated.minimumContrastRatio 設定已存在一段時間,並根據背景色彩動態變更終端機中的前景色彩。此版本中,我們將預設值變更為 4.5 (WCAG AA),以確保終端機在佈景主題為何的情況下都可存取。如果這最終導致您的色彩出現問題,您可以將 "terminal.integrated.minimumContrastRatio": 1 設定為停用此功能。

原始碼控制

原始碼控制儲存機制檢視

先前,當開啟具有多個儲存機制的資料夾/工作區時,原始碼控制儲存機制 檢視中的儲存機制已依照探索順序排序。這是有問題的,因為探索順序可能會有所不同,而且儲存機制似乎是隨機順序。在此里程碑中,儲存機制一律依名稱在 原始碼控制儲存機制 檢視中排序。

編輯器

快速建議作為內嵌完成項目

editor.quickSuggestions 設定現在接受 inline 作為組態值。當設定為 inline 時,快速建議 (IntelliSense) 不會在您輸入時顯示建議小工具,而是以灰色文字顯示完成項目。

佈景主題:GitHub Light

游標索引的程式碼片段變數

有新的程式碼片段變數:$CURSOR_INDEX$CURSOR_NUMBER。它們會評估為各自游標的索引。後者從 1 開始,前者從 0 開始。這些變數的強大功能在於與多個游標的組合。

例如,下列程式碼片段將為每個游標新增一個排序清單項目

"ordered_list": {
  "scope": "markdown",
  "prefix": "ol",
  "body": [
    "$CURSOR_NUMBER. $0"
  ],
  "description": "Add ordered list"
}

更新的原始碼控制裝飾項目

為了讓原始碼控制裝飾項目更容易看到以方便協助工具,我們為已修改的行新增了新的圖案,並提高了所有裝飾項目的對比度。

括號配對色彩化

有一個新的設定 editor.bracketPairColorization.independentColorPoolPerBracketType。當設定為 true 時,每個括號類型 ({ ... }( ... )) 都會使用自己的色彩集區進行色彩化。因此,不同類型的巢狀括號將具有相同的色彩。

A screenshot that demonstrates independent color pools turned on

A screenshot that demonstrates independent color pools turned off

改進的語言偵測

上次反覆運算,我們新增了設定 workbench.editor.historyBasedLanguageDetection,以設定是否利用新的語言偵測策略,該策略會考量您已開啟的檔案類型。此設定現在預設為啟用,並且新增了新的設定 workbench.editor.preferHistoryBasedLanguageDetection,以優先考慮此策略的結果。

適用於網頁的 VS Code

拖放資料夾

您現在可以將本機檔案和資料夾拖放到在 vscode.devinsiders.vscode.dev 上開啟的瀏覽器視窗中,並使用支援 網頁檔案系統存取 API 的瀏覽器來存取內容。這適用於在編輯器區域和檔案總管上拖放。

遠端儲存機制

擴充功能重構

先前,Azure Repos 擴充功能直接依賴 GitHub Repositories 擴充功能。Azure Repos 和 GitHub Repositories 現在依賴通用擴充功能 Remote Repositories,此擴充功能支援 GitHub 和 Azure Repos 之間的通用工作流程。先前由 GitHub Repositories 擴充功能公開的所有 API 現在都由 Remote Repositories 公開。

同步儲存機制提醒

當您重新開啟具有未提交變更的儲存機制時,預設情況下,Remote Repositories 不會顯示儲存機制的最新版本。我們現在會顯示對話方塊,以手動同步您的儲存機制,讓您的儲存機制與 GitHub 或 Azure Repos 上的內容保持最新狀態。您可以使用 remoteHub.uncommittedChangesOnEntry 設定來控制此對話方塊。

Reminder to sync your repository

佈景主題:One Monokai

Azure Repos

在此里程碑中,我們正在啟用編輯和提交變更至Azure Repos 中託管的儲存機制的功能。我們也新增了建立、更新和開啟 Azure Repos 提取要求的基本功能。

筆記本

捲軸上的尋找裝飾項目

筆記本中的尋找結果現在將在捲軸中呈現

將焦點移至互動式視窗

有兩個新的命令可將焦點放在互動式視窗中。

  • interactive.input.focus - 將焦點移至互動式視窗中的輸入編輯器。
  • interactive.history.focus - 將焦點移至互動式視窗中的歷程記錄。

這些命令沒有預設的按鍵繫結,但您可以新增自己的鍵盤快速鍵

偵錯

JavaScript 偵錯

JavaScript 偵錯工具現在支援收集和視覺化堆積設定檔。堆積設定檔可讓您查看記憶體在一段時間內的配置位置和配置量。這些已新增為 偵錯:擷取效能設定檔 命令中的選項,也可以透過呼叫堆疊檢視中的錄製 ⏺ 按鈕存取。

Example of the Flame Chart visualizer showing a memory profile for vscode. One cell is hovered over, showing that 33KB of memory was allocated in "ipc.ts".

語言

CSS 格式器

內建 CSS 擴充功能現在隨附格式器。格式器適用於 CSS、LESS 和 SCSS。它由 JS Beautify 程式庫 實作,並隨附下列設定

  • css.format.enable - 啟用/停用預設 CSS 格式器。
  • css.format.newlineBetweenRules - 以空白行分隔規則集。
  • css.format.newlineBetweenSelectors - 以新行分隔選取器。
  • css.format.spaceAroundSelectorSeparator - 確保選取器分隔符號 '>'、'+'、'~' 周圍有空格字元 (例如,a > b)。

lessscss 也存在相同的設定。

HTML 中 JavaScript 的語意醒目提示

我們已將 HTML 檔案中 JavaScript 原始碼的語意醒目提示與您在一般 .js 檔案中看到的內容對齊。

這不僅使程式碼色彩更一致,還新增了一些先前遺失的重要語意資訊,例如醒目提示唯讀類型。

TypeScript 4.6.3

VS Code 現在捆綁 TypeScript 4.6.3。此小更新修正了一些重要的錯誤

Markdown 可讓您在使用連結文字符合連結定義 ID 的情況下,使用速記語法建立連結。例如,[my fancy link] 使用 my fancy link 連結定義 (例如,[my fancy link]: https://example.com)。這些速記連結現在可在 VS Code 的編輯器中點擊

在編輯器中,按一下這些連結會導覽至連結定義。在 Markdown 預覽中,連結會改為導覽至連結目的地。

reStructuredText 文法

現在有一個內建的擴充功能,用於 reStructuredText (rst) 檔案語法醒目提示。

reStructuredText example showing syntax highlighting

擴充功能貢獻

Python

狀態列中直譯器顯示的變更

為了與其他語言保持一致,Python 擴充功能已將選取的 Python 直譯器資訊移至狀態列右側,緊鄰 Python 語言狀態項目旁邊。為了清理狀態列,現在只有在目前開啟 Python 或 settings.json 檔案時才會顯示。

Python interpreter information displayed towards the right of the Status bar

新的 Python 檔案命令

現在有兩種更快的方式可以建立空的 Python 檔案:透過稱為 Python:新增 Python 檔案 的新命令,或透過入門頁面上的 新增檔案... 項目。

Pylint 擴充功能

現在有一個新的 Microsoft Pylint 擴充功能,用於使用 pylint 進行程式碼檢查。此擴充功能利用語言伺服器協定來提供程式碼檢查支援。

Pylint 擴充功能提供額外的組態,以調整透過 pylint 報告的問題嚴重性層級。

{
    "convention": "Information",
    "error": "Error",
    "fatal": "Error",
    "refactor": "Hint",
    "warning": "Warning",
    "info": "Information",
    "W0611": "Error",
    "unused-import": "Error"
}

注意:如果您也在 Python 擴充功能中啟用了 Pylint,您可能會在 問題 面板中看到相同問題的兩個項目。您可以將 "python.linting.pylintEnabled": false 設定為停用內建的程式碼檢查功能。

Jupyter

此里程碑中,Jupyter 擴充功能有多項改進。

核心支援

核心啟動已透過以下方式改進

  • 支援更多 conda 環境。
  • 所有平台都支援 .env 檔案。

資料檢視器

DataFrames 和 Series 的具名索引現在在資料檢視器中受到支援。

Named indexes support in Jupyter extension Data Viewer

新的 Jupyter 筆記本

建立新的 Jupyter 筆記本現在已合併到 新增檔案... 功能表中。

New File... drop down with option to create a new Jupyter notebook

遠端開發

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

1.66 中的功能重點包括

  • 「在開發容器中開啟」徽章 - 指引您的儲存機制使用者在自訂開發容器中重新開啟。
  • Remote - SSH 擴充功能現在可以連線到遠端 Apple Silicon/M1/ARM64 機器。

您可以在遠端開發發行說明中,了解新的擴充功能功能和錯誤修正。

GitHub Pull Requests and Issues

GitHub Pull Requests and Issues 擴充功能的工作仍在繼續,此擴充功能可讓您處理、建立和管理提取要求和問題。查看擴充功能 0.40.0 版本的變更記錄,以查看重點。

預覽功能

終端機 Shell 整合

Shell 整合在此版本中持續看到更多改進,主要是在可靠性方面,以及對上方終端機章節中描述的裝飾項目進行改進。

以下是重點

  • 命令裝飾項目現在顯示在捲軸中,類似於編輯器。
  • 命令裝飾項目應在視窗重新載入 (或中斷連結/連結) 後還原。
  • 在 Windows 上調整終端機大小時,更好地追蹤命令。
  • 改進 終端機:清除 VS Code 命令和 clear Shell 命令的處理。
  • zsh 右側提示支援。
  • 處理更多 bash 的 $PROMPT_COMMAND 變數格式。
  • 當未啟用 PSReadLine 時,支援 pwsh
  • Shell 初始化指令碼現在可以選擇不使用 Shell 整合,方法是在已知問題或需要特殊處理時,取消設定 $VSCODE_SHELL_INTEGRATION 變數,即使已啟用設定也是如此。

TypeScript 4.7 支援

此更新包含對即將推出的 TypeScript 4.7 版本的初始支援。請參閱TypeScript 4.7 反覆運算計畫,以了解有關 TypeScript 團隊目前正在進行的工作的更多詳細資料。

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

檔案總管檔案巢狀結構

在此反覆運算中,我們繼續致力於檔案總管中檔案巢狀結構的支援。作為此工作的一部分,我們完善了對移動、重新命名和刪除巢狀檔案的支援,並新增了設定 explorer.experimental.fileNesting.operateAsGroup,以設定是否應將對巢狀父系的編輯也套用至其子系。

此外,我們擴充了檔案巢狀結構的組態語言,以包含更多展開模式。先前,子模式中的 $(capture) 會展開為父模式中 * 所取用的文字。現在,模式中額外支援 $(basename)$(extname)$(dirname)。這啟用了諸如 * -> $(basename).*.$(dirname) 之類的模式,以將具有「新增區段」的所有檔案巢狀結構化在單一基底檔案下。

擴充功能撰寫

筆記本感知文件選取器

我們已完成對 vscode.DocumentSelector 類型的新增。此類型可讓您將語言功能 (例如 前往定義) 關聯至特定文件、驅動 UI,並決定是否要求對應的提供者提供結果。我們新增了一個新的屬性,可讓擴充功能縮小筆記本類型的範圍。例如,{ language: 'python', notebookType: 'jupyter-notebook'} 目標鎖定所有內嵌在 Jupyter 筆記本中的 Python 文件。

內嵌提示可以進行編輯

InlayHint 類型現在可以具有選用的延遲 textEdits 屬性。已將編輯設定為它們的內嵌提示將在按兩下時套用它們。textEdits 應使用於進行使內嵌提示過時所需的編輯。例如,按兩下代表推斷類型的提示應插入該類型註解。

具有自訂語言 ID 的輸出通道

在此里程碑中,我們已完成 createOutputChannel API,以建立具有自訂語言 ID 的輸出通道。這可讓您透過傳遞語言 ID,將權杖或語法色彩化和 CodeLens 功能貢獻給您的輸出通道。

色彩佈景主題種類:高對比度淺色

色彩佈景主題 現在可以指定 hc-light 作為基本佈景主題 (uiTheme)。基本佈景主題用於色彩佈景主題未定義的所有色彩。

在 VS Code API 中,ColorTheme.kind 現在也可以具有值 HighContrastLight

高對比度淺色佈景主題的色彩貢獻

色彩貢獻 現在也可以定義高對比度淺色佈景主題 (highContrastLight)。如果未指定,則會使用 light 色彩作為預設值。

NODE_MODULE_VERSION 和 Node.js API 更新

對於使用原生 Node 模組的擴充功能作者,此版本將 Node.js 版本從 14.16.0 升級到 16.13.0,這可能會對您的模組編譯產生影響,具體取決於使用的 API 抽象層。

桌面 遠端
NODE_MODULE_VERSION / process.versions.modules 101 93
Node-API / process.versions.napi 8 8

樹狀結構拖放 API

透過新完成的 TreeDragAndDropController API,擴充功能貢獻的樹狀結構檢視可以支援拖放。樹狀結構檢視範例 有關於如何使用此 API 的範例。

偵錯工具擴充功能撰寫

支援 CompletionItem.detail

上個月,偵錯配接器協定將 detail 屬性新增至 CompletionItem 物件。VS Code 現在支援此屬性。您將在偵錯主控台中的建議小工具中看到詳細資料。

Debug Console example displaying detail field

語言伺服器協定

類型階層、內嵌值和內嵌提示支援已從建議狀態移出,以準備 3.17 版本。新版本的程式庫已發佈。

還有 LSP 的中繼模型的第一個版本,以及對應的結構描述,作為 JSON 結構描述 或作為 TypeScript 類型定義。中繼模型包含下列資訊:指定的請求和通知,以及其參數類型、傳回類型、部分傳回類型和註冊選項。它還包含所有已定義的結構和列舉。

偵錯配接器協定

我們已解決 偵錯配接器協定 的數個文件問題

  • 為了消除 terminatedisconnect 請求的歧義,我們已改進其文件。
  • variables 值已記錄於 evaluate 請求的 context 引數文件中。每當在 VARIABLES 檢視的上下文中呼叫 evaluate 請求時,VS Code 都會使用此未記錄的值。用戶端和偵錯配接器不需要任何變更,因為 context 引數的類型為 string,且 variables 值僅在文件中提及。

建議的擴充功能 API

每個里程碑都帶有新的建議 API,擴充功能作者可以試用。與往常一樣,我們希望收到您的意見回饋。以下是試用建議 API 的步驟

  1. 找到您想要試用的提案,並將其名稱新增至 package.json#enabledApiProposals
  2. 使用最新的 vscode-dts 並執行 vscode-dts dev。它會將對應的 d.ts 檔案下載到您的工作區。
  3. 您現在可以針對該提案進行程式設計。

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

InputBox 驗證訊息嚴重性

我們的 InputBox API(透過 window.showInputBoxwindow.createInputBox)提供了驗證使用者輸入的機制。在此迭代中,我們正在透過一個建議的 API 來擴充它,以顯示嚴重性。

例如,如果您想根據使用者的輸入向其顯示資訊訊息,您的驗證訊息可以傳回

{
  content: 'this is an info message';
  severity: InputBoxValidationSeverity.Info;
}

看起來會像這樣

Input box with 'this is an info message' severity message

此提案的詳細資訊可在 inputBoxSeverity 中找到。

Notebook 文件變更事件

有一個關於 Notebook 文件變更事件的新提案:它以 notebookDocumentEvents 的形式提供,其中包含兩個事件

  • vscode.workspace.onDidSaveNotebookDocument 在 Notebook 儲存時觸發。
  • vscode.workspace.onDidChangeNotebookDocument 在 Notebook 變更時觸發。例如,當儲存格新增或移除、儲存格本身變更或中繼資料變更時。

Tabs API 形狀最終確定

tabs API 即將在下一個里程碑最終確定,目前處於形狀將保持穩定且幾乎不會變更的狀態。2022 年 4 月的迭代將是提供關於此 API 的形狀和功能意見回饋的最後機會。意見回饋可以透過 GitHub issues 提供。tabs API 允許讀取開啟的索引標籤、它們的位置以及關閉它們。

內嵌完成

我們繼續致力於內嵌完成功能,以為在接下來的幾個版本中最終確定做準備。內嵌完成現在可用於建議程式碼片段或文字替換(以前僅支援文字插入)。

拖放到編輯器

建議的 文字編輯器拖放 API 讓擴充功能可以處理拖放到文字編輯器中的操作。這些拖放事件可能來自 VS Code 內部,例如從 VS Code 的 Explorer 將檔案拖曳到文字編輯器中,或者可能是從您的作業系統將檔案拖放到 VS Code 中所產生。

若要試用新的 API,您必須設定 "workbench.experimental.editor.dragAndDropIntoEditor.enabled": true。啟用此設定後,您可以按住 Shift 鍵同時拖曳和放置來拖放到編輯器中。

我們已包含實驗性支援,可在您拖放到 Markdown 檔案中時產生連結。您也可以查看 Markdown 擴充功能的原始碼,以了解 API 的使用範例。

已解決/未解決的註解

有一個關於在註解執行緒上設定已解決或未解決狀態的新提案。指定狀態的註解執行緒將獲得額外的 UX 處理。

工程

Electron 17 更新

在此里程碑中,我們很高興在 VS Code 中隨附 Electron v17。這是從我們之前採用的 Electron v13 的重大更新,並充分利用了 Electron 的程序重用架構。在過去一年中,我們一直在重新實作並逐步推出對我們的一些核心服務的變更,以配合工作台相關的互動和生命週期,為這個新架構做準備

特別感謝所有參與此項工作的人員,也感謝社群在 Insiders 上自行託管並提供意見回饋,以便我們能夠自信地發佈此更新。

這項變更對 VS Code 使用者意味著什麼?

切換工作區和重新載入工作區等操作現在應該更快了。透過此更新,我們也將 Chromium 版本升級到 98.0.4758.109,Nodejs 版本升級到 16.13.0。

下一步是什麼?

我們將根據他們新的發佈節奏繼續採用 Electron 版本。我們也積極致力於沙箱化工作台,下一步是改善Node.js 託管服務和沙箱化工作台之間的通訊通道,這將使我們能夠進一步簡化新架構。

RPM 套件需求清單改進

現在,我們根據 Chromium 中完成的工作的啟發,將 rpm 套件所需的相依性計算為我們建置程序的一部分。這讓我們能夠在採用較新的執行階段或原生模組時提供最新的相依性清單。我們也將在即將到來的里程碑中對我們的 debian 套件引入類似的變更。

支援內建擴充功能的頻外發佈

那些在 Marketplace 中可用的內建擴充功能現在可以頻外發佈,VS Code 將偵測到新版本並更新擴充功能。這也將使這些擴充功能能夠支援預先發佈版本。

文件

VS Code 中的 R

有一個新的VS Code 中的 R 主題,描述了 VS Code 中使用 R 擴充功能R 程式語言 的支援。R 擴充功能包含豐富的語言功能,例如程式碼完成和 linting,以及整合的 R 終端機和專用的工作區、資料和繪圖檢視器。

R Extension for Visual Studio Code details pane

開發容器部落格文章

如果您錯過了 Burke Holland 最近關於使用開發容器建立易於使用的程式設計環境的部落格文章,請查看 「教學課程的問題」。該部落格文章描述了 Laravel 如何使用預先設定的 Docker 容器為其 PHP 框架教學課程提供執行階段和相依性。

值得注意的修正

  • 117674 當內容換行時,偵錯主控台有時會停止自動捲動
  • 138963 當偵錯開始時,偵錯主控台無法正常運作
  • 142754 VS Code 終端機中的 Emacs 使用方式已損壞
  • 143513 contributes.configuration 項目僅在搜尋方塊為空時才在檢視中遵守「order」屬性
  • 144458 Glob 模式 **/p* 錯誤地比對到 /foo/ap
  • 144783 未編輯的設定清單 Widget 項目似乎沒有最大寬度
  • 145243 在較小的螢幕中無法調整設定目錄的大小
  • 145572 設定方塊可能會與設定重疊

感謝您

最後但同樣重要的是,衷心感謝 VS Code 的貢獻者。

Web 擴充功能

擴充功能作者啟用以 Web 擴充功能 形式執行程式碼的擴充功能(以下清單介於 2022 年 3 月 1 日至 2022 年 3 月 27 日之間)

Issue tracking

對我們的 Issue tracking 的貢獻

Pull requests

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-js-debug 的貢獻

vscode-languageserver-node 的貢獻

vscode-vsce 的貢獻

debug-adapter-protocol 的貢獻

language-server-protocol 的貢獻