2022 年 3 月 (1.66 版)

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

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

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


歡迎閱讀 Visual Studio Code 2022 年 3 月發佈版。此版本中有許多我們希望您會喜歡的更新,一些重點特色包括:

如果您想在線上閱讀這些發行說明,請前往 code.visualstudio.com 上的 Updates

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

亮點簡介: 如果您只有 60 秒,請查看 March VS Code release highlights 影片,快速了解新內容。

Insiders: 想要盡早嘗試新功能嗎?您可以下載每夜更新的 Insiders 版本,並在第一時間嘗試最新的更新。

協助工具

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

工作台 (Workbench)

本地歷程記錄

檔案的本地歷程記錄現在可在「時間軸」檢視中使用。根據設定,每次儲存編輯器時,都會向清單中添加一個新項目。

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

您可以從歷程記錄項目中進行以下操作:

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

現在有新的全域指令可用於本地歷程記錄:

  • 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 - 在多少秒內進一步的變更會被添加到本地檔案歷程記錄的最後一個項目中(預設值 10s)。

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

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

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

設定編輯器

語言篩選器

使用者現在可以在設定編輯器的搜尋方塊中輸入 @lang:languageId,以檢視及編輯可為識別碼為 languageId 的語言配置的所有設定。透過這種方式,使用者可以檢視語言特定設定(也稱為語言覆寫)。

請注意,除非點擊齒輪圖示並重設設定,否則這些覆寫將保持配置狀態。

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

佈景主題:Light Pink

工作區和資料夾設定保留

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

在下方的編輯器索引標籤大小是在設定編輯器的「工作區」索引標籤中設定的,並會自動添加到工作區的 settings.json 檔案中。

佈景主題:Light Pink

主要通知按鈕

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

Notification where first button is displayed as green primary color

佈景主題:GitHub Dark

編輯器的新內容索引鍵

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

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

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

預設二進位編輯器

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

更流暢的驗證體驗

您可能會注意到 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) 可用於控制音效提示的音量。此外,折疊區域也有更新的音效提示。

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

在兩個版本前,我們推出了側邊面板 (Side Panel)。當時,為了配合新的統一指令,我們移除了將包含終端機的底部面板移動到側邊的功能。在聽取使用者回饋後,我們確定此決定破壞了重要的工作流程,因此決定恢復該變更。

這導致我們擁有兩個面板,即面板 (Panel) 和側邊面板 (Side Panel),兩者都可以位於工作區的側邊。為了因應這一點並更好地反映新側邊面板的方向,我們決定更新側邊欄 (Side Bar) 和側邊面板 (Side Panel) 的命名。側邊欄 (Side Bar) 在 UI 中現在將被稱為「主側邊欄」(Primary Side Bar),而側邊面板 (Side Panel) 現在將被稱為「次要側邊欄」(Secondary Side Bar)。

  • 側邊欄 (Side Bar) -> 主側邊欄 (Primary Side Bar)
  • 側邊面板 (Side Panel) -> 次要側邊欄 (Secondary Side Bar)

這些名稱將反映在編輯器各處的選單和指令中;但是,為了避免破壞現有的按鍵繫結,指令識別碼並未變更。

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

減少動態效果模式

當啟用 OS 的減少動態效果設定時,工作區現在支援以較少的動畫進行呈現。這可以使用 workbench.reduceMotion 設定來覆寫或停用 (值為 onoff 或預設的 auto)。

評論

評論 UI 被 GitHub Pull Requests and Issues 擴充功能廣泛使用,以便在議題和提取要求中添加評論,但任何擴充功能也都可以採用它。

評論檢視可發現性

當您開啟含有評論的檔案時,將顯示「評論」檢視。這可以透過設定 comments.openView 來控制。

新增評論可發現性

現在,當您將滑鼠懸停在可以添加評論的行之任何部分時,左側邊框 (gutter) 中會顯示 "+" 符號。

評論協助工具改進

評論功能有多項協助工具改進:

  • 如果是在可評論範圍內,可以使用「在目前行新增評論」指令來建立評論。
  • 評論對話串的 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+Up/Down
  • Linux/Windows:Ctrl+Up/Down (新增)

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

複製文字保留 HTML 樣式

若要從終端機複製富文字 (Rich Text),請執行「Terminal: Copy Selection as HTML」指令,或使用終端機內容選單項目「Copy as 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 開啟的瀏覽器視窗中。瀏覽器需支援 Web 檔案系統存取 API 以存取內容。這在拖放到編輯器區域或檔案總管時均有效。

遠端存放庫

擴充功能重構

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

同步存放庫提醒

當您重新開啟具有未提交變更的存放庫時,根據預設,遠端存放庫不會顯示存放庫的最新版本。我們現在會顯示一個對話方塊來手動同步您的存放庫,以便您的存放庫與 GitHub 或 Azure Repos 上的內容保持同步。您可以使用 remoteHub.uncommittedChangesOnEntry 設定來控制此對話方塊。

Reminder to sync your repository

佈景主題:One Monokai

Azure Repos

在此里程碑中,我們啟用了在 Azure Repos 託管的存放庫中編輯和提交變更的功能。我們還添加了建立、更新和開啟 Azure Repos 提取要求的基礎功能。

筆記本 (Notebooks)

捲軸上的搜尋裝飾

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

將焦點移至互動視窗

新增了兩個用於將焦點置於互動視窗中的指令。

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

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

偵錯

JavaScript 偵錯

JavaScript 偵錯工具現在支援收集和視覺化堆積設定檔 (heap profiles)。堆積設定檔允許您查看隨時間分配記憶體的位置和量。這些已作為「Debug: Take Performance Profile」指令中的一個選項添加,也可以透過「呼叫堆疊」檢視中的錄製 ⏺ 按鈕存取。

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 允許您使用速記語法建立連結。例如,[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

New Python File 指令

現在有兩種更快的方法來建立空的 Python 檔案:透過名為「Python: New Python File」的新指令,或者透過「入門頁面」上的「New File...」項目。

Pylint 擴充功能

現在有一個新的 Microsoft Pylint 擴充功能,用於使用 pylint 進行程式碼檢查。此擴充功能利用 Language Server Protocol 提供 Linting 支援。

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 來停用內建的 Linting 功能。

Jupyter

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

核心 (Kernel) 支援

核心啟動已改進,包括:

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

資料檢視器 (Data Viewer)

資料檢視器現在支援 DataFrame 和 Series 的具名索引。

Named indexes support in Jupyter extension Data Viewer

新 Jupyter 筆記本

建立新的 Jupyter 筆記本功能現在已整合在「New File...」選單中。

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

遠端開發 (Remote Development)

我們繼續在 遠端開發擴充功能 上努力,它允許您使用容器、遠端機器或 Windows 子系統 Linux 版 (WSL) 作為功能完備的開發環境。

1.66 的重點功能包括:

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

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

GitHub Pull Requests and Issues

我們繼續在 GitHub Pull Requests and Issues 擴充功能上努力,它允許您處理、建立和管理提取要求和議題。查看該擴充功能 0.40.0 發行版的新更日誌 以查看重點內容。

預覽功能

終端機 Shell 整合

Shell 整合在此版本中繼續看到更多改進,主要體現在可靠性以及對上方「終端機」部分中描述的裝飾之改進。

以下是重點內容:

  • 指令裝飾現在會顯示在捲軸中,類似於編輯器。
  • 指令裝飾應能在視窗重新載入(或分離/附加)時恢復。
  • 在 Windows 上調整終端機大小時,能更好地追蹤指令。
  • 改進了對 VS Code 指令「Terminal: Clear」和 clear shell 指令的處理。
  • 支援 zsh 右側提示字元。
  • 處理更多格式的 bash $PROMPT_COMMAND 變數。
  • 當未啟用 PSReadLine 時支援 pwsh
  • 如果已知存在問題或需要特殊處理,Shell 初始化指令碼現在可以透過取消設定 $VSCODE_SHELL_INTEGRATION 變數來選擇不使用 shell 整合,即使該設定已啟用。

TypeScript 4.7 支援

此更新包含對即將發佈的 TypeScript 4.7 版的初步支援。有關 TypeScript 團隊目前正在開發內容的更多詳細資訊,請參閱 TypeScript 4.7 迭代計畫

若要開始使用 TypeScript 4.7 每夜建置版,請安裝 TypeScript Nightly 擴充功能

檔案總管檔案巢狀化 (File nesting)

在此迭代中,我們繼續在檔案總管中支援檔案巢狀化。作為這項工作的一部分,我們完善了對移動、重新命名和刪除巢狀檔案的支援,並添加了設定 explorer.experimental.fileNesting.operateAsGroup,以配置對巢狀父檔案的編輯是否也應套用於其子檔案。

此外,我們擴展了檔案巢狀化的配置語言,以包含更多展開模式。以前子模式中的 $(capture) 會展開為父模式中 * 所消耗的文字。現在,模式中增加了對 $(basename)$(extname)$(dirname) 的支援。這使得諸如 * -> $(basename).*.$(dirname) 之類的模式能夠將所有具有「增加片段」的檔案巢狀在單個基礎檔案下。

擴充功能編寫

筆記本感知的文件選取器

我們已經完成對 vscode.DocumentSelector 類型的補充。這種類型允許您將「移至定義」等語言功能與特定文件關聯,它驅動 UI,並決定是否向對應的提供者詢問結果。我們添加了一個新屬性,允許擴充功能縮小筆記本類型。例如,{ language: 'python', notebookType: 'jupyter-notebook'} 的目標是嵌入在 Jupyter 筆記本中的所有 python 文件。

鑲嵌提示 (Inlay hints) 可以具有編輯功能

InlayHint 類型現在可以具有一個選用的、延遲加載的 textEdits 屬性。設定了編輯功能的鑲嵌提示將在雙擊時套用。textEdits 應該用於執行使鑲嵌提示變得多餘所需的編輯。例如,雙擊代表推斷類型的提示應該插入該類型註釋。

具有自訂語言識別碼的輸出通道

在此里程碑中,我們完成了 createOutputChannel API,以便使用自訂語言識別碼建立輸出通道。這將允許您透過傳遞語言識別碼,為您的輸出通道貢獻 Token 或語法著色以及 CodeLens 功能。

色彩佈景主題種類:高對比淺色 (High Contrast Light)

色彩佈景主題現在可以指定 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

上個月,偵錯配接器通訊協定 (Debug Adapter Protocol) 向 CompletionItem 物件添加了 detail 屬性。VS Code 現在支援此屬性。您將在偵錯主控台的建議小工具中看到詳細資訊。

Debug Console example displaying detail field

語言伺服器通訊協定 (Language Server Protocol)

類型階層 (Type Hierarchy)、內嵌值和鑲嵌提示支援已移出提案狀態,以為 3.17 發行版做準備。程式庫的新次要版本已發布。

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

偵錯配接器通訊協定 (Debug Adapter Protocol)

我們解決了 偵錯配接器通訊協定 (Debug Adapter Protocol) 的幾個文件問題:

  • 為了消除 terminatedisconnect 請求的歧義,我們改進了它們的文件。
  • 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 中找到。

筆記本文件變更事件

有一個關於筆記本文件變更事件的新提案:它可作為 notebookDocumentEvents 使用,並包含兩個事件:

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

索引標籤 (Tabs) API 形狀定案

Tabs API 即將在下一個里程碑定案,目前處於形狀穩定且幾乎沒有變動的狀態。2022 年 4 月的迭代將是針對此 API 形狀和功能提供回饋的最後機會。可以透過 GitHub issues 提供回饋。Tabs API 允許讀取開啟的索引標籤、其位置並關閉它們。

內嵌完成 (Inline Completions)

我們繼續開發內嵌完成功能,以為未來幾個版本的定案做準備。內嵌完成現在可用於建議程式碼片段或文字替換(之前僅支援文字插入)。

拖放到編輯器

提議的 文字編輯器拖放 (Text editor drop) API 讓擴充功能能夠處理拖放到文字編輯器中的事件。這些拖放事件可以來自 VS Code 內部(例如將檔案從 VS Code 的檔案總管拖入文字編輯器),也可以是從作業系統將檔案拖入 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,Node.js 版本提升至 16.13.0。

後續計畫

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

RPM 套件需求清單改進

我們現在受 Chromium 啟發,作為 建置程序 的一部分來計算 rpm 套件所需的依賴項。這使我們在採用較新的執行階段或原生模組時能夠提供最新的依賴項清單。我們也將在下一個里程碑中對我們的 debian 套件引入類似的變更。

支援內建擴充功能的帶外發布 (Out-of-band releases)

那些在 Marketplace 中可用的內建擴充功能現在可以進行帶外發布,VS Code 將偵測新版本並更新擴充功能。這也將使這些擴充功能能夠支援發行前版本。

說明文件

VS Code 中的 R 語言

有一個新的 R in Visual Studio Code 主題,介紹了透過 R 擴充功能 在 VS Code 中對 R 程式語言 的支援。R 擴充功能包含豐富的語言功能,如程式碼完成和 Linting,以及整合的 R 終端機和專用的工作區、資料和圖表檢視器。

R Extension for Visual Studio Code details pane

開發容器部落格文章

如果您錯過了 Burke Holland 最近關於使用開發容器建立易於使用的程式設計環境的部落格文章,請查看 "The problem with tutorials"。該文章描述了 Laravel 如何使用預先配置的 Docker 容器來為其 PHP 框架教學提供執行階段和依賴項。

值得注意的修正

  • 117674 偵錯主控台有時在內容折行時停止自動捲動
  • 138963 當偵錯開始時,偵錯主控台無法正常運作
  • 142754 在 VS Code 終端機中使用 Emacs 發生故障
  • 143513 contributes.configuration 項目僅在搜尋方塊為空時才在檢視中遵循 "order" 屬性
  • 144458 Glob 圖樣 **/p* 錯誤地與 /foo/ap 匹配
  • 144783 未在編輯中的設定列表小工具項目似乎沒有最大寬度
  • 145243 設定目錄在較小螢幕中無法調整大小
  • 145572 設定方塊可能會與設定內容重疊

謝謝您

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

Web 擴充功能

感謝擴充功能作者使擴充功能能夠作為 網頁版擴充功能 執行(下列清單為 2022 年 3 月 1 日至 2022 年 3 月 27 日期間):

議題追蹤

對我們議題追蹤的貢獻:

提取要求 (Pull requests)

vscode 的貢獻:

vscode-css-languageservice 的貢獻

vscode-js-debug 的貢獻

vscode-languageserver-node 的貢獻

vscode-vsce 的貢獻:

debug-adapter-protocol 的貢獻

language-server-protocol 的貢獻:

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