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

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 釋出亮點影片,快速瞭解新內容。

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

輔助功能

團隊一直努力使 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 - 在此間隔(秒)內,會將後續更改新增到本地檔案歷史記錄中的最後一個條目(預設值:10s)。

時間軸檢視工具欄中的新過濾器操作允許您啟用或停用單個提供程式。

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

注意: 本地歷史記錄條目的儲存位置取決於您使用 VS Code 的方式。開啟本地檔案時,條目會持久化在本地使用者資料資料夾中;開啟遠端檔案時,條目會儲存在遠端使用者資料資料夾中。當沒有檔案系統可用時(例如,在使用 Web 版 VS Code 的某些情況下),條目會儲存在 IndexedDB 中。

設定編輯器

語言過濾器

使用者現在可以在設定編輯器搜尋框中輸入 @lang:languageId 來檢視和編輯可為 ID 為 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 允許您繞過二進位制檔案警告,並在檢測到二進位制檔案時自動開啟您選擇的編輯器型別。您可以從設定編輯器中的下拉列表中選擇預設的二進位制編輯器 ID,或在 settings.json 中透過 IntelliSense 進行選擇。

更順暢的身份驗證體驗

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

  • 對於 GitHub 身份驗證,我們移除了初始的繼續頁面,從而使您的登入體驗少了一個步驟。
  • 對於 Microsoft 身份驗證,我們儘量減少您被送出 VS Code 進行登入的次數,如果您已經透過 Microsoft 登入進行設定同步或其他擴充套件。

從 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 現在支援將特定平臺擴充套件更新到更具體的目標平臺版本。例如,如果您使用的是 64 位 Windows,並且已安裝了 32 位 Windows 版的C/C++ 擴充套件,而市場上有相同版本的 64 位 Windows 版擴充套件,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+Up/Down
  • Linux/Windows:Ctrl+Up/Down(新增)

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

複製的文字保留 HTML 樣式

要複製終端中的富文字,請執行終端:將選定內容複製為 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,為該策略的結果提供更高的優先順序。

Web 版 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 公開。

提醒同步儲存庫

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

Reminder to sync your repository

主題:One Monokai

Azure Repos

在此里程碑中,我們啟用了編輯和提交託管在Azure Repos中的儲存庫更改的功能。我們還添加了用於建立、更新和開啟 Azure Repos 拉取請求的基本功能。

Notebook

在捲軸上查詢裝飾

現在將在筆記本的捲軸中呈現查詢結果。

將焦點移至互動式視窗

有兩個新命令用於將焦點放置在互動式視窗中。

  • 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 Notebook

新建 Jupyter Notebook 的建立現在已合併到新建檔案...選單中。

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

遠端開發

遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。

1.66 版本的功能亮點包括:

  • “在開發容器中開啟”徽章 - 將您儲存庫的使用者引導至在自定義開發容器中重新開啟。
  • 遠端 - SSH 擴充套件現在可以連線到遠端 Apple Silicon/M1/ARM64 機器。

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

GitHub 拉取請求和議題

我們繼續致力於GitHub Pull Requests and Issues擴充套件,該擴充套件允許您處理、建立和管理拉取請求和問題。請檢視擴充套件的 0.40.0 版本的更改日誌以瞭解亮點。

預覽功能

終端 Shell 整合

在此版本中,Shell 整合在可靠性和上面“終端”部分所述的裝飾改進方面得到了進一步的改進。

以下是亮點:

  • 命令裝飾現在會顯示在捲軸中,類似於編輯器。
  • 命令裝飾應在視窗重新載入(或分離/附加)後恢復。
  • 更好地跟蹤 Windows 上調整終端大小時的命令。
  • 改進了對 VS Code 命令終端:清除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 擴充套件

檔案資源管理器檔案巢狀

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

此外,我們擴充套件了檔案巢狀的配置語言,以包含更多的展開模式。以前,子模式中的 $(capture) 會擴充套件為父模式中的 * 消耗的文字。現在,還支援模式中的 $(basename)$(extname)$(dirname)。這使得像 * -> $(basename).*.$(dirname) 這樣的模式可以將所有帶有“附加段”的檔案巢狀在單個基礎檔案下。

擴充套件創作

支援 Notebook 的文件選擇器

我們已完成對 vscode.DocumentSelector 型別的補充。此型別允許您將語言功能(如轉到定義)與特定文件關聯,它驅動 UI,並決定是否向相應的提供程式請求結果。我們添加了一個新屬性,允許擴充套件程式按 Notebook 型別進行篩選。例如,{ language: 'python', notebookType: 'jupyter-notebook'} 針對的是嵌入在 Jupyter Notebook 中的所有 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

上個月,除錯介面卡協議向 CompletionItem 物件添加了一個 detail 屬性。VS Code 現在支援此屬性。您將在除錯控制檯的建議小部件中看到詳細資訊。

Debug Console example displaying detail field

語言伺服器協議

型別層次結構、內聯值和內嵌提示的支援已從提議狀態移出,為 3.17 版本做準備。已釋出庫的新版本。

還有一個LSP 元模型的第一個版本,以及相應的JSON schemaTypeScript 型別定義。元模型包含以下資訊:指定的請求和通知及其引數型別、返回型別、部分返回型別和註冊選項。它還包含所有已定義的結構和列舉。

除錯介面卡協議

我們已解決了除錯介面卡協議的幾項文件問題。

  • 為了區分 terminatedisconnect 請求,我們改進了它們的文件。
  • evaluate 請求的 context 引數已記錄其值為 variables。VS Code 在 evaluate 請求的 VARIABLES 檢視上下文中呼叫時,就使用了這個未記錄的值。客戶端和除錯介面卡無需進行任何更改,因為 context 引數的型別是 string,而 variables 值僅在文件中提及。

建議的擴充套件 API

每個里程碑都會帶來新的提議 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 允許讀取開啟的標籤頁、它們的位置以及關閉它們。

行內補全

我們繼續對行內補全進行開發,為在接下來的幾次釋出中最終確定做準備。現在可以使用行內補全來建議程式碼片段或文字替換(之前只支援文字插入)。

拖放到編輯器

提議的 text editor drop API 允許擴充套件處理拖放到文字編輯器中的事件。這些拖放事件可以來自 VS Code 內部(例如,將檔案從 VS Code 的 Explorer 拖放到文字編輯器),也可以透過將檔案從作業系統拖放到 VS Code 中生成。

要嘗試新 API,您必須設定 "workbench.experimental.editor.dragAndDropIntoEditor.enabled": true。啟用此設定後,您可以透過按住 Shift 鍵同時拖放來將檔案拖放到編輯器中。

我們包含了對在 Markdown 檔案中拖放時生成連結的實驗性支援。您也可以 檢視 Markdown 擴充套件的原始碼 以瞭解 API 的使用示例。

已解決/未解決的評論

有一個關於為評論執行緒設定 已解決或未解決狀態 的新提議。指定了狀態的評論執行緒將獲得額外的使用者體驗處理。

工程

Electron 17 更新

在此里程碑中,我們很高興地在 VS Code 中釋出了 Electron v17。這是從我們之前的 Electron v13 版本進行的重大更新,並利用了 Electron 的 程序重用架構。在過去的一年中,我們一直在重新實現並逐步推出我們一些核心服務在與工作臺的互動和生命週期方面的更改,為這種新架構做準備。

特別感謝所有參與此項工作的人員,也感謝社群在 Insiders 版本中進行自託管並提供反饋,使我們能夠自信地釋出此更新。

此更改對 VS Code 使用者意味著什麼?

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

下一步是什麼?

我們將繼續根據 Electron 的新 釋出週期 來採用 Electron 版本。我們還在積極致力於 沙箱化工作臺,下一步是改進 Node.js 託管服務和沙箱化工作臺之間的通訊通道,這將使我們能夠進一步簡化新架構。

RPM 包依賴列表改進

我們現在將 RPM 包所需的依賴項作為我們 構建過程 的一部分來計算,其靈感來自於 Chromium 的工作。這使我們在採用較新的執行時或本地模組時能夠提供最新的依賴項列表。我們還將在下一個里程碑中對我們的 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 Emacs 在 VS Code 終端中的使用已損壞
  • 143513 views 中的 contributes.configuration 條目僅在搜尋框為空時尊重“order”屬性
  • 144458 Glob 模式 **/p*/foo/ap 上匹配錯誤
  • 144783 正在編輯的設定列表小部件項似乎沒有最大寬度
  • 145243 在小螢幕上無法調整設定目錄的大小
  • 145572 設定框可能覆蓋設定

感謝

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

Web 擴充套件

擴充套件作者,感謝您 enabling 執行程式碼作為 Web 擴充套件 的擴充套件(以下列表是 2022 年 3 月 1 日至 2022 年 3 月 27 日期間的)

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

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.