🚀 在 VS Code 中

2021 年 2 月 (版本 1.54)

更新 1.54.1:此更新解決了擴充功能相依性的問題

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

更新 1.54.3:此更新解決了這個問題

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


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

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

加入我們的直播,在 3 月 11 日星期四太平洋時間上午 8 點(倫敦時間下午 4 點)觀看 VS Code 團隊的直播,以觀看此版本新功能的示範,並現場向我們提問。

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

Apple Silicon

我們很高興宣布在此迭代中首次發布穩定的 Apple Silicon 組建。使用 M1 晶片的 Mac 使用者現在可以在沒有 Rosetta 模擬的情況下使用 VS Code,並且在執行 VS Code 時會注意到更佳的效能和更長的電池續航力。感謝社群透過 Insiders 組建進行自我託管,並在迭代初期回報問題。

macOS 的 VS Code 預設下載現在是通用組建,可在所有 Mac 上原生執行。在 下載 頁面上,您可以找到更多適用於 Intel 或 Apple Silicon 的架構特定組建連結,與通用套件相比,這些組建的下載量較小。

Website showing the new downloads view for Apple Silicon builds

Website showing the default download for macOS

協助工具

工具列和索引標籤佔用一個索引標籤停止位

工作台中所有工具列現在都遵循標準導覽行為,因此工具列在索引標籤順序中僅佔用單一位置,並且可以使用方向鍵導覽。一旦焦點位於工具列上,應使用方向鍵將焦點移動到工具列中的特定項目。由於此變更,工作台的索引標籤停止位已大幅減少,更容易在所有部分之間導覽。

為了保持一致性,相同的變更也套用至索引標籤區域。因此,整個索引標籤區域僅為一個索引標籤停止位,索引標籤之間的鍵盤導覽應使用向左和向右方向鍵完成。

Windows 上的文字導覽

我們已改進 Windows 上文字導覽的執行方式,使其與 Windows 上螢幕助讀程式對 Electron 應用程式的期望一致。現在,使用文字導覽時,螢幕助讀程式會正確讀出每個文字。

由於此變更,我們正在棄用以下命令。它們仍然可以運作,但我們可能會在未來移除它們。

  • cursorWordAccessibilityLeft
  • cursorWordAccessibilityLeftSelect
  • cursorWordAccessibilityRight
  • cursorWordAccessibilityRightSelect

非 Windows 平台已經如預期般運作,因此我們未在那裡進行任何變更。

改進檢視和按鈕的角色

根據使用者回饋,我們已改進工作台中多個檢視和按鈕的角色。活動列側邊欄面板現在具有 role:none,這將使螢幕助讀程式不那麼冗長。管理帳戶按鈕在活動列內現在會正確宣告它們具有彈出視窗。

整合式終端機

視窗重新載入時保留終端機處理序

本機終端機處理序現在會在視窗重新載入時還原,例如當擴充功能安裝需要重新載入時。終端機將重新連線,並且終端機的 UI 狀態將還原,包括使用中的索引標籤和分割終端機的相對尺寸。

In a local window, two split terminals are created and resized. On reload, the layout appears unchanged.

可以透過將 terminal.integrated.enablePersistentSessions 設定為 false 來停用此功能。

Windows 效能改進

由於新的終端機處理序配置,來自終端機處理序的頻繁 pty 資料事件現在應能更快速地處理。由於 Windows 上的 conpty 提供的事件較小,預期這對 Windows 的影響大於其他平台。

自動重新啟動需要環境變更的終端機

最近推出了一項新功能,使擴充功能能夠影響終端機的環境。各種語言擴充功能和內建 git 擴充功能使用此功能來啟用 VS Code 作為 git 驗證提供者,以避免需要登入。先前,此功能的 UX 是在右上角顯示一個不明顯的 ⚠️ 圖示,以指示終端機的環境已過時。此指示器不明顯,因為環境變更可能重要也可能不重要。

我們已調整此功能,以便在尚未與過時環境的終端機互動時,自動重新啟動這些終端機。這可能會導致一些閃爍,但擴充功能終端機整合現在更加無縫。例如,WSL 視窗中的第一個終端機應不再顯示 Git 驗證錯誤,前提是重新啟動在終端機中輸入之前發生。

工作台

Emmet

以縮寫包裝以縮寫包裝個別行命令已合併為單一以縮寫包裝命令,以減少對應使用哪個包裝命令的困惑。此外,以縮寫包裝命令現在會正確顯示預覽空白字元。

emmet.extensionsPath 設定現在也可以接受路徑陣列,而不僅僅是字串。因此,當與設定同步結合使用時,可以指向不同的程式碼片段檔案,具體取決於它們所在的機器,而無需更新每台機器的設定。

產品圖示主題

第一個產品圖示主題已在擴充功能市集中提供。感謝主題作者的出色工作!

若要選取或尋找主題,請從命令提示字元或設定齒輪使用偏好設定:產品圖示主題命令。

Product icon themes in the Extension Marketplace

內容金鑰的 IntelliSense

VS Code 使用 when 子句來啟用和停用按鍵繫結。擴充功能也使用 when 子句來控制 功能表檢視 貢獻。撰寫這些 when 子句現在更簡單,因為編輯器為它們提供完成項目。

keybindings.json 中內容金鑰的 IntelliSense 佈景主題:GitHub 淺色佈景主題,字型:FiraCode

開啟的編輯器新的未命名檔案動作

現在在開啟的編輯器檢視標題區域中有一個新的未命名檔案動作。

New untitled file in Open Editors view

更新的應用程式功能表設定

應用程式功能表可見性的 window.menuBarVisibility 設定已更新,以更好地反映選項。已進行兩項主要變更。

首先,設定的 default 選項已重新命名為 classic

其次,應用程式功能表列中的顯示功能表列項目現在會在 classiccompact 選項之間切換。若要完全隱藏它,您可以更新設定,或在 compact 模式下使用活動列的內容功能表。

應用程式功能表中的顯示功能表列項目 佈景主題:GitHub 淺色佈景主題

Webview 快取改進

我們已改進 Webview 中本機檔案的快取。如果 Webview 從磁碟重新載入檔案,則我們現在使用 ETag 以避免在檔案未變更時再次讀取檔案。這可以消除資料傳輸,並縮短回應時間,特別是對於遠端工作區。

此快取目前僅適用於現有的 Webview 重新載入資源時。即使 Webview 屬於先前建立類似 Webview 的擴充功能,它也不適用於新建立的 Webview。

工作區搜尋動作的變更

我們已修改現有的 workbench.view.search,使其不再將選取的文字放入搜尋輸入中,而是開啟輸入。若要使用選取的文字建立新的搜尋並遵循 search.mode 設定,應使用 workbench.action.findInFiles

僅限修飾詞的按鍵繫結

現在可以為重複的修飾詞定義按鍵繫結,例如 shift shiftalt altctrl ctrlcmd cmd / meta meta / win win。這些按鍵繫結可以手動輸入到 keybindings.json 中,例如

{ "key": "shift shift", "command": "workbench.action.quickOpen" }

更新的清單/樹狀結構 UI

我們已更新清單/樹狀結構樣式以符合原生焦點和選取指示器:焦點元素現在將以外框顏色呈現。

List/tree UI showing focused element

重大變更

建議佈景主題發行者也採用此樣式,只需將 list.focusBackground 顏色的自訂交換為 quickInput.list.focusBackground 顏色即可。若要查看範例,請查看此提交

表格小工具

我們推出了新的表格小工具,建立在現有的清單小工具之上,因此我們可以像呈現清單元素一樣呈現表格資料,並具有相同的效能。目前,它用於我們遠端功能的連接埠檢視中。

Table widget view of remote Ports

開始使用

我們正在實驗一個新的編輯器,在啟動時顯示,稱為開始使用編輯器。這旨在讓新使用者更容易使用 VS Code 的某些功能。某些 Insiders 使用者可能已經看過它,並且它將在此迭代過程中緩慢地推廣到更多穩定使用者。您可以隨時透過將 workbench.startupEditor 設定修改為或離開 gettingStarted 來選擇加入或退出新行為。

Getting Started experience walkthrough

時間軸檢視

您現在可以使用選取以進行比較與選取的項目比較命令,跨 Git 歷史時間軸項目比較變更,類似於在 [檔案總管] 檢視中比較檔案。此功能可讓您快速查看 Git 檔案歷史記錄中任意兩個提交之間的所有變更。

Select for Compare command in context menu

預設 Sash 懸停邊框顏色

1.52 版本中,我們為 Sash (sash.hoverBorder) 引入了懸停邊框顏色權杖,但未設定預設值。我們現在預設在所有佈景主題上顯示此顏色。

Sash hover border color

偵錯

中斷點檢視改進

用於移除中斷點的新內嵌動作

我們已新增內嵌動作 X,以移除中斷點檢視中的中斷點。此動作應使移除中斷點更容易。

Breakpoints view showing X next to selected breakpoint

例外狀況篩選器的說明文字支援

最近,我們已新增對在中斷點檢視中編輯例外狀況篩選器條件的支援。

為了使這些條件更容易探索,並且其語法不言自明,VS Code 現在會在例外狀況篩選器上顯示懸停,並在條件文字方塊中顯示預留位置文字。

由於這兩個資訊都由基礎偵錯擴充功能提供,因此它可能比某些通用訊息更具體(因此更有幫助)。

由於此新功能基於對偵錯配接器協定 (請參閱下方) 的新增內容,因此需要偵錯擴充功能選擇加入。在此版本中,只有 VS Code 的內建 JavaScript 偵錯工具支援此新功能。

Breakpoint placeholder

新設定和其他改進

摺疊偵錯主控台中相同的行

有一個新設定 debug.console.collapseIdenticalLines,可控制偵錯主控台是否應摺疊相同的行,並使用徽章顯示多次出現的情況。預設值為摺疊。

控制在偵錯前儲存哪些編輯器

有一個新設定 debug.saveBeforeStart,可控制在偵錯開始前要儲存哪些編輯器。此設定具有下列值

  • allEditorsInActiveGroup:儲存活動群組中的所有編輯器。預設值。
  • nonUntitledEditorsInActiveGroup:儲存活動群組中的所有編輯器,但未命名的編輯器除外。
  • none:不儲存任何編輯器。

此設定對於 PowerShell 偵錯很有用,因為 PowerShell 偵錯工具支援偵錯未儲存的檔案。

改進重新啟動框架動作的啟用

透過對偵錯配接器協定的新添加,偵錯擴充功能現在能夠與 VS Code UI 通訊「重新啟動框架」動作是否在選取的堆疊框架上可用。VS Code 現在會針對無法重新啟動的堆疊框架,在呼叫堆疊檢視中停用重新啟動框架內嵌動作。

例如,JS-Debug 擴充功能已採用此功能,現在非同步堆疊追蹤會停用重新啟動框架動作。

語言

TypeScript 4.2

VS Code 現在隨附 TypeScript 4.2.2。此主要更新包含許多 TypeScript 語言改進,以及 JavaScript 和 TypeScript 工具的許多改進和錯誤修正。

您可以在 TypeScript 部落格上閱讀更多關於 TypeScript 4.2 的資訊。

快速修正以宣告遺失的函式

新的新增遺失的函式宣告快速修正會建立遺失函式的存根。例如,如果我們呼叫遺失的函式 add

const x: number = add(1, 2);

add 上使用新增遺失的函式宣告會導致

const x: number = add(1, 2);
function add(arg0: number, arg1: number): number {
  throw new Error('Function not implemented.');
}

您可以在撰寫程式碼時使用此快速修正,以根據呼叫簽章快速建立函式的存根。

若要在 JavaScript 中使用此快速修正,您必須啟用類型檢查

JS Doc 範本現在會產生 @returns

JS Doc 範本現在會自動包含 @returns,如果正在註釋的函式包含 return 陳述式。例如,對於函式 getViz

function getViz(el) {
  return el?.viz;
}

產生的 JSDoc 範本為

/**
 *
 * @param {*} el
 * @returns
 */
function getViz(el) {
  return el?.viz;
}

您可以使用 javascript.suggest.jsdoc.generateReturnstypescript.suggest.jsdoc.generateReturns 在 JSDoc 註解中停用 @returns

已棄用的 DOM API 現在已標記

已棄用的 DOM 方法現在在建議和程式碼中標記為已棄用

document.clear being marked as deprecated in code

您可以透過設定 editor.showDeprecated: false 來停用在編輯器中顯示已棄用的屬性和函式。

筆記本

自動重新載入筆記本

當筆記本的檔案在磁碟上變更且沒有未儲存的變更時,筆記本現在會自動重新載入。這應使使用版本控制下的筆記本更加簡單。

改進大型儲存格的焦點

當大型筆記本儲存格成為焦點時,您現在可以更好地判斷哪個儲存格成為焦點,即使儲存格的頂部和底部超出檢視範圍。我們現在在焦點儲存格的左側和右側顯示邊框。

Notebook focus for a large cell

CSS/LESS/SCSS 和 HTML 中的懸停

您現在可以微調 HTML 和 CSS 中懸停的內容,以

  • 不顯示來自 MDN 的文件
  • 不顯示 MDN 頁面的連結

使用設定 css.hover.documentationcss.hover.references 來變更 CSS 的懸停。將 css 替換為 htmlcssscssless 以變更這些語言的設定。

預覽功能

筆記本的可擴充 Markdown 轉譯器

在此迭代中,我們探索使筆記本儲存格的 Markdown 轉譯器可擴充。例如,在下面的螢幕擷取畫面中,我們已擴充 VS Code 的 Markdown 轉譯器以支援在筆記本儲存格中顯示數學公式

A math formula being rendered in a notebook cell

為了使我們的 Markdown 轉譯器可擴充,我們探索使用 Markdown It 來轉譯所有筆記本 Markdown。我們也探索將轉譯的 Markdown 移動到筆記本的背景層 Webview 中。

雖然我們尚未準備好開放此功能的官方 API,但我們計劃在 3 月繼續探索。您也可以立即使用未記載的 notebook.experimental.useMarkdownRenderer: true 設定來試用新的可擴充 Markdown 轉譯器。

擴充功能貢獻

Brackets

來自 Brackets 原始碼編輯器的開發人員可以使用 Brackets 鍵盤對應擴充功能,在 VS Code 中繼續使用相同的鍵盤快速鍵。還有一個 Brackets 擴充功能套件,其中捆綁了用於處理 CSS 和建立即時預覽的擴充功能。

Brackets Extension Pack in the Marketplace

GitHub Pull Requests and Issues

GitHub Pull Requests and Issues 擴充功能上的工作仍在繼續,此擴充功能可讓您處理、建立和管理提取要求和問題。

若要瞭解所有新功能和更新,您可以查看擴充功能 0.24.0 版本的完整 變更記錄

遠端開發

遠端開發擴充功能上的工作仍在繼續,此擴充功能可讓您使用容器、遠端機器或 Windows Subsystem for Linux (WSL) 作為功能完整的開發環境。

1.54 中的功能重點包括

  • 連接埠檢視表格配置
  • 遠端 - SSH:X11 轉送
  • WSL:改進的 WSL 2 支援

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

擴充功能撰寫

編輯器標題功能表和「執行」子功能表的限制

編輯器工具列 (editor/title) 中的空間有限。因此,我們有

  • 實作溢位行為。當主要群組 (即使用圖示呈現的動作群組) 超過九個命令時,所有其他命令都會溢位到 ... 功能表中。
  • 新增了 editor/title/run 子功能表。我們要求擴充功能作者將執行和偵錯命令貢獻到此功能表中,而不是再貢獻到 editor/title 功能表中,如同我們在先前版本中建議的那樣。此外,不再需要使用魔術群組值 1_run@101_run@20,即可讓命令顯示在正確的位置。

Run dropdown menu

另請注意,執行子功能表是動態的,當它是唯一的子功能表時,將會以其第一個子功能表取代自身。

驗證提供者 API

您現在可以註冊驗證提供者,其他擴充功能可以使用它來執行針對服務的驗證。

擴充功能市集的新意見反應管道

有一個新的 公用存放庫,用於與擴充功能市集相關的問題。如果您有技術問題、想要提供意見反應或有功能要求,請開啟問題

更新的 codicon

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

  • debug-rerun
  • gather
  • git-pull-request-create
  • notebook-template
  • run-above
  • run-below
  • type-hierarchy
  • type-hierarchy-sub
  • type-hierarchy-super
  • variable-group

Codicons for tasks

我們也更新了以下圖示以保持一致性

  • debug-alt-small
  • debug-alt
  • debug-rerun
  • play-circle
  • play
  • run-above
  • run-all
  • run-below

Consistent codicons

建議的擴充功能 API

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

  • 您必須使用 Insiders,因為建議 API 會頻繁變更。
  • 您必須在擴充功能的 package.json 檔案中包含此行:"enableProposedApi": true
  • 將最新版本的 vscode.proposed.d.ts 檔案複製到專案的原始碼位置。

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

圖示貢獻點

圖示貢獻點允許擴充功能依 ID 定義新圖示,以及預設圖示。然後,擴充功能 (或任何其他相依於擴充功能的擴充功能) 可以在可以使用 ThemeIcon 的位置使用該圖示 ID:在 Markdown 字串 中 (例如,"$(distro-ubuntu)" Ubuntu 20.04") 以及所有接受 ThemeIcon 的位置 (例如,new ThemeIcon("distro-ubuntu"))。

產品圖示主題可以重新定義圖示 (如果它們知道圖示 ID)。

如需更多資訊,請參閱 issue 114942 以取得詳細資訊並提供意見反應。

內嵌值提供者 API

目前,VS Code 偵錯工具的顯示內嵌值功能基於 VS Code 核心中的通用實作,並且不透過設定提供可自訂性,也不透過擴充功能提供可擴充性。因此,它並非完全適合所有語言,有時會顯示不正確的值,因為它不瞭解基礎原始碼語言。因此,我們正在開發擴充功能 API,以允許完全取代內建實作,或將實作的某些部分替換為自訂程式碼。

在此里程碑中,我們已提供 建議 API 的第一個實作。

以下是內嵌值提供者 API 的簡要說明

  • 必須為語言註冊 InlineValuesProvider
  • 對於給定的文件,InlineValuesProvider 必須找到應顯示內嵌值的所有語言元素。
  • 對於每個元素,都必須傳回 InlineValue 描述項物件,指示 VS Code 要顯示哪些資訊。目前支援三種類型的 InlineValue 物件
    • InlineValueText:要顯示的完整文字,
    • InlineValueVariableLookup:VS Code 將嘗試在 [變數] 檢視中查閱以尋找其值的變數名稱。然後以「名稱 = 值」的形式顯示名稱和值,
    • InlineValueEvaluatableExpression:VS Code 將傳送至偵錯工具以進行評估的運算式。然後以「運算式 = 結果」的形式顯示運算式和結果。

以下程式碼片段(來自 Mock Debug)顯示了「markdown」檔案的最小內嵌值提供者,它使用規則運算式來尋找「變數」,然後指示 VS Code 透過變數檢視尋找它們的值

vscode.languages.registerInlineValuesProvider('markdown', {
  provideInlineValues(
    document: TextDocument,
    viewport: Range,
    context: InlineValueContext
  ): ProviderResult<InlineValue[]> {
    const allValues: InlineValue[] = [];
    for (let l = 0; l <= context.stoppedLocation.end.line; l++) {
      const line = document.lineAt(l);
      var regExp = /local_[ifso]/gi; // match variables of the form local_i, local_f, Local_i, LOCAL_S...
      do {
        var match = regExp.exec(line.text);
        if (match) {
          const varName = match[0];
          const varRange = new Range(l, match.index, l, match.index + varName.length);
          allValues.push(new InlineValueVariableLookup(varRange, varName));
        }
      } while (match);
    }
    return allValues;
  }
});

現在是運作中的內嵌值提供者

Debugger shows inline values

如果您想要為此建議 API 提供意見反應,請將註解新增至 此 issue

測試

我們繼續在 VS Code 中的測試方面取得進展。本月,我們專注於改進 VS Code 和擴充功能 API 中的基本體驗。我們也發佈了一些關於測試的 臨時文件,隨著 API 繼續穩定,這些文件將會充實。

語言伺服器協定

即將發佈的 3.17 版本實作了 診斷提取模型的第一個提案。此提案在 VS Code LSP 程式庫的下一個版本中提供。

偵錯配接器協定

ExceptionBreakpointsFilter 的更多說明文字屬性

已將兩個選用的 UI 屬性 descriptionconditionDescription 新增至 ExceptionBreakpointsFilter

透過這些屬性,用戶端可以顯示有關例外狀況中斷點的其他資訊。description 屬性可以顯示在懸停中,而 conditionDescription 可以用作文字方塊的預留位置文字,可在其中編輯條件。

改進 setExceptionBreakpoints 要求的描述

我們已改進 setExceptionBreakpoints 要求的描述,方法是新增有關如果使用者輸入無效的例外狀況中斷點條件,配接器應執行的操作的指引。

堆疊框架的新 canRestart 屬性

已將新的選用布林值屬性 canRestart 新增至堆疊框架。它指示是否可以使用 restart 要求重新啟動堆疊框架。根據此資訊,用戶端可以啟用或停用重新啟動框架內容功能表動作。

工程

Electron 沙箱的進展

在此里程碑中,我們繼續使 VS Code 視窗準備好啟用 Electron 的 沙箱內容隔離 功能。

具體而言

  • 我們能夠將我們在轉譯器中的某些原生模組需求移動到其他處理序。
  • 已實作 MessagePort 通訊通道,以便在啟用沙箱時運作。

新的終端機處理序配置

終端機處理序現在會在新的「pty 主機」處理序下產生,而不是在視窗處理序下產生。此變更不僅是 Electron 沙箱的一部分,而且還應提高終端機的穩定性和效能。

發佈到 Windows Package Manager 的 Windows 安裝程式

適用於 x86x64 的 Windows 使用者和系統安裝程式現在已發佈到 Windows Package Manager。您可以使用 winget 工具搜尋所有 Visual Studio Code 安裝程式 - winget search vscode,以及安裝任何已發佈的安裝程式。

使用 TypeScript 4.3 建置 VS Code

VS Code 現在是使用 TypeScript 4.3 的每晚組建來建置的。這可讓我們驗證 TypeScript 團隊的最新工作,並提供有關新變更的意見反應。

最新的 TypeScript 版本已協助我們捕捉到一些我們在條件式陳述式中遺失 awaits 的情況。

防止 yarn.lock 變更

我們現在有 CI 可以防止針對 yarn.lock 檔案的 PR,以提高供應鏈安全性。

預設分支:main

我們已開始將我們所有存放庫的預設分支重新命名為 main,包括 microsoft/vscode。我們已完成此工作約 60%。

文件

VS Code 和課堂上的 Python

閱讀 Harvey Mudd College 的一位電腦科學教授的 案例研究,他在他的 Python 入門 CS 課程中使用 VS Code。瞭解他為學生推薦的設定,以及有用的擴充功能和免費的自學 Python 和資料科學課程。

疑難排解擴充功能部落格文章

每個人都喜歡安裝和使用 VS Code 擴充功能。但是,當您安裝了許多擴充功能時,有時編輯器可能會開始表現「奇怪」,並且最好知道此行為是否由特定擴充功能引起。如果您錯過了先前關於 擴充功能二分法 公用程式的公告,您可以閱讀這篇 「使用二分法解決擴充功能問題」 部落格文章,其中描述了您如何快速疑難排解「不良」擴充功能,甚至可以協助擴充功能作者提供意見反應。

值得注意的修正

  • 100151:功能表金鑰套用至檔案總管中的錯誤項目
  • 112055:偵錯為每個 Python 工作階段開啟新的整合式終端機
  • 114881:複製資料夾或檔案時保留符號連結
  • 114933:「無法追蹤工作」令人沮喪
  • 115922:方向鍵在檔案總管中篩選時無法運作
  • 116037:偵錯主控台中未顯示輸出的連結懸停
  • 116101:我找不到命令搜尋中的目標命令,因為英文描述已消失
  • 116932:從貢獻的命令執行擲回自訂例外狀況會顯示隱晦的錯誤彈出視窗

感謝您

最後但同樣重要的是,非常感謝以下在本月為 VS Code 做出貢獻的人員

對我們問題追蹤的貢獻

vscode 的貢獻

貢獻至 language-server-protocol

貢獻至 vscode-languageserver-node

貢獻至 vscode-emmet-helper

貢獻至 vscode-html-languageservice

貢獻至 vscode-js-debug

貢獻至 vscode-textmate

貢獻至 vscode-vsce