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

2020 年 4 月 (版本 1.45)

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

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


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

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。

內部人員預覽版: 想盡快試用新功能嗎?您可以下載每晚內部人員預覽版並立即試用最新更新。有關最新的 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

預設主題的側邊欄部分標題更新

我們更新了預設深色和淺色主題的側邊欄部分標題樣式。我們現在使用透明背景併為每個標題顯示邊框。

下面 OPEN EDITORS 部分標題沒有背景顏色,而 VSCODEOUTLINE 標題有上邊框。

Side Bar section headers

編輯器

更快的語法高亮

VS Code 中的語法高亮透過 解釋 Text Mate 語法 執行。這些語法是使用正則表示式編寫的,可以使用 oniguruma 正則表示式庫 進行評估。到目前為止,我們一直在使用兩個不同的庫來評估此類正則表示式,一個用於 VS Code 桌面(原生 node 模組),另一個用於瀏覽器中的 VS Code(Web Assembly 二進位制檔案)。

我們現在編寫了一個專用的 Web Assembly 繫結,針對我們的 TextMate 直譯器使用進行了最佳化。透過避免內部迴圈中的記憶體分配並採用 oniguruma 幾個月前新增的新 API,我們建立了一個比以前兩種方法都更快且為常規程式設計檔案高亮提供高達 3 倍效能變體的版本。您可以檢視 拉取請求 #95958 以獲取更多詳細資訊和測量結果。

語義標記樣式

您現在可以在使用者設定中自定義語義主題規則。TypeScript 和 JavaScript 支援語義著色,Java 和 C++ 的支援正在開發中。預設情況下,內建主題會啟用它,並且主題擴充套件正在採用它。

editor.semanticTokenColorCustomizations 設定允許使用者覆蓋預設主題規則並自定義主題。

Semantic token color customization

上面的設定更改了 Default Dark+ 主題。它為引數賦予了新樣式(斜體和新顏色)並下劃線了預設庫中的所有符號(例如 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 }
    }
}

有關語義標記主題的更多詳細資訊,請參閱 語義高亮指南

Default Dark+ 主題中常量的新顏色

Default Dark+ 和 Default Light+ 主題現在以與可寫變數不同的色調為常量著色。

下面請注意 htmlModerange 常量與 result 變數的顏色不同。

Default Dark+ 主題

Constant color in the Dark+ theme

Default Light+ 主題

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 完整檢視,因為它們包含引數,但您可以透過執行 Preferences: Open Default Keyboard Shortcuts (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

主題:Sapphire (Dim)

控制雙擊單詞選擇

新的 terminal.integrated.wordSeparators 設定允許您自定義在終端中雙擊時用於分隔單詞的分隔符字元。

預設分隔符是

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

除錯

自動除錯配置

在 VS Code 中設定除錯可能是一項艱鉅的任務,因為使用者必須建立新的除錯配置(或至少根據需要修改模板)。為了繼續簡化除錯體驗,我們添加了一個新功能,它為除錯擴充套件作者提供了一種分析當前專案並自動提供高質量除錯配置的方法,而無需額外的使用者配置。

與提供構建任務類似,自動除錯配置在“除錯”檢視的配置下拉選單和 Select and Start Debugging 快速選擇中按適當的偵錯程式(資料夾圖示)分組。選擇偵錯程式後,VS Code 會顯示所有可用的自動配置。選擇配置將開始新的除錯會話。

以下螢幕截圖顯示了新 JavaScript 偵錯程式(預覽版)和我們的教育性 Mock Debug 的功能

Automatic debug configurations

可以透過在 快速開啟 (⌘P (Windows, Linux Ctrl+P)) 中鍵入 'debug '(帶空格)或觸發 Debug: Select and Start Debugging 命令來開啟除錯快速選擇。

在下一個里程碑中,我們將新增 UI,以便可以輕鬆地將自動除錯配置新增到 launch.json 以進行進一步配置。

任務

停用更快的快速選擇

在版本 1.44 中,我們透過更改佈局並使其更快來改進了執行 Tasks: Run Task 命令時顯示的任務選擇器。但是,更快的快速選擇確實使任務選擇器根據您要執行的任務而深入兩級。如果您想要以前的 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 with Customizations

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

新的 JavaScript 偵錯程式

本月我們繼續在新的 JavaScript 偵錯程式上取得進展。它預設安裝在 Insiders 中,並且可以 從 Marketplace 安裝 在 VS Code stable 中。您可以透過啟用 debug.javascript.usePreview 設定來將其與現有啟動配置一起使用。

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

分析支援

您可以透過單擊“呼叫堆疊”檢視中的新 Profile 按鈕,或使用 Debug: Take Performance Profile 命令,從 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

主題:Topaz (Dim)

在此查詢 中提供了已知問題列表。

動態檢視圖示和標題

在這個里程碑中,我們繼續致力於使佈局更加靈活。在工作臺中移動檢視允許您在活動欄中建立新圖示或在面板中建立新選項卡。為了更容易理解這些新建立的檢視容器中包含的內容,我們更新了邏輯,使其更容易理解。

現在,當您擁有自定義容器時,我們將繼承第一個可見檢視的標題和圖示。這將允許您透過重新排列檢視來更改它。對於內建或來自擴充套件的容器,我們將嘗試儘可能長時間地保留此圖示。下面,當一個新檢視放置在檢視容器的頂部時,它的圖示和標題會更新。

Dynamic icons and titles

最後,您現在可以將自定義容器與所有包含的檢視一起移動。下面的短影片顯示了將終端和輸出檢視組合拖到活動欄中。

Moving whole View Containers

對擴充套件的貢獻

遠端開發

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

1.45 中的功能亮點包括

  • Dev Containers:提供容器配置建議。
  • Dev Containers:WSL 2 Docker 和 Podman 引擎支援。
  • Dev Containers:用於本地和容器資料夾的新 devcontainer.json 變數。

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

GitHub 拉取請求和議題

以前名為“GitHub Pull Requests”的 GitHub Pull Requests and Issues 擴充套件已允許您在 VS Code 中管理和審查拉取請求 一年多了。現在,該擴充套件已擴充套件到包括對 GitHub Issues 的支援。

問題支援包括

  • #-引用的問題和 @-提及的使用者懸停。
  • 問題和使用者的內聯完成建議。
  • 一個 Issues 檢視,您可以在其中使用自定義查詢。
  • 開始處理問題的操作,該操作會建立一個分支並填充提交訊息。

還有新的儲存庫支援

下面的短影片演示了釋出到 GitHub 上的新私有儲存庫,並可以選擇在檔案成功上傳後在 GitHub 上瀏覽儲存庫。

Publish repository

有關更多資訊,您可以閱讀最近的 GitHub Issues Integration 部落格文章和 使用 GitHub 文件。

GitHub Issue Notebook

VS Code 團隊正在努力實現對 Notebooks 的原生支援。目前最流行的 Notebooks 是 Jupyter Notebooks,在研究它們時,我們開始研究構建一種公正且支援不同樣式 Notebooks 的 Notebook 解決方案的方法。

其中一個 Notebooks 是 GitHub Issue Notebooks 擴充套件,它允許您管理問題和拉取請求搜尋並內聯呈現結果

GitHub Issue Notebook

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

擴充套件創作

編輯器選項卡的新主題顏色

添加了新顏色以進一步為工作臺編輯器選項卡設定主題

  • tab.unfocusedInactiveBackground:未聚焦組中非活動選項卡的背景顏色
  • tab.hoverForeground:懸停時的選項卡前景顏色
  • tab.unfocusedHoverForeground:未聚焦組中懸停時的選項卡前景顏色

編輯器標題邊框的新主題顏色

現有顏色 editorGroupHeader.tabsBorder 已更改為在編輯器選項卡下方但在麵包屑上方渲染邊框。新顏色 editorGroupHeader.border 允許您在編輯器組標題下方渲染邊框(例如,如果在啟用麵包屑的情況下在麵包屑下方)以恢復 editorGroupHeader.tabsBorder 的先前行為。

vscode NPM 模組的棄用和歸檔

2019 年 6 月,鑑於 event-stream 事件,我們 將 vscode 模組拆分為 @types/vscodevscode-test。今天,minimist 的安全警報 導致仍然依賴 vscode 的擴展出現安全警報,該擴充套件依賴 mocha@5.2.0,因此依賴 minimist@0.0.8。不幸的是,mocha@5.2.0 不再接收更新,升級到新的 mocha 版本會破壞現有功能。

我們釋出了一個新版本的 vscode,它刪除了一些不必要的依賴項。我們還歸檔了 儲存庫 並棄用了 NPM 上的 vscode 模組。請 遷移@types/vscodevscode-test

新的完成項型別

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

使用 URI

我們添加了一個 vscode.Uri.joinPath 實用程式。它是一個工廠函式,透過將路徑段與現有 URI 連線來建立新 URI。將其視為 Node.js 的 path.join 實用程式,但適用於 URI。

對於擴充套件,VS Code 透過 Extension.extensionUriExtensionContext.extensionUri 公開安裝擴充套件的 URI。使用 join 實用程式,您現在可以為擴充套件的資源建立 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: Clone 命令。

這是 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 並對其進行完善。當終端具有“過時”環境時,現在有一個警告圖示,它顯示一個豐富的懸停,解釋將要更改的內容,幷包含一個方便的 Relaunch terminal 操作。當更改處於活動狀態時,還有一個資訊圖示可用,但預設情況下停用此圖示。

Terminal stale environment warning

動態提供除錯配置

我們更新了除錯擴充套件 API,為除錯擴充套件作者提供了一種根據工作區或專案中找到的資訊動態新增除錯配置的方法。這些除錯配置出現在與 launch.json 中的靜態除錯配置相同的 UI 位置。

在此版本中,動態除錯配置顯示在“除錯”檢視的配置下拉選單和 Select and Start Debugging 快速選擇中。在未來的版本中,我們正在考慮在“歡迎”檢視中也顯示它們。

新 API 基於現有 DebugConfigurationProviderprovideDebugConfigurations 方法。在此版本之前,VS Code 會呼叫 provideDebugConfigurations 來提供初始“靜態”除錯配置,以便複製到新建立的 launch.json 中。使用新 API,現在可以透過將值 DebugConfigurationProviderTriggerKind.Dynamic 傳遞給新的可選 triggerKind 引數來為“動態”情況透過 vscode.debug.registerDebugConfigurationProvider 註冊 DebugConfigurationProvider。透過此新註冊,VS Code 將在所有除錯配置列表即將在 UI 中顯示時呼叫 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 擴充套件 Linting重構 Java 原始碼的新主題。

GitHub

隨著 GitHub 整合的擴充套件,有一個新的 使用 GitHub 主題,展示瞭如何在 VS Code 中使用 GitHub。

值得注意的修復

  • 46886:無法調整“除錯”側邊欄中“斷點”部分的大小
  • 85344:當我單擊 VSCode 中的連結時 Firefox 崩潰。
  • 86425:整合終端寬度太窄
  • 90714:將除錯控制檯字型大小設定應用於輸入欄位
  • 90734:Windows Terminal 作為外部終端不會在工作區目錄中啟動
  • 93973:[SSH] “在側邊欄中自動顯示”不工作
  • 94574:居中佈局:顯示差異編輯器時使用全寬
  • 94982:使用版本 1.44.0 時 Bash 除錯不啟動
  • 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 名 雲 + AI 本地化 社群成員使用 Microsoft 本地化社群平臺 (MLCP),其中約 170 名活躍貢獻者為 Visual Studio Code 做出貢獻。我們感謝您的貢獻,無論是提供新的翻譯、對翻譯進行投票還是提出流程改進建議。

這是貢獻者的快照。有關專案詳細資訊,包括貢獻者姓名列表,請訪問專案網站:https://aka.ms/vscodeloc

  • Chinese (Simplified, China) 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, 楊 越鵬.
  • Chinese (Traditional, Taiwan) 船長, Winnie Lin, 予 恆, TingWen Su.
  • Czech David Knieradl.
  • Danish (Denmark) Javad Shafique, Lasse Stilvang.
  • English (United Kingdom) Martin Littlecott, Oren Recht, Faris Ansari.
  • Finnish (Finland) Teemu Sirkiä.
  • French (France) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains.
  • Hebrew (Israel) Chayim Refael Friedman, Asaf Amitai.
  • Hungarian Bucsai László.
  • Indonesian (Indonesia) Gerry Surya, Laurensius Dede Suhardiman.
  • Italian (Italy) Alessandro Alpi, Riccardo Cappello.
  • Japanese (Japan) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu.
  • Korean (Korea) Kyunghee Ko, June Heo.
  • Norwegian (Norway) Torbjørn Viem Ness.
  • Polish (Poland) Makabeus Orban, Kacper Łakomski, Karol Szapsza.
  • Portuguese (Brazil) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes.
  • Portuguese(Portugal) Pedro Filipe, António Pereira.
  • Russian (Russia) Andrey Veselov, Vadim Svitkin, Минаков Антон.
  • Spanish (Spain, International Sort) 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.
  • Swedish (Sweden) Per Ragnar Edin.
  • Tamil (India) krishnakoumar c.
  • Turkish (Türkiye) Umut Can Alparslan, Mehmet Yönügül.
  • Ukrainian (Ukraine) Nikita Potapenko, igor oleynik.
  • Vietnamese (Vietnam) Hieu Nguyen Trung, LN Quang.

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