🚀 在 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

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

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

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

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,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 上,擴充功能已內建。當您開啟效能分析時,CodeLens 會新增至您的檔案,其中包含函式層級和某些「熱門」行的效能資訊。與在許多其他工具中擷取的效能分析不同,記錄的效能分析可感知來源對應。

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 and Issues

先前名為「GitHub Pull Requests」,GitHub Pull Requests and 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 and 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,現在可以透過 vscode.debug.registerDebugConfigurationProvider 註冊 DebugConfigurationProvider 以用於「動態」情況,方法是將值 DebugConfigurationProviderTriggerKind.Dynamic 傳遞給新的選用 triggerKind 引數。透過此新的註冊,每當所有偵錯組態的清單即將在 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 公用程式,我們現在將我們的 selfhost 編譯工作作為背景程序執行:即使 VS Code 重新啟動,它也會保持執行。

自動化 issue 分類

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

新文件

Docker Compose

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

Java 主題

Java 主題已更新,並包含關於使用 Java 擴充功能Linting重構 Java 原始碼的新主題。

GitHub

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

值得注意的修正

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

感謝

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

對我們的 issue 追蹤的貢獻

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。