🚀 在 VS Code 中取得

2020 年 4 月 (版本 1.45)

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

下載:Windows: x64 | Mac: Intel | Linux: deb rpm tarball snap


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

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

Insiders: 想要盡快試用新功能嗎?您可以下載每晚組建的 Insiders 版本,並在最新更新可用時立即試用。如需 Visual Studio Code 的最新新聞、更新和內容,請在 Twitter 上追蹤我們 @code

協助工具

在這個里程碑中,我們收到來自社群的絕佳意見反應,這有助於我們找出並解決許多 協助工具問題

  • 我們推出了焦點移至下一個部分 (F6) 和焦點移至上一個部分 (⇧F6 (Windows、Linux Shift+F6)) 命令,讓您輕鬆地在工作台中導覽。
  • 狀態列現在可供存取,當焦點在狀態列上時,螢幕助讀程式可以讀取其內容。
  • 在工作台中的每個清單和樹狀結構小工具中引入適當的 ARIA 標籤,例如 [開啟的編輯器]、[麵包屑導覽]、[問題] 檢視等等。

我們團隊的首要任務之一是讓 Visual Studio Code 成為更易於存取的產品,並改善每位使用者的體驗,因此我們建立了一個適用於 VS Code 協助工具的 新的 Gitter 頻道。我們鼓勵使用者加入並提供意見反應、提出問題並分享協助工具實務。

工作台

使用滑鼠滾輪切換索引標籤

當您使用滑鼠滾輪在編輯器索引標籤上捲動時,目前無法切換索引標籤,只能顯示在檢視畫面外的索引標籤。現在透過新的設定 workbench.editor.scrollToSwitchTabs,您可以變更行為以切換作用中的編輯器索引標籤。

如下所示,當游標焦點在編輯器索引標籤區域中時,如果使用者捲動滑鼠滾輪,作用中的編輯器就會變更。

Changing editor tabs using the mouse wheel

注意: 您也可以在捲動時按住 Shift 鍵,以取得相反的行為 (例如,即使 scrollToSwitchTabs 設定為關閉,您也可以切換編輯器索引標籤)。

自訂視窗標題分隔符號

新的設定 window.titleSeparator 可讓您變更視窗標題中使用的分隔字元。預設情況下,會使用破折號 '-'

Window title separator using dash

更新預設佈景主題的側邊列區段標題

我們已更新預設深色和淺色佈景主題的側邊列區段標題樣式。我們現在使用透明背景,並為每個標題顯示邊框。

在下方,開啟的編輯器區段標題沒有背景色彩,而 VSCODE大綱 標題具有上邊框。

Side Bar section headers

編輯器

更快的語法醒目提示

VS Code 中的語法醒目提示透過 解譯 Text Mate 文法 來執行。這些文法是使用規則運算式撰寫而成,並且可以使用 oniguruma 規則運算式程式庫 進行評估。到目前為止,我們一直使用兩個不同的程式庫來評估這類規則運算式,一個用於 VS Code 桌面 (原生節點模組),另一個用於瀏覽器中的 VS Code (Web Assembly 二進位檔)。

我們現在已撰寫專用的 Web Assembly 繫結,此繫結已針對 TextMate 解譯器使用進行最佳化。透過避免在內部迴圈中進行記憶體配置,並採用幾個月前才新增至 oniguruma 的新 API,我們已能夠建立比先前方法更快的變體,並針對醒目提示一般程式設計檔案提供高達 3 倍的效能。您可以檢閱 提取要求 #95958 以取得更多詳細資料和測量結果。

語意符記樣式

您現在可以在使用者設定中自訂語意佈景主題規則。語意色彩標示適用於 TypeScript 和 JavaScript,對 Java 和 C++ 的支援正在開發中。預設會針對內建佈景主題啟用,並且正由佈景主題擴充功能採用。

editor.semanticTokenColorCustomizations 設定允許使用者覆寫預設佈景主題規則,並自訂佈景主題。

Semantic token color customization

上述設定會變更 預設深色 + 佈景主題。它為參數提供新的樣式 (斜體和新色彩),並為預設程式庫中的所有符號加上底線 (例如,PromiseMap 及其屬性)。

以下範例會將語意樣式新增至所有佈景主題

"editor.semanticTokenColorCustomizations": {
    "enabled": true, // enable semantic highlighting for all themes
    "rules": {
        // different color for all constants
        "property.readonly": "#35166d",

        // make all symbol declarations bold
        "*.declaration": { "bold": true }
    }
}

如需語意符記佈景主題的詳細說明,請參閱 語意醒目提示指南

預設深色 + 佈景主題中常數的新色彩

預設深色 + 和預設淺色 + 佈景主題現在以與可寫入變數不同的陰影色彩標示常數。

請注意,下方的 htmlModerange 常數與 result 變數的色彩不同。

預設深色 + 佈景主題

Constant color in the Dark+ theme

預設淺色 + 佈景主題

Constant color in the Light+ theme

停用持續性復原

上一個里程碑,變更了復原/取消復原堆疊,以便在您關閉檔案並重新開啟檔案時持續保存。並非所有人都想要這項新功能,因此現在有一個設定 files.restoreUndoStack 可以停用持續性復原。

整合式終端機

移除數個提示相關命令

已移除下列命令

  • workbench.action.terminal.deleteWordLeft
  • workbench.action.terminal.deleteWordRight
  • workbench.action.terminal.deleteToLineStart
  • workbench.action.terminal.moveToLineStart
  • workbench.action.terminal.moveToLineEnd

這些命令的運作方式是將特定的字元序列傳送至終端機,這是一種根據命令快速鍵終端機使用方式的最佳猜測。這些命令的問題在於它們是一個封閉的方塊,您需要確實搜尋 vscode 程式碼基底,才能找出它們的運作方式。它們已由 workbench.action.terminal.sendSequence 命令的自訂快速鍵取代,該命令以一般方式執行相同的動作。

這些是進階鍵盤快速鍵,無法透過 [鍵盤快速鍵] UI 以完整形式檢視,因為它們包含引數,但您可以透過執行喜好設定:開啟預設鍵盤快速鍵 (JSON) 命令來檢視其 JSON 定義

Terminal sendSequence keybindings JSON

支援在 PowerShell 中貼上多行文字

多行貼上功能在 PowerShell 中從未正常運作,因為 VS Code 始終以與輸入完全相同的方式傳送文字。如上所述,數個快速鍵已交換為使用 workbench.action.terminal.sendSequence 命令,而且您可能已注意到僅針對 Windows 新增了一個新的快速鍵

{ "key": "ctrl+v",                "command": "workbench.action.terminal.sendSequence",
                                     "when": "terminalFocus && !accessibilityModeEnabled && terminalShellType == 'pwsh'",
                                     "args": {"text":"\u0016"} },

這個新的快速鍵會將代表 Ctrl+V 的文字直接傳送至 PowerShell,PSReadLine 會接收並正確處理該文字。

之前

Terminal paste error before

之後

Terminal paste correctly after

佈景主題:藍寶石 (昏暗)

控制按兩下字組選取

新的 terminal.integrated.wordSeparators 設定可讓您自訂分隔字元,當您在終端機中按兩下時,會使用這些分隔字元來分隔字組。

預設分隔符號為

  "terminal.integrated.wordSeparators": " ()[]{}',\"`─"

偵錯

自動偵錯組態

在 VS Code 中設定偵錯可能是一項艱鉅的工作,因為使用者必須建立新的偵錯組態 (或至少修改範本以符合其需求)。為了持續簡化偵錯體驗,我們新增了一項新功能,讓偵錯擴充功能作者能夠分析目前的專案,並自動提供高品質的偵錯組態,而這些組態不需要額外的使用者組態。

以與提供建置工作類似的方式,自動偵錯組態會群組在 [偵錯] 檢視組態下拉式清單和 [選取並開始偵錯] 快速選取中的適當偵錯工具 (資料夾圖示) 下。選取偵錯工具後,VS Code 會呈現所有可用的自動組態。選取組態將會啟動新的偵錯工作階段。

下列螢幕廣播顯示新 JavaScript 偵錯工具 (預覽版) 和我們的教育性模擬偵錯的這項功能

Automatic debug configurations

可以透過在快速開啟 (⌘P (Windows、Linux Ctrl+P)) 中輸入「debug 」(帶有空格) 或觸發偵錯:選取並開始偵錯命令來開啟偵錯快速選取。

在下一個里程碑中,我們將新增 UI,以便輕鬆地將自動偵錯組態新增至 launch.json 以進行進一步組態。

工作

停用更快的快速選取

在 1.44 版中,我們改進了當您執行工作:執行工作命令時顯示的工作選取器,方法是變更版面配置並使其更快。但是,更快的快速選取確實會讓工作選取器根據您想要執行的工作而有兩個層級的深度。如果您想要先前的 UI,您現在可以使用 task.quickOpen.showAll 設定停用更快的選取器。

執行時儲存

先前,當執行工作時,一律會儲存所有未儲存的編輯器。如果您不希望在執行工作時儲存編輯器,您現在可以使用 task.saveBeforeRun 組態該行為。

語言

TypeScript 狀態列項目增強功能

當您專注於 TypeScript 檔案時,VS Code 會在狀態列中顯示目前的 TypeScript 版本

TypeScript version status bar entry

按一下版本現在會顯示適用於目前 TypeScript 專案的命令

TypeScript project commands

提示使用者切換至工作區版本的 TypeScript

新的 typescript.enablePromptUseWorkspaceTsdk 設定會顯示提示,詢問使用者是否想要切換至工作區版本的 TypeScript

Prompt shown when opening a workspace with local TypeScript version

若要啟用提示,請包含 "typescript.enablePromptUseWorkspaceTsdk": truetypescript.tsdk 作為專案的工作區設定。

Markdown 檔案中的編輯器連結和 Markdown 預覽中的連結現在可以指向資料夾。按一下其中一個連結將會在 VS Code 的檔案總管中顯示目標資料夾。

原始檔控制

GitHub 存放庫的 GitHub 驗證

VS Code 現在針對 GitHub 存放庫具有自動 GitHub 驗證。您現在可以複製、提取、推送至公用和私人存放庫,而無需在系統中組態任何認證管理員。即使在整合式終端機中叫用的 Git 命令 (例如 git push) 現在也會自動針對您的 GitHub 帳戶進行驗證。

您可以使用 git.githubAuthentication 設定停用 GitHub 驗證。您也可以使用 git.terminalAuthentication 設定停用終端機驗證整合。

隱藏 Git 提交輸入方塊

新的設定 git.showCommitInput 可讓您隱藏 Git 存放庫的提交輸入方塊。

內嵌差異現在可編輯

當您預覽檔案中的變更時,現在可以在快速差異編輯器內進行編輯。

Editable inline diff

預覽功能

預覽功能尚未準備好發行,但功能已足夠使用。我們歡迎您在使用開發中的功能時提供早期意見反應。

設定同步

我們在過去幾個月一直致力於支援跨機器同步 VS Code 喜好設定,此功能可在 Insiders 版本上預覽。

您現在可以使用您的 GitHub 帳戶登入,以同步 VS Code 喜好設定。

Settings Sync Sign in with GitHub

佈景主題:具有自訂的 GitHub Sharp

現在也支援同步全域程式碼片段。

新的 JavaScript 偵錯工具

本月,我們繼續在新 JavaScript 偵錯工具上取得進展。預設會安裝在 Insiders 上,並且可以從 VS Code 穩定版的 Marketplace 安裝。您可以透過啟用 debug.javascript.usePreview 設定,開始將其與現有的啟動組態搭配使用。

以下是本月新增的一些新功能

效能分析支援

您可以從 Node.js 或瀏覽器應用程式擷取 CPU 效能分析,方法是按一下 [呼叫堆疊] 檢視中的 [效能分析] 按鈕,或使用 [偵錯:擷取效能分析] 命令。完成後,您可以選擇效能分析執行的時間長度:直到您停止為止、一段時間長度,或直到您遇到另一個中斷點為止。

效能分析結束後,會儲存在您的工作區資料夾中,並在 VS Code 中開啟。如果您執行的是我們的穩定組建,您會想要安裝我們的 視覺化工具擴充功能 來檢視它。在 Insiders 上,擴充功能已內建。當您開啟效能分析時,程式碼鏡頭會新增至您的檔案,其中包含函式層級和特定「熱門」行的效能資訊。與在許多其他工具中擷取的效能分析不同,記錄的效能分析具有來源對應感知能力。

Animation showing the process of taking a profile

佈景主題:Earthsong,字型:Fira Code

自動附加整合

debug.javascript.usePreview 開啟時,VS Code 的 自動附加 將使用 js-debug 提供的新方法,讓所有終端機的運作方式與偵錯終端機類似。

相較於現有偵錯工具的自動附加改進

  • 偵錯工具會立即附加,讓您可以在程式早期擊中中斷點。
  • 子程序會自動偵錯。
  • 自動附加期間沒有程序輪詢額外負荷。

從 [變數] 檢視複製複雜值

先前,嘗試從 VS Code 變數 檢視複製複雜值 (例如物件) 通常會導致資料遭到截斷或不完整。VS Code 和 js-debug 中的變更讓我們能夠複製完整值。

Animation showing copying and pasting a very large array

產品圖示佈景主題

Visual Studio Code 包含一組內建圖示,這些圖示用於檢視和編輯器中,但也可以用於懸停、狀態列和擴充功能。這些圖示是產品圖示,而不是檔案圖示,檔案圖示會顯示在整個 UI 中的檔案名稱旁邊。

VS Code 隨附的產品圖示包含在 Codicon 圖示字型 中,並用於 預設 產品圖示佈景主題。擴充功能現在可以提供新的產品圖示佈景主題,以重新定義這些圖示並為 VS Code 提供新的外觀。

Custom product icon themes

如需詳細資料,請參閱 產品圖示佈景主題 文件,並參閱 產品圖示佈景主題範例

跨所有開啟專案的 TypeScript/JavaScript 符號搜尋

當使用 TypeScript 3.9+ 時,VS Code 的 工作區符號搜尋 現在預設包含來自所有開啟 JavaScript 和 TypeScript 專案的結果。我們先前僅搜尋目前作用中檔案的專案。

這由新的 "typescript.workspaceSymbols.scope" 設定控制。若要還原為舊行為,請設定:"typescript.workspaceSymbols.scope": "currentProject"

終端機中的連結已進行全面翻修,更換了後端系統,以採用更健全的實作,進而啟用

  • 使用編輯器的連結偵測功能,以獲得更佳的 Web 和 file:// 連結偵測。
  • 資料夾連結支援,在檔案總管中開啟資料夾或開啟新的 VS Code 視窗。
  • 不同連結類型的不同連結動作,回退至搜尋工作區的「字組」連結 (根據 terminal.integrated.wordSeparators 設定)。
  • 與編輯器類似的連結醒目提示和懸停體驗。

Terminal with various links

佈景主題:黃玉 (昏暗)

已知問題清單位於 此查詢 中。

動態檢視圖示和標題

在這個里程碑中,我們繼續致力於使版面配置更具彈性。在工作台中移動檢視可讓您在活動列中建立新圖示,或在面板中建立新索引標籤。為了更容易了解這些新建立的檢視容器中包含的內容,我們已更新邏輯以使其更容易理解。

現在,當您有自訂容器時,我們將從第一個可見檢視繼承標題和圖示。這可讓您透過重新排列檢視來變更它。對於內建或來自擴充功能的容器,我們將盡可能長時間地嘗試保留此圖示。在下方,當新的檢視放置在檢視容器的頂端時,其圖示和標題會更新。

Dynamic icons and titles

最後,您現在可以將自訂容器與所有包含的檢視一起移動。下方的簡短影片顯示將 [終端機] 和 [輸出] 檢視組合拖曳到活動列中。

Moving whole View Containers

擴充功能貢獻

遠端開發

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

1.45 中的功能重點包括

  • 開發容器:提供容器組態建議。
  • 開發容器:WSL 2 Docker 和 Podman 引擎支援。
  • 開發容器:適用於本機和容器資料夾的新 devcontainer.json 變數。

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

GitHub Pull Requests 和 Issues

先前名為「GitHub Pull Requests」,GitHub Pull Requests 和 Issues 擴充功能讓您可以在 VS Code 內管理和檢閱提取要求,時間已超過 一年。現在,擴充功能已擴充,以包含 GitHub Issues 的支援。

Issue 支援包括

  • #-參考的 Issue 和 @-提及使用者的懸停。
  • Issue 和使用者的內嵌完成建議。
  • 您可以使用自訂查詢的 Issues 檢視。
  • 開始處理 Issue 的動作,此動作會建立分支並填入提交訊息。

還有新的存放庫支援

下方的簡短影片說明發佈至 GitHub 上的新私人存放庫,並提供在檔案成功上傳後瀏覽 GitHub 上存放庫的選項。

Publish repository

如需詳細資訊,您可以閱讀最近的 GitHub Issues 整合 部落格文章和 使用 GitHub 文件。

GitHub Issue Notebook

VS Code 團隊正在開發 Notebooks 的原生支援。目前使用中最熱門的 Notebooks 是 Jupyter Notebooks,在調查它們時,我們開始研究如何建置無偏差且支援不同樣式 Notebooks 的 Notebook 解決方案。

其中一個 Notebooks 是 GitHub Issue Notebooks 擴充功能,可讓您管理 Issue 和提取要求搜尋,並內嵌呈現結果

GitHub Issue Notebook

此擴充功能仍在開發中,僅適用於 VS Code Insiders,但透過此擴充功能,您可以親身體驗 Notebooks,並且可以向我們提供意見反應。

擴充功能撰寫

編輯器索引標籤的新佈景主題色彩

新增了新的色彩,以進一步佈景主題化工作台編輯器索引標籤

  • tab.unfocusedInactiveBackground:未聚焦群組中的非作用中索引標籤背景色彩
  • tab.hoverForeground:懸停時的索引標籤前景色彩
  • tab.unfocusedHoverForeground:懸停時未聚焦群組中的索引標籤前景色彩

編輯器標題邊框的新佈景主題色彩

現有的色彩 editorGroupHeader.tabsBorder 已變更為在編輯器索引標籤下方但在麵包屑導覽上方呈現邊框。新的色彩 editorGroupHeader.border 可讓您在編輯器群組標題下方 (例如,如果已啟用麵包屑導覽,則在麵包屑導覽下方) 呈現邊框,以還原 editorGroupHeader.tabsBorder 的先前行為。

淘汰和封存 vscode NPM 模組

在 2019 年 6 月,我們 將 vscode 模組分割@types/vscodevscode-test,以因應 event-stream 事件。如今,minimist 的安全性警示 已針對仍然依賴 vscode 的擴充功能造成安全性警示,而 vscode 依賴 mocha@5.2.0,因此依賴 minimist@0.0.8。遺憾的是,mocha@5.2.0 不再接收更新,而升級至新的 mocha 版本會中斷現有的功能。

我們發佈了新版本的 vscode,其中移除了一些不必要的相依性。我們也封存了 存放庫,並在 NPM 上淘汰了 vscode 模組。請 移轉@types/vscodevscode-test

新的完成項目種類

vscode.CompletionItemKind 有兩個新的項目,代表 Issue 和使用者。這些項目可以用於例如在新增 TODO 標籤時建議使用者名稱。

使用 URI

我們已新增 vscode.Uri.joinPath 公用程式。它是一個工廠函式,藉由將路徑區段與現有的 URI 聯結來建立新的 URI。將其視為 Node.js 的 path.join 公用程式,但適用於 URI。

對於擴充功能,VS Code 會透過 Extension.extensionUriExtensionContext.extensionUri 公開安裝擴充功能的 URI。透過聯結公用程式,您現在可以為擴充功能的資源建立 URI。

例如

const fileUri = vscode.Uri.joinPath(context.extensionUri, './file.png');
const bytes = await vscode.workspace.fs.readFile(fileUri);

debug/callstack/context 功能表內嵌群組

VS Code 現在支援對 debug/callstack/context 功能表 inline 群組的貢獻。貢獻給此群組的命令會在使用者將游標停留在 [呼叫堆疊] 中的 [偵錯工作階段] 元素上方時,內嵌呈現。

Call Stack inline contribution

新的偵錯佈景主題色彩

有新的色彩可用於設定 [偵錯] 檢視的樣式

  • debugView.exceptionLabelForeground:當偵錯工具在例外狀況中斷時,[呼叫堆疊] 檢視中顯示的標籤前景色彩
  • debugView.exceptionLabelBackground:當偵錯工具在例外狀況中斷時,[呼叫堆疊] 檢視中顯示的標籤背景色彩
  • debugView.stateLabelForeground:[呼叫堆疊] 檢視中顯示目前工作階段或執行緒狀態的標籤前景色彩
  • debugView.stateLabelBackground:[呼叫堆疊] 檢視中顯示目前工作階段或執行緒狀態的標籤背景色彩
  • debugView.valueChangedHighlight:用於醒目提示 [偵錯] 檢視 (例如,[變數] 檢視) 中值變更的色彩
  • debugTokenExpression.name:[偵錯] 檢視 (例如,[變數] 或 [監看式] 檢視) 中顯示的符記名稱前景色彩
  • debugTokenExpression.value:[偵錯] 檢視中顯示的符記值前景色彩
  • debugTokenExpression.string:[偵錯] 檢視中字串的前景色彩
  • debugTokenExpression.boolean:[偵錯] 檢視中布林值的前景色彩
  • debugTokenExpression.number:[偵錯] 檢視中數字的前景色彩
  • debugTokenExpression.error:[偵錯] 檢視中運算式錯誤的前景色彩

原始檔控制管理

新的 preserveFocus 引數可開啟資源命令

當叫用 SourceControlResourceState.command 命令時,將會傳遞額外的 preserveFocus: boolean 引數,讓擴充功能作者能夠提供更佳的使用者體驗。

輸入文字 mimetype

原始檔控制輸入文字現在具有專用的 mimetype:text/x-scm-input

控制輸入方塊可見性

擴充功能現在可以使用 SourceControlInputBox.visible 屬性控制每個存放庫的原始檔控制輸入方塊可見性。

Git

遠端來源提供者

Git 擴充功能 API 現在允許其他擴充功能 提供遠端來源,以便參與 Git:複製 命令。

以下是 GitHub Pull Requests 和 Issues 擴充功能的範例

Clone from GitHub

認證提供者

Git 擴充功能 API 已擴充,以便擴充功能可以 提供驗證認證,以便驗證針對工作台中和整合式終端機內 HTTPS Git 存放庫叫用的 Git 命令。

SignatureInformation.activeParameter

SignatureInformation 上的新 activeParameter 屬性可讓您個別指定每個簽章的作用中參數。如果提供此屬性,則會覆寫最上層的 SignatureHelp.activeParameter 屬性。

EventEmitter 的嚴格 Null 修正

在 VS Code 1.44 和更早版本中,EventEmitter.fire 的引數是選用的

// Valid in VS Code 1.44
const emitter = new EventEmitter<number>();

emitter.event((x: number) => console.log(x));

// Calling fire with no argument was valid but resulted in the `x` above being `undefined`
emitter.fire();

這違反了 嚴格的 Null 檢查,但不會造成編譯錯誤。

在 VS Code 1.45 中,fire 現在需要引數。如果您仍然想要能夠在原始程式碼中使用不帶引數的 .fire(),請使用 new EventEmitter<void>

語言伺服器通訊協定

已開始處理規格的 3.16 版本。作為第一個步驟,「呼叫階層」支援已移出建議狀態。請注意,3.16 規格尚未最終定案,且可能會根據意見反應而變更。

建議的擴充功能 API

每個里程碑都隨附新的建議 API,擴充功能作者可以試用。與往常一樣,我們非常重視您的意見反應。以下是您試用建議 API 必須執行的動作

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

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

貢獻終端機環境

這個新的建議 API 是在上個月推出的,因此擴充功能作者可以貢獻終端機環境。本月主要是在此功能之上套用一些 UI 並進行潤飾。當終端機具有「過時」環境時,現在會有警告圖示,其中顯示說明即將變更內容的豐富懸停,並包含方便的 [重新啟動終端機] 動作。當變更處於作用中狀態時,也會有資訊圖示可用,但預設會停用此圖示。

Terminal stale environment warning

動態提供偵錯組態

我們已更新偵錯擴充功能 API,讓偵錯擴充功能作者能夠根據在工作區或專案中找到的資訊,以動態方式新增偵錯組態。這些動態偵錯組態會顯示在 [偵錯] 檢視組態下拉式清單和 [選取並開始偵錯] 快速選取中,與來自 launch.json 的靜態偵錯組態相同的 UI 位置。

在此版本中,動態偵錯組態會顯示在 [偵錯] 檢視的組態下拉式清單和 [選取並開始偵錯] 快速選取中。在未來的版本中,我們正在考慮也將它們顯示在「歡迎使用」檢視中。

新的 API 是以現有 DebugConfigurationProviderprovideDebugConfigurations 方法為基礎。在此版本之前,VS Code 呼叫 provideDebugConfigurations 以提供初始「靜態」偵錯組態,以複製到新建立的 launch.json 中。透過新的 API,現在可以透過將值 DebugConfigurationProviderTriggerKind.Dynamic 傳遞至新的選用 triggerKind 引數,經由 vscode.debug.registerDebugConfigurationProvider 註冊「動態」案例的 DebugConfigurationProvider。透過此新的註冊,每當即將在 UI 中呈現所有偵錯組態的清單時,VS Code 就會呼叫 provideDebugConfigurations 方法。

為了及時啟動使用此新 API 的擴充功能,已推出新的啟動事件 onDebugDynamicConfigurations:<debug type><debug type> 是必要項目,表示指定動態偵錯組態的偵錯工具。

您可以在 Mock Debug 中找到使用範例

二進位自訂編輯器 API

在此迭代中,我們重新設計了二進位自訂編輯器的提案 API,以為穩定化做準備。提醒您,自訂編輯器讓擴充功能能夠提供它們自己的編輯器使用者介面,以取代 VS Code 的正常文字編輯器。我們已經穩定支援文字型檔案的自訂編輯器。此提案 API 將自訂編輯器擴展到二進位檔案格式,例如圖片或十六進位傾印。

A custom editor for binary files

我們希望您能針對此 API 提供意見回饋,以便我們能在下一個迭代中盡可能完成最終定案。請查看自訂編輯器擴充功能範例,以檢閱二進位檔案自訂編輯器的範例實作。「自訂編輯器 API」文件現在也涵蓋了二進位檔案的自訂編輯器。

如果此 API 適用於您,或者您在實作自訂編輯器時遇到任何問題,請告訴我們

工程

原生迭代器

我們現在使用原生 ES6 迭代器來加速效能。您可以在issue #94540中找到更多詳細資訊。

編譯守護程序

感謝 deemon 工具,我們現在將我們的自我託管編譯任務作為背景程序執行:即使 VS Code 重新啟動,它也會保持執行。

自動化問題分類

為了持續將我們的問題分類流程轉移到 GitHub Actions,我們建立了用於自動問題分類的 Actions。這些 Actions 的運作方式為自動下載我們所有的問題,並產生機器學習模型,以便定期將問題分類到功能區域。我們所有 Actions 的完整實作都在我們的 GitHub Triage Actions 儲存庫中。

新文件

Docker Compose

有一個新的 Docker Compose 主題,說明 Microsoft Docker 擴充功能如何協助您將 Docker Compose 檔案新增至您的專案,以便輕鬆地使用多個 Docker 容器。

Java 主題

Java 主題已更新,並包含關於使用 Java 擴充功能對 Java 原始碼進行程式碼檢查 (Linting)重構 (Refactoring) 的新主題。

GitHub

隨著擴展的 GitHub 整合,有一個新的「使用 GitHub」主題,展示如何從 VS Code 內使用 GitHub。

值得注意的修正

  • 46886:無法調整偵錯側邊欄中「中斷點」區段的大小
  • 85344:當我點擊 VSCode 中的連結時,Firefox 崩潰。
  • 86425:整合式終端機寬度太窄
  • 90714:將偵錯主控台字型大小設定套用至輸入欄位
  • 90734:作為外部終端機的 Windows 終端機未在工作區目錄中啟動
  • 93973:[SSH] 側邊欄中的自動顯示功能無法運作
  • 94574:置中版面配置:顯示差異編輯器時使用完整寬度
  • 94982:Bash 偵錯無法以 1.44.0 版本啟動
  • 95108:serverReadyAction debugWithChrome 突然停止運作
  • 95319:getWordRangeAtPosition 可能會凍結擴充功能主機

感謝

最後但同樣重要的是,衷心感謝!以下人士協助讓 VS Code 變得更好

對我們問題追蹤的貢獻

vscode 的貢獻

vscode-json-languageservice 的貢獻

vscode-html-languageservice 的貢獻

language-server-protocol 的貢獻

debug-adapter-protocol 的貢獻

vscode-generator-code 的貢獻

vscode-textmate 的貢獻

vscode-vsce 的貢獻

localization 的貢獻

有超過 800 位 Cloud + AI Localization 社群成員使用 Microsoft Localization Community Platform (MLCP),其中約有 170 位活躍貢獻者參與 Visual Studio Code。我們感謝您的貢獻,無論是提供新的翻譯、投票選出翻譯,還是建議流程改進。

這是貢獻者的快照。如需專案的詳細資訊,包括貢獻者姓名清單,請造訪專案網站:https://aka.ms/vscodeloc

  • 簡體中文 (中國) Tingting Yi, Yizhi Gu, Charles Dong, Justin Liu, Joel Yang, Tony Xia, 朱知阳, meng shao, 普鲁文, paul cheung, 张锐, Yiting Zhu, Nong Zhichao, Liam Kennedy, 武 健, Zhao Liguo, 宁 倬, Bochen Wang, 一斤瓜子, 顺 谭, 云 何, Yun Liu, yungkei fan, 杨 越鹏。
  • 繁體中文 (台灣) 船長, Winnie Lin, 予 恆, TingWen Su。
  • 捷克語 David Knieradl。
  • 丹麥語 (丹麥) Javad Shafique, Lasse Stilvang。
  • 英語 (英國) Martin Littlecott, Oren Recht, Faris Ansari。
  • 芬蘭語 (芬蘭) Teemu Sirkiä。
  • 法語 (法國) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains。
  • 希伯來語 (以色列) Chayim Refael Friedman, Asaf Amitai。
  • 匈牙利語 Bucsai László。
  • 印尼語 (印尼) Gerry Surya, Laurensius Dede Suhardiman。
  • 義大利語 (義大利) Alessandro Alpi, Riccardo Cappello。
  • 日語 (日本) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu。
  • 韓語 (韓國) Kyunghee Ko, June Heo。
  • 挪威語 (挪威) Torbjørn Viem Ness。
  • 波蘭語 (波蘭) Makabeus Orban, Kacper Łakomski, Karol Szapsza。
  • 葡萄牙語 (巴西) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes。
  • 葡萄牙語 (葡萄牙) Pedro Filipe, António Pereira。
  • 俄語 (俄羅斯) Andrey Veselov, Vadim Svitkin, Минаков Антон。
  • 西班牙語 (西班牙,國際排序) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V, A. Jesus Flores A., Ricardo Estrada Rdez, Alfonso Jesus Flores。
  • 瑞典語 (瑞典) Per Ragnar Edin。
  • 坦米爾語 (印度) krishnakoumar c。
  • 土耳其語 (土耳其) Umut Can Alparslan, Mehmet Yönügül。
  • 烏克蘭語 (烏克蘭) Nikita Potapenko, igor oleynik。
  • 越南語 (越南) Hieu Nguyen Trung, LN Quang。