2020 年 4 月 (版本 1.45)
更新 1.45.1:此更新解決了這些 問題。
下載:Windows:x64 | Mac:Intel | Linux:deb rpm tarball snap
歡迎使用 Visual Studio Code 2020 年 4 月釋出版本。此版本中包含許多我們希望您會喜歡的更新,其中一些主要亮點包括
- 輔助功能改進 - 焦點命令用於導航工作臺,狀態列輔助功能。
- 透過滑鼠滾輪切換編輯器選項卡 - 使用滑鼠滾輪快速切換編輯器中的檔案。
- 更快的語法高亮 - 程式語言著色速度提高了 3 倍。
- 自定義語義顏色 - 透過使用者設定更改語義標記顏色。
- GitHub 身份驗證支援 - GitHub 儲存庫的自動 GitHub 身份驗證。
- GitHub Issues 整合 - GitHub issue 和使用者的內聯懸停和建議。
- 遠端開發 - 容器配置建議,WSL 2 支援。
- JavaScript 偵錯程式預覽 - CPU 分析,改進的對 Node.js 程序的自動附加。
- 新的 Docker Compose 主題 - 瞭解如何使用 Docker Compose 處理多個容器。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
內部人員預覽版: 想盡快試用新功能嗎?您可以下載每晚內部人員預覽版並立即試用最新更新。有關最新的 Visual Studio Code 新聞、更新和內容,請在 Twitter 上關注我們 @code!
輔助功能
在這個里程碑中,我們收到了社群的寶貴反饋,這幫助我們確定並解決了許多 輔助功能問題。
- 我們引入了 焦點到下一部分 (F6) 和 焦點到上一部分 (⇧F6 (Windows, Linux Shift+F6)) 命令,使在工作臺之間導航變得容易。
- 狀態列現在可訪問,當焦點集中在狀態列時,螢幕閱讀器可以讀取其內容。
- 在工作臺中的每個列表和樹形小部件(例如“開啟的編輯器”、“麵包屑”、“問題”檢視等)中引入了適當的 ARIA 標籤。
我們團隊的首要任務之一是使 Visual Studio Code 成為一個更具輔助功能的產品,並改善每個使用者的使用體驗,因此我們為 VS Code 輔助功能建立了一個 新的 Gitter 頻道。我們鼓勵使用者加入並提供反饋、提出問題並分享輔助功能實踐。
工作臺
透過滑鼠滾輪切換選項卡
當您使用滑鼠滾輪滾動編輯器選項卡時,目前您無法切換選項卡,只能顯示檢視外的選項卡。現在,透過新的設定 workbench.editor.scrollToSwitchTabs,您可以更改行為以切換活動編輯器選項卡。
下面,當游標焦點在編輯器選項卡區域時,如果使用者滾動滑鼠滾輪,則活動編輯器會更改。

注意: 您也可以在滾動時按住 Shift 鍵以獲得相反的行為(例如,即使 scrollToSwitchTabs 設定關閉,您也可以切換編輯器選項卡)。
自定義視窗標題分隔符
新的設定 window.titleSeparator 允許您更改用於視窗標題中的分隔符字元。預設情況下,使用短劃線 '-'。

預設主題的側邊欄部分標題更新
我們更新了預設深色和淺色主題的側邊欄部分標題樣式。我們現在使用透明背景併為每個標題顯示邊框。
下面 OPEN EDITORS 部分標題沒有背景顏色,而 VSCODE 和 OUTLINE 標題有上邊框。

編輯器
更快的語法高亮
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 設定允許使用者覆蓋預設主題規則並自定義主題。

上面的設定更改了 Default Dark+ 主題。它為引數賦予了新樣式(斜體和新顏色)並下劃線了預設庫中的所有符號(例如 Promise、Map 及其屬性)。
以下示例為所有主題添加了語義樣式
"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+ 主題現在以與可寫變數不同的色調為常量著色。
下面請注意 htmlMode 和 range 常量與 result 變數的顏色不同。
Default Dark+ 主題

Default Light+ 主題

停用持久撤消
上個里程碑,我們更改了撤消/重做堆疊,使其在您關閉並重新開啟檔案時保持不變。並非所有人都希望使用此新功能,因此現在有一個設定 files.restoreUndoStack 可以停用持久撤消。
整合終端
刪除幾個與提示相關的命令
以下命令已被刪除
workbench.action.terminal.deleteWordLeftworkbench.action.terminal.deleteWordRightworkbench.action.terminal.deleteToLineStartworkbench.action.terminal.moveToLineStartworkbench.action.terminal.moveToLineEnd
這些命令透過向終端傳送特定的字元序列來工作,這是基於終端使用的命令鍵繫結進行最佳猜測的。這些命令的問題在於它們是一個封閉的盒子,您需要逐字搜尋 vscode 程式碼庫才能弄清楚它們是如何工作的。它們已被替換為 workbench.action.terminal.sendSequence 命令的自定義鍵繫結,它以通用的方式執行相同的操作。
這些是高階鍵盤快捷鍵,無法透過“鍵盤快捷鍵”UI 完整檢視,因為它們包含引數,但您可以透過執行 Preferences: Open Default Keyboard Shortcuts (JSON) 命令檢視它們的 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.integrated.wordSeparators 設定允許您自定義在終端中雙擊時用於分隔單詞的分隔符字元。
預設分隔符是
"terminal.integrated.wordSeparators": " ()[]{}',\"`─"
除錯
自動除錯配置
在 VS Code 中設定除錯可能是一項艱鉅的任務,因為使用者必須建立新的除錯配置(或至少根據需要修改模板)。為了繼續簡化除錯體驗,我們添加了一個新功能,它為除錯擴充套件作者提供了一種分析當前專案並自動提供高質量除錯配置的方法,而無需額外的使用者配置。
與提供構建任務類似,自動除錯配置在“除錯”檢視的配置下拉選單和 Select and Start Debugging 快速選擇中按適當的偵錯程式(資料夾圖示)分組。選擇偵錯程式後,VS Code 會顯示所有可用的自動配置。選擇配置將開始新的除錯會話。
以下螢幕截圖顯示了新 JavaScript 偵錯程式(預覽版)和我們的教育性 Mock Debug 的功能

可以透過在 快速開啟 (⌘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 專案的命令

提示使用者切換到工作區版本的 TypeScript
新的 typescript.enablePromptUseWorkspaceTsdk 設定會彈出一個提示,詢問使用者是否要切換到工作區版本的 TypeScript

要啟用提示,請將 "typescript.enablePromptUseWorkspaceTsdk": true 和 typescript.tsdk 作為工作區設定包含在您的專案中。
Markdown 連結到資料夾
Markdown 檔案中的編輯器連結和 Markdown 預覽中的連結現在可以指向資料夾。單擊這些連結之一將在 VS Code 的檔案資源管理器中顯示目標資料夾。
原始碼管理
GitHub 儲存庫的 GitHub 身份驗證
VS Code 現在對 GitHub 儲存庫具有自動 GitHub 身份驗證。您現在可以克隆、拉取、推送公共和私有儲存庫,而無需在系統中配置任何憑據管理器。即使在整合終端中呼叫的 Git 命令(例如 git push),現在也會自動針對您的 GitHub 帳戶進行身份驗證。
您可以使用 git.githubAuthentication 設定停用 GitHub 身份驗證。您還可以使用 git.terminalAuthentication 設定停用終端身份驗證整合。
隱藏 Git 提交輸入框
新設定 git.showCommitInput 允許您隱藏 Git 儲存庫的提交輸入框。
內聯差異現在可編輯
您現在可以在快速差異編輯器中編輯,同時預覽檔案中的更改。

預覽功能
預覽功能尚未準備好釋出,但已足夠實用。我們歡迎您在這些功能開發期間提供早期反饋。
設定同步
我們過去幾個月一直在努力支援跨機器同步 VS Code 首選項,此功能可在 Insiders 版本中預覽。
您現在可以使用 GitHub 帳戶登入以同步 VS Code 首選項。

主題: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 會新增到您的檔案中,其中包含函式級別和某些“熱”行的效能資訊。與在許多其他工具中捕獲的配置檔案不同,記錄的配置檔案是源對映感知的。

主題:Earthsong,字型:Fira Code
自動附加整合
當 debug.javascript.usePreview 開啟時,VS Code 的 自動附加 將使用 js-debug 提供的新方法,該方法允許所有終端像除錯終端一樣工作。
自動附加優於現有偵錯程式的改進
- 偵錯程式會立即附加,允許您在程式早期命中斷點。
- 子程序會自動除錯。
- 自動附加期間沒有程序輪詢開銷。
從變數檢視複製複雜值
以前,嘗試從 VS Code 變數 檢視複製複雜值(例如物件)通常會導致資料被截斷或不完整。VS Code 和 js-debug 中的更改允許我們複製完整值。

產品圖示主題
Visual Studio Code 包含一組內建圖示,用於檢視和編輯器,但也可用於懸停、狀態列和擴充套件。這些圖示是 產品圖示,而不是 檔案圖示,後者顯示在 UI 中檔名的旁邊。
VS Code 隨附的產品圖示包含在 Codicon 圖示字型 中,用於 預設 產品圖示主題。擴充套件現在可以提供新的產品圖示主題來重新定義這些圖示併為 VS Code 提供新外觀。
![]()
產品圖示主題 文件包含更多詳細資訊,並且有一個 產品圖示主題示例。
跨所有開啟專案的 TypeScript/JavaScript 符號搜尋
使用 TypeScript 3.9+ 時,VS Code 的 工作區符號搜尋 現在預設包含來自所有開啟的 JavaScript 和 TypeScript 專案的結果。我們以前只搜尋當前活動檔案所在的專案。
這由新的 "typescript.workspaceSymbols.scope" 設定控制。要恢復舊行為,請設定:"typescript.workspaceSymbols.scope": "currentProject"。
終端中連結的改進
終端中的連結經過大修,將後端系統更改為更強大的實現,從而實現
- 使用編輯器的連結檢測來更好地檢測 web 和
file://連結。 - 資料夾連結支援,要麼在資源管理器中開啟資料夾,要麼開啟新的 VS Code 視窗。
- 不同連結型別的不同連結操作,回退到搜尋工作區的“單詞”連結(基於
terminal.integrated.wordSeparators設定)。 - 與編輯器類似的連結高亮顯示和懸停體驗。

主題:Topaz (Dim)
在此查詢 中提供了已知問題列表。
動態檢視圖示和標題
在這個里程碑中,我們繼續致力於使佈局更加靈活。在工作臺中移動檢視允許您在活動欄中建立新圖示或在面板中建立新選項卡。為了更容易理解這些新建立的檢視容器中包含的內容,我們更新了邏輯,使其更容易理解。
現在,當您擁有自定義容器時,我們將繼承第一個可見檢視的標題和圖示。這將允許您透過重新排列檢視來更改它。對於內建或來自擴充套件的容器,我們將嘗試儘可能長時間地保留此圖示。下面,當一個新檢視放置在檢視容器的頂部時,它的圖示和標題會更新。

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

對擴充套件的貢獻
遠端開發
遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 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 上的新私有儲存庫,並可以選擇在檔案成功上傳後在 GitHub 上瀏覽儲存庫。

有關更多資訊,您可以閱讀最近的 GitHub Issues Integration 部落格文章和 使用 GitHub 文件。
GitHub Issue Notebook
VS Code 團隊正在努力實現對 Notebooks 的原生支援。目前最流行的 Notebooks 是 Jupyter Notebooks,在研究它們時,我們開始研究構建一種公正且支援不同樣式 Notebooks 的 Notebook 解決方案的方法。
其中一個 Notebooks 是 GitHub Issue Notebooks 擴充套件,它允許您管理問題和拉取請求搜尋並內聯呈現結果

此擴充套件仍在開發中,並且僅適用於 VS Code Insiders,但您可以透過它親身體驗 Notebooks 並向我們提供反饋。
擴充套件創作
編輯器選項卡的新主題顏色
添加了新顏色以進一步為工作臺編輯器選項卡設定主題
tab.unfocusedInactiveBackground:未聚焦組中非活動選項卡的背景顏色tab.hoverForeground:懸停時的選項卡前景顏色tab.unfocusedHoverForeground:未聚焦組中懸停時的選項卡前景顏色
編輯器標題邊框的新主題顏色
現有顏色 editorGroupHeader.tabsBorder 已更改為在編輯器選項卡下方但在麵包屑上方渲染邊框。新顏色 editorGroupHeader.border 允許您在編輯器組標題下方渲染邊框(例如,如果在啟用麵包屑的情況下在麵包屑下方)以恢復 editorGroupHeader.tabsBorder 的先前行為。
vscode NPM 模組的棄用和歸檔
2019 年 6 月,鑑於 event-stream 事件,我們 將 vscode 模組拆分為 @types/vscode 和 vscode-test。今天,minimist 的安全警報 導致仍然依賴 vscode 的擴展出現安全警報,該擴充套件依賴 mocha@5.2.0,因此依賴 minimist@0.0.8。不幸的是,mocha@5.2.0 不再接收更新,升級到新的 mocha 版本會破壞現有功能。
我們釋出了一個新版本的 vscode,它刪除了一些不必要的依賴項。我們還歸檔了 儲存庫 並棄用了 NPM 上的 vscode 模組。請 遷移 到 @types/vscode 和 vscode-test。
新的完成項型別
vscode.CompletionItemKind 中有兩個新條目代表問題和使用者。例如,這些可用於在新增 TODO 標籤時建議使用者名稱。
使用 URI
我們添加了一個 vscode.Uri.joinPath 實用程式。它是一個工廠函式,透過將路徑段與現有 URI 連線來建立新 URI。將其視為 Node.js 的 path.join 實用程式,但適用於 URI。
對於擴充套件,VS Code 透過 Extension.extensionUri 和 ExtensionContext.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 組的貢獻。貢獻給此組的命令將在使用者懸停在“除錯會話”元素上時在“呼叫堆疊”中內聯渲染。

新的除錯主題顏色
有用於設定“除錯”檢視樣式的新顏色
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 擴充套件的一個示例

憑據提供程式
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 操作。當更改處於活動狀態時,還有一個資訊圖示可用,但預設情況下停用此圖示。

動態提供除錯配置
我們更新了除錯擴充套件 API,為除錯擴充套件作者提供了一種根據工作區或專案中找到的資訊動態新增除錯配置的方法。這些除錯配置出現在與 launch.json 中的靜態除錯配置相同的 UI 位置。
在此版本中,動態除錯配置顯示在“除錯”檢視的配置下拉選單和 Select and Start Debugging 快速選擇中。在未來的版本中,我們正在考慮在“歡迎”檢視中也顯示它們。
新 API 基於現有 DebugConfigurationProvider 的 provideDebugConfigurations 方法。在此版本之前,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 將自定義編輯器擴充套件到二進位制檔案格式,例如影像或十六進位制轉儲。

我們需要您對該 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 變得更好的各位:
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- ArturoDent (@ArturoDent)
- Alexander (@usernamehw)
- Marco Zehe (@MarcoZehe)
- joanmarie (@joanmarie)
- José Vilmar Estácio de Souza (@jvesouza)
- Michał Zegan (@webczat)
對 vscode 的貢獻
- Andrew Casey (@amcasey)
- Anthony Van de Gejuchte (@avdg): Do not let git use a pager PR #95549
- Richard Willis (@badsyntax): Update vscode.d.ts - Fix code comment block for Pseudoterminal.onDidClose PR #96206
- @bkis: Fix typo in git extension's config description PR #94993
- @bolinfest: Ensure @rematch and nextEmbedded can be used together in Monarch grammar PR #95742
- Borja Zarco (@bzarco): Use
argumentin addition tofolderUriwhen conditionally resolving some variables. PR #95483 - Christos Pappas (@ChrisPapp)
- Connor Skees (@connorskees)
- Edgar Cumbreras (@cumbreras): Feat: #94285 Options on saving before running tasks PR #94466
- Duncan Walter (@DuncanWalter): TS: Add setting to prompt users about workspace tsdk PR #95566
- Dusty Pomerleau (@dustypomerleau): change all instances of
wordHighlighertowordHighlighterPR #95830 - Evan Krause (@evangrayk): Throttle status bar spinner animations to save CPU PR #96096
- Jonathan Fleckenstein (@fleck): remove duplicate git.pullFrom command PR #95780
- Phil Marshall (@flurmbo): Add git.showCommitInput config option (#_79074) PR #81982
- Gaurav Makhecha (@gauravmak): Spell fix PR #94687
- @Git-Lior: bugfix - typescript code completion doesn't recognize property modifiers when more than one exists PR #94165
- John Murray (@gjsjohnmurray): fix #95510 'Reveal in Side Bar' confused by case-sensitive FileSystem… PR #95555
- Gustavo Cassel (@GustavoASC): Developed setting to loop search from the beginning or end of document in Find Widget PR #92243
- Ilia Pozdnyakov (@iliazeus)
- Andrii Dieiev (@IllusionMH)
- Jean Pierre (@jeanp413)
- Fixes clicking on problems filter inputbox makes problems panel callapse PR #96203
- Fix command
scm.mainPane.focusdoes not focus Source Control Providers view PR #96515 - Fixes apply debug console font size setting to input field PR #91261
- Fixes missing git folder actions under Untracked Changes group in scm viewlet PR #91872
- Update markersViewModel on MarkersView construction PR #95653
- Improve debug viewlet dropdown outline PR #95935
- Fixes rename preview "Group Changes By File" view doesn't show the reference type icon info PR #94968
- Fixes "Run and "Debug" is always greyed out when the editor first opens PR #94853
- jedwards (@jheiv): Focus terminal after 'Terminal:Clear' command palette action PR #92100
- Jon Bockhorst (@jmbockhorst)
- John Blackbourn (@johnbillion): Treat
.gitignore_globalas an Ignore file by default. PR #96080 - Kodai Nakamura (@kdnk): Add action to focus query editor widget PR #94799
- Lenny Anders (@lennyanders): Add transition to backdrop-filter when dragging elements PR #95217
- Lukas Spieß (@lumaxis): Update keytar to latest public version PR #95351
- Yaşar Yıldız (@MonoLizard): Fix #90734 Add starting directory parameter for the new Windows Terminal PR #90773
- Marvin Heilemann (@muuvmuuv): Feature: add window title separator prop PR #94371
- @NickDebug: added missing word PR #95043
- Richard Townsend (@richard-townsend-arm): Add gulp targets, fix build for Windows on Arm. PR #85326
- Robert Rossmann (@robertrossmann)
- Dmitry Sharshakov (@sh7dm): Display future events in timeline correctly PR #94459
- Tobias (@Shegox): Update link for automated issue management actions repository PR #96568
- Josh Smith (@smithjosh115): Issue #93589: Rename 'renameShorthandProperties' setting to 'useAliasesForRenames' PR #94480
- Thomas Weingartner (@Thoemmeli): Fix to 'Markdown Preview of relative links drops 'host' from path' PR #95092
- Tyler James Leonhardt (@TylerLeonhardt): Add PowerShell herestring autoclosing pairs PR #95245
- Alexander (@usernamehw): Reveal file in OS should work for special files like settings.json wi… PR #95193
- Christopher Makarem (@x24git): Prevent CodeLens CSS selector name from being invalid PR #95005
- @xisui-MSFT: Add configurations field to launch.json, workspace.json or .code-workspace when it does not exist PR #95488
對 vscode-json-languageservice 的貢獻
- Alex Kreidler (@alexkreidler): Add basic coverage information PR #54
- Anantha Kumaran (@ananthakumaran): add support for textDocument/definition PR #50
對 vscode-html-languageservice 的貢獻
- Liam Newman (@bitwiseman): Update js-beautify to 1.11.0 PR #82
對 language-server-protocol 的貢獻
- Sam McCall (@sam-mccall): make didSave server capability name consistent PR #958
- Sora Morimoto (@imbsky): Fix link to lsif-util PR #971
對 debug-adapter-protocol 的貢獻
- Nick Battle (@nickbattle): Added VDMJ-LSP to the list of adapters PR #109
對 vscode-generator-code 的貢獻
- Neeraj Kashyap (@nkashy1): Updated the commented myExtension import PR #199
對 vscode-textmate 的貢獻
- Yan Pashkovsky (@Yanpas): Add grammar performance warning PR #128
對 vscode-vsce 的貢獻
- Ilia Pozdnyakov (@iliazeus): print output of failed prepublish scripts PR #442
對 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.