🚀 在 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) 覆寫或停用此設定。

註解

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

註解檢視探索性

當您開啟包含註解的檔案時,[註解] 檢視將會顯示。可以使用 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 設定為 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)。

less 和 scss 也存在相同的設定。

HTML 中的 JavaScript 語意醒目提示

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

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

TypeScript 4.6.3

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

在連結文字符合連結定義 ID 的情況下,Markdown 可讓您使用簡寫語法建立連結。例如,[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 設定為 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 中的功能重點包括

  • 「在開發容器中開啟」徽章 - 引導您存放庫的使用者在自訂開發容器中重新開啟。
  • 遠端 - 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.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

上個月,Debug Adapter Protocol 在 CompletionItem 物件中新增了 detail 屬性。VS Code 現在已支援此屬性。您將在偵錯主控台的建議小工具中看到詳細資訊。

Debug Console example displaying detail field

語言伺服器協定

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

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

偵錯配接器協定

我們已解決 Debug Adapter Protocol 的幾個文件問題

  • 為了消除 terminatedisconnect 請求的歧義,我們改進了它們的文件。
  • evaluate 請求的 context 參數的文件中已記錄了 variables 值。每當在 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 套件需求清單改進

現在,我們會在 組建程序 中計算 rpm 套件所需的依賴項,這受到 Chromium 中完成的工作的啟發。這讓我們能夠在採用較新的執行階段或原生模組時提供最新的依賴項清單。我們也將在即將到來的里程碑中對我們的 debian 套件進行類似的變更。

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

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

文件

VS Code 中的 R

有一個新的 VS Code 中的 R 主題,描述了 VS Code 中對 R 程式語言 的支援,以及 R 擴充功能。R 擴充功能包含豐富的語言功能,例如程式碼完成和程式碼檢查,以及整合式 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 未編輯的設定清單小工具項目似乎沒有最大寬度
  • 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 的貢獻