參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

2020 年 3 月 (版本 1.44)

更新 1.44.1:此更新解決了這個安全問題

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

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


歡迎使用 Visual Studio Code 2020 年 3 月版。此版本包含多項更新,希望您會喜歡,其中一些主要亮點包括:

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

內部人員預覽版: 想盡快試用新功能嗎?您可以下載每晚內部人員預覽版並立即試用最新更新。有關最新的 Visual Studio Code 新聞、更新和內容,請在 Twitter 上關注我們 @code

輔助功能

在此里程碑中,我們收到了社群的寶貴反饋,這幫助我們識別並解決了許多輔助功能問題

  • 差異檢視現在更易於訪問。使用 F7⇧F7 (Windows、Linux Shift+F7) 在可訪問差異檢視器中導航更改,並使用暫存/取消暫存/還原所選範圍命令來暫存、取消暫存或還原當前更改。
  • 在我們的控制元件中使用了更好的角色。listbox 角色用於建議控制元件和快速選擇,list 用於靜態列表,document 用於只讀內容,例如歡迎檢視和 Markdown 預覽。
  • 調整了 Quick Pick 控制元件的行為。
  • 現在可以使用顯示當前行的 CodeLens 命令命令在 Quick Pick 中顯示當前行的 CodeLens。

時間線檢視

時間線檢視現已結束預覽並預設啟用。這是一個統一檢視,用於視覺化檔案的時間序列事件(例如,Git 提交、檔案儲存、測試執行等)。時間線檢視預設會自動更新,顯示當前活動編輯器的時間線。您可以透過切換檢視工具欄中的眼睛圖示來控制此預設行為。此外,與其他檢視類似,時間線檢視支援在您鍵入時查詢或篩選。

時間線檢視預設摺疊在檔案資源管理器的底部。選擇時間線分割線將展開時間線檢視。

Collapsed Timeline view

在此版本中,內建的 Git 擴充套件提供了一個時間線源,該源提供指定檔案的 Git 提交歷史。選擇一個提交將開啟該提交引入的更改的差異檢視。上下文選單提供複製提交 ID複製提交訊息命令。檔案資源管理器的上下文選單上還有一個新的開啟時間線命令,可快速顯示所選檔案的時間線。

這是時間線檢視的實際操作

Timeline view

主題:Dark Amethyst

擴充套件可以提供額外的時間線源(儘管 API 仍處於提議階段),這些源將顯示在統一的時間線檢視中。擴充套件還可以為時間線檢視和單個時間線項貢獻選單項。您還可以輕鬆選擇要包含在檢視中的源。

工作臺

快速開啟重寫

快速開啟 (⌘P (Windows, Linux Ctrl+P)) 控制元件使用的是我們樹形控制元件的舊版本,在此迭代中,它已遷移到使用我們最新的列表控制元件,該控制元件已在 VS Code UI 的其餘部分中使用。從功能上講,您應該無法分辨出區別,因為所有命令都將像以前一樣工作。

我們確實藉此機會添加了一些您可能會覺得有用的功能。

Quick Open

從檔案導航到符號

您現在只需鍵入 @ 即可繼續導航到檔案結果的符號。對於當前選定的檔案,所有符號將出現,並且編輯器將在後臺開啟以顯示活動符號。下面的影片還顯示,您可以透過在 @ 後跟 : 來按類別對符號進行分組。

Quick Open navigate to symbols

透過用空格分隔多個查詢來篩選結果

如果檔案搜尋結果過多,您可以在鍵入空格後新增更多搜尋模式。例如,如果您依次鍵入 <檔名> <資料夾名>,則可以透過資料夾縮小結果範圍。

Quick Open filtering

注意:這對於編輯器 (⇧⌘O (Windows, Linux Ctrl+Shift+O)) 和工作區 (⌘T (Windows, Linux Ctrl+T)) 符號選擇器也有效。空格字元後的任何文字都將用於按該符號的容器進行篩選。

切換提供程式時保留輸入

如果您保持 Quick Open 可見並切換到另一個提供程式(例如,從檔案搜尋到符號搜尋),VS Code 將應用您鍵入的任何過濾器並將其用於新提供程式。這使您可以在以前用於檔案搜尋時快速重用鍵入的輸入進行符號搜尋。

按最近使用排序編輯器歷史記錄

一個新設定 "search.quickOpen.history.filterSortOrder": "recency" 允許您按最近開啟的專案對編輯器歷史記錄進行排序,即使在開始搜尋時也是如此。預設情況下,編輯器歷史記錄結果將根據使用的過濾模式按相關性排序。

新命令以開啟編輯器到側邊

一個新命令 workbench.action.alternativeAcceptSelectedQuickOpenItem 允許您新增額外的鍵盤快捷鍵,以便從 Quick Open 開啟檔案或符號到側邊。預設情況下,Ctrl+Enter (macOS: Cmd+Enter) 將在新編輯器組中開啟檔案到側邊,而不是在當前編輯器組中。

改進的擴充套件包顯示

為了在“擴充套件”檢視中識別擴充套件包,現在有一個數字徽章顯示擴充套件包中包含的擴充套件數量。

Extension Pack number of extensions badge

主題:GitHub Sharp with Customizations

擴充套件詳情頁面現在顯示擴充套件包中捆綁的所有擴充套件。

Extension Pack details page showing bundled extensions

主題:GitHub Sharp with Customizations

調整編輯器選項卡捲軸的高度

一個新設定 workbench.editor.titleScrollbarSizing 允許您增加編輯器選項卡和麵包屑的捲軸大小。這使得滾動長列表的開啟編輯器變得更容易。

將其配置為 large 以獲得更大的捲軸

Large scrollbar

檔案資源管理器可以顯示隱藏檔案

如果檔案被隱藏(透過 files.exclude 設定),但它已開啟並在編輯器中可見,則該檔案將連同其父鏈一起顯示在檔案資源管理器中。只要檔案在編輯器區域中可見,這些檔案及其父項就會以暗淡的顏色顯示在檔案資源管理器中。

檢視:重新開啟方式

新的檢視:重新開啟方式命令允許您使用不同的自定義編輯器重新開啟當前活動檔案。

Using the Reopen With command with the custom editor example extension

您可以使用此命令在 VS Code 的標準文字編輯器和自定義編輯器之間切換,或者在資源的多個自定義編輯器之間切換。

workbench.editorAssociations 設定

同樣對於自定義編輯器,新的 workbench.editorAssociations 設定允許您配置特定資源使用哪個編輯器。

下面的示例配置所有以 .catScratch 結尾的檔案都使用我們擴充套件示例中的示例自定義文字編輯器開啟。

"workbench.editorAssociations": [
  {
    "viewType": "catCustoms.catScratch",
    "filenamePattern": "*.catScratch"
  }
]

檢視進度現在顯示在檢視上

我們已將自定義檢視的進度指示更改為現在顯示在每個檢視本身上,而不是檢視容器的頂部。這使得長時間執行的操作與其進度之間建立了更直接的連線。還有一個新的 API 選項,供擴充套件在檢視上顯示自定義進度。

在這裡您可以看到 GitLens 擴充套件檢視上的進度顯示

View progress indication

新的預設等寬字型

我們已將 VS Code UI 中使用的等寬字型更新為

.mac { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.windows { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.linux { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }

此更改不影響編輯器中的字型選擇。

編輯器

重新開啟檔案時保留撤銷堆疊

當檔案關閉時,VS Code 現在將保留檔案的撤銷/重做堆疊。當檔案重新開啟時,如果其內容自關閉以來未更改,則撤銷/重做堆疊將被恢復。

如果您使用 workbench.editor.limit.value 設定限制開啟編輯器的數量,或者您意外關閉正在處理的檔案,這將非常有用。

儲存時程式碼操作的顯式順序

您現在可以將 editor.codeActionsOnSave 設定為按順序執行的程式碼運算元組。您可以使用此功能來確保特定的程式碼操作始終在可能與其衝突的另一個程式碼操作之前或之後執行。

以下 editor.codeActionsOnSave 將始終執行組織匯入,然後在組織匯入完成後執行全部修復

"editor.codeActionsOnSave": [
    "source.organizeImports",
    "source.fixAll"
]

使用 editor.wordSeparators 進行下一個查詢匹配

新增選擇到下一個查詢匹配命令 (⌘D (Windows, Linux Ctrl+D)) 現在遵循 editor.wordSeparators 設定。以前,該命令會使用當前檔案語言定義的單詞定義。

除錯

呼叫堆疊檢視改進

CALL STACK 檢視是一個複雜的檢視,因為它顯示不同型別的物件(會話、程序、執行緒、堆疊幀和分隔符元素),併為不同型別提供不同的操作。為了更容易區分物件型別並理解它們支援的互動,我們已經開始進行一些視覺改進。

  • 除錯會話現在用圖示裝飾。
  • 可點選元素使用連結顏色。
  • 更小的分隔符和演示元素。

Call Stack

新的除錯控制檯圖示

我們為除錯控制檯引入了一個新圖示,並在除錯控制檯檢視從面板移出時在活動欄中使用它。

Debug Console icon

除錯擴充套件的進度反饋 UI

VS Code 現在支援上一個里程碑中為除錯介面卡協議 (DAP) 提議的“進度事件”。透過進度事件,除錯擴充套件可以為長時間執行的操作向用戶提供反饋。

VS Code 除錯 UI 在兩個位置顯示進度反饋

  • 作為除錯檢視頂部的進度條。
  • 作為“靜默通知”,這意味著進度在狀態列中“靜默”顯示(不中斷使用者),並且可以透過單擊開啟為通知。該通知顯示更詳細的資訊,並允許取消底層長時間執行的操作(如果該操作支援取消)。

為了避免短操作的閃爍,進度 UI 僅在延遲 0.5 秒後才開始。

以下影片顯示了 Mock Debug 中(模擬的)長時間執行操作的新進度 UI(目前唯一支援的除錯擴充套件)。我們預計其他除錯擴充套件將很快採用進度支援。

Debug progress UI

除錯控制檯中的程式碼完成選擇

在上一個里程碑中,我們為除錯介面卡協議的“完成”請求添加了選擇控制。在此版本中,VS Code 現在完全支援協議新增,並且除錯擴充套件可以在插入完成項後調整選擇(或插入點)。

整合終端

允許選單欄助記符跳過終端

當新的設定 terminal.integrated.allowMenubarMnemonics 啟用時,所有使用 Alt 的按鍵都將跳過終端,以便它們由 VS Code 的鍵繫結管理器處理,使所有選單助記符工作,但代價是終端內的 Alt 熱鍵。此設定預設停用。

語言

JavaScript 中的自動匯入樣式

新的 javascript.preferences.importModuleSpecifierEnding 設定允許您控制 VS Code 自動匯入使用的匯入樣式。如果您正在為支援原生 ES6 模組的平臺(例如瀏覽器)編寫程式碼,這會很有用。

可能的值為:

  • auto - 預設值。使用專案的 jsconfig 來確定要使用的匯入樣式。
  • minimal - 使用 Node.js 樣式匯入。這會將 src/component/index.js 的匯入縮短為 src/component
  • index - 也包含路徑的 index 部分。這會將 src/component/index.js 縮短為 src/component/index
  • js - 使用完整路徑,包括副檔名 (.js)。

任務

更快的任務快速選擇

任務快速選擇過去會在顯示任務列表供選擇之前從所有提供任務的擴充套件中獲取所有任務。現在,VS Code 在顯示快速選擇下拉選單之前不會獲取任何額外的擴充套件任務,使其速度更快。擴充套件貢獻的任務也只會在您請求時才獲取,這釋放了擴充套件主機。

在使用者選擇 typescript 擴充套件後,才獲取 TypeScript 貢獻的 tsc 任務。

Task Quick Pick

主題:One Dark Pro

預覽功能

預覽功能尚未準備好釋出,但已足夠實用。我們歡迎您在這些功能開發期間提供早期反饋。

設定同步

我們過去幾個月一直在努力支援在多臺機器之間同步 VS Code 設定、擴充套件和鍵盤快捷鍵,此功能已在Insiders 版本中提供預覽。

在此里程碑中,我們添加了使用者程式碼片段和更多 UI 狀態的同步功能。

Settings Sync configuration

主題:GitHub Sharp with Customizations

目前以下 UI 狀態已同步:

  • 顯示語言
  • 活動欄條目
  • 面板條目
  • 檢視佈局和可見性
  • 最近使用的命令
  • “不再顯示”通知

注意:目前,只同步使用者語言程式碼片段。對全域性程式碼片段的支援將在下一個里程碑中新增。

我們還添加了遠端和本地同步備份檢視,用於恢復資料和幫助解決問題。您可以使用命令首選項同步:顯示遠端備份首選項同步:顯示本地備份訪問這些檢視。

Settings Sync backups view

主題:GitHub Sharp with Customizations

要了解更多資訊,您可以訪問設定同步文件。

賬戶管理

提供身份驗證提供程式的擴充套件現在其賬戶將顯示在設定齒輪上方新的賬戶上下文選單中。您可以檢視當前登入的所有賬戶,從中登出,並管理受信任的擴充套件。從這裡登入 Microsoft 賬戶是啟動設定同步的另一種方式。

Accounts context menu

主題:流行淺色(帶自定義)

新的 JavaScript 偵錯程式

本月,我們在新的 JavaScript 偵錯程式方面繼續取得進展。它在 Insiders 版本中預設安裝,也可以在 VS Code Stable 中從 Marketplace 安裝。您可以透過啟用 debug.javascript.usePreview 設定來使用它與現有啟動配置。以下是本月新增的一些新功能:

除錯終端中的連結處理

您可以使用除錯終端 (除錯:建立 JavaScript 除錯終端) 自動除錯任何 Node.js 程序。現在,偵錯程式還可以在您 Cmd/Ctrl+單擊 連結時處理連結以啟動除錯您的瀏覽器,無需配置。

Animation showing clicking on a link in the debug terminal, Chrome opening, and hitting a breakpoint

主題:Earthsong,字型:Fira Code

在“監視”和“除錯控制檯”中引用 $returnValue

當在呼叫堆疊中可用時,您現在可以在除錯控制檯和監視表示式中引用函式的 $returnValue

Screenshot showing $returnValue being referenced in the Debug Console and Watch expression

TypeScript 3.9 Beta 支援

此迭代中我們添加了對新的TypeScript 3.9 Beta 功能的支援。TypeScript 3.9 的一些亮點包括

  • // @ts-expect-error 指令的建議。
  • 更好地保留換行符和格式的重構。
  • JavaScript 中的自動匯入現在可以新增常見的 JS 樣式匯入 (require(...))。

您今天可以透過安裝 TypeScript Nightly 擴充套件來嘗試新的 TypeScript 3.9 功能。請分享反饋,並讓我們知道您是否遇到 TypeScript 3.9 beta 的任何 bug!

增加了檢視放置的靈活性

我們已經迭代了幾次,透過允許單個檢視移動來提高我們佈局的靈活性。在此迭代中,我們不僅增加了功能,還完善了體驗。

新的拖放體驗

在側邊欄中拖放活動欄圖示、面板和檢視一直很簡單,但含糊不清。很難確切知道當您實際放下這些專案時會發生什麼。新體驗旨在提高畫質晰度並突出我們在此過程中啟用的新功能。

下面,使用者首先在側邊欄中重新排列檢視,然後重新排列面板中的選項卡和活動欄中的圖示

New Drag and Drop experience

單個面板中的多個檢視

您現在可以在單個面板中擁有多個檢視,以更好地利用水平空間。一個常見的請求是同時檢視終端和“問題”檢視。現在可以透過將終端拖到“問題”檢視中來完成,如下所示。

Terminal and Problems view side by side

建立新的側邊欄組並移動面板

現在可以將檢視移動到新的側邊欄組,從而在活動欄中建立一個新的圖示條目。內建面板也不例外,現在可以移動到現有側邊欄條目或其自己的條目中。

下一個影片顯示使用者將終端拖到活動欄中,這會在活動欄中建立終端圖示併為終端留出空間。接下來,使用者將輸出放到終端側邊欄中。最後,大綱從資源管理器移動到活動欄中,建立自己的側邊欄區域。

Dragging views into the Activity Bar

向面板貢獻檢視容器

我們現在擁有一切必要的功能,允許擴充套件直接向面板貢獻檢視,就像您今天使用活動欄一樣,這在樹檢視 API 指南中有所說明。請注意,此功能仍在預覽中,並且樹檢視文件在被視為穩定之前不會反映這些更改。但是,要試用它,您可以將文件中的程式碼片段更新為:

"contributes": {
  "viewsContainers": {
    "panel": [
      {
        "id": "package-explorer",
        "title": "Package Explorer",
        "icon": "media/dep.svg"
      }
    ]
  }
}

用於檢視移動的命令

最後,有新的命令可以透過鍵盤移動檢視並重置您的佈局。檢視:移動焦點檢視 (workbench.action.moveFocusedView) 命令已更新以支援迭代的新功能。添加了檢視:重置焦點檢視位置 (workbench.action.resetFocusedViewLocation) 命令,用於將單個檢視放回其預設位置。

面板和自定義檢視的活動欄圖示

隨著靈活佈局的引入,當預設面板檢視移動到活動欄時,現在有專用的圖示。當合並多個檢視時,自定義檢視也有一個(預設)圖示。

Panel view icons

同步區域

我們改進了去年 11 月推出的映象游標功能,採用了名為“同步區域”的新實現。目前此功能適用於 HTML,您可以透過以下方式之一試用:

  • 在 HTML 標籤上執行命令鍵入時重新命名符號(預設繫結到 )。
  • 開啟 editor.renameOnType 設定並將游標移動到 HTML 標籤。

HTML rename on type

紅色區域是同步區域。顧名思義,一個區域的任何更改都將同步到其他區域。您可以透過將游標移出區域或按 ESC 來退出此模式。此外,在任何區域鍵入或貼上以空格開頭的任何內容都會退出此模式。

我們期待提供一個 API,使這種“鍵入時重新命名”體驗可用於 JSX、XML 等其他語言,甚至 TypeScript 中的區域性變數。

對擴充套件的貢獻

遠端開發

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

1.44 版的亮點包括

  • 開發容器:直接將 PR 檢出到容器中。
  • 開發容器:Kubernetes 容器附加支援。
  • 開發容器:實驗性 WSL 2 Docker 引擎支援。

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

擴充套件創作

歡迎檢視內容 API

某些檢視現在支援擴充套件貢獻的歡迎內容。有關更多資訊,請參閱原始問題。有關如何將此 API 與擴充套件提供的檢視一起使用的詳細資訊,您可以閱讀樹檢視文件

此 API 在上一個里程碑中作為提議新增,我們現在已將其最終確定。

語義令牌提供程式 API

語義令牌提供程式 API 現已最終確定。

語義令牌的主題支援

顏色主題現在可以編寫規則來為語言擴充套件(如 TypeScript)報告的語義令牌著色。

"semanticHighlighting": true,
"semanticTokenColors": {
    "variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" }
}

上面的規則定義了 Java 中所有隻讀變數的宣告都應以綠色粗體顯示。

語義高亮 Wiki 頁面有更多資訊。

TypeScript 語義令牌改進

TypeScript 語言伺服器返回更多語義令牌型別。顏色主題可以利用這些新的令牌型別進行樣式設定

  • JavaScript 預設庫中的所有符號都獲得 defaultLibrary 修飾符。
  • 作為回撥的函式引數被歸類為 function

閱讀 TypeScript 語義高亮外掛 README 以獲取 TypeScript 語言伺服器返回的所有語義令牌型別和修飾符的概述。

檔案系統錯誤程式碼

我們添加了FileSystemError#code,它是一個標識錯誤的字串。當透過其任何工廠函式建立檔案系統錯誤時,code 是該函式的名稱,例如 FileSystemError.FileNotFound(msg).code === 'FileNotFound'

StatusBarItem.command 的引數

StatusBarItem.command 現在接受完整的 Command 物件,而不僅僅是命令 ID。這允許擴充套件在啟用狀態列項時向命令傳遞引數。

自定義文字編輯器

藉助自定義文字編輯器,擴充套件現在可以用自定義的基於 webview 的檢視替換 VS Code 的標準編輯器,以處理特定的基於文字的資源。潛在的用例包括:

  • 預覽資產,例如著色器或 .obj 檔案。
  • 為 XAML 等標記語言建立所見即所得編輯器。
  • 提供 JSON 或 CSV 等資料檔案的替代互動式檢視。

自定義編輯器文件介紹瞭如何使用新的自定義文字編輯器 API 以及如何確保您的新編輯器與 VS Code 良好協作。另外,請務必檢視自定義編輯器擴充套件示例

The custom editor example extension

下一個迭代中,我們希望最終確定完整的自定義編輯器提案,該提案將自定義編輯器擴充套件到也支援二進位制檔案。

檢視級別進度指示

我們已向 window.withProgress API 的 ProgressOptions.location 添加了一個新選項,允許在特定檢視上顯示進度。要使用,請設定 ProgressOptions.location = { viewId: <view-id> };,其中 <view-id> 指定您希望顯示進度的檢視的 ID。在上面的檢視進度部分中有一個簡短的影片展示了此功能。

擴充套件檢視上下文選單 when-clause 上下文

我們為擴充套件檢視的上下文選單添加了一個新的 extension when-clause 上下文,其中包含擴充套件的識別符號。

示例

  "extension/context": [
      {
          "command": "gitlens.showSettingsPage",
          "group": "2_configure",
          "when": "extension == eamodio.gitlens && extensionStatus == installed",
      }
  ]

新 Codicons

我們已將以下圖示新增到 Codicon 庫中

  • 帳戶
  • 鈴鐺點
  • 除錯控制檯
  • 輸出
  • run-all
  • 同步忽略

New codicons

編寫嵌入式語言伺服器的文件

為嵌入式程式語言編寫語言伺服器比編寫純語言伺服器更復雜。鑑於嵌入式語言在今天的流行程度,我們在語言擴充套件部分添加了一個嵌入式語言主題。該文件包含兩個示例,以說明構建嵌入式語言伺服器的兩種方法:語言服務和請求轉發。首先檢視嵌入式語言文件或直接訪問這兩個示例

除錯介面卡協議

新的進度事件

我們已最終確定對除錯介面卡協議中報告進度的支援。除錯介面卡現在可以向前端客戶端傳送進度事件(progressStartprogressUpdateprogressEnd),以便顯示長時間執行的除錯介面卡操作的進度。progressStart 事件可以標記為可取消,以使客戶端呈現取消 UI 併發送 cancel 請求。為了在支援的除錯介面卡中啟用進度事件,前端客戶端需要在 initialize 請求中包含新的客戶端能力 supportsProgressReporting

更多詳情可以在相應的 DAP 功能請求中找到。VS Code 從此里程碑開始支援進度事件。

“評估”請求的剪貼簿上下文值

DAP 客戶端(前端)在將變數和表示式值複製到剪貼簿時使用 evaluate 請求。為了幫助除錯介面卡檢測此場景,已將新值 clipboard 新增到傳遞給 evaluate 請求的 context 引數的值集中。為了確保向後相容性,只有當除錯介面卡返回 supportsClipboardContext 能力時,客戶端才允許傳遞新值。

語言伺服器協議

語言伺服器索引格式 規範 的新版本 (0.5.0) 已釋出。該版本支援使用綽號在專案轉儲之間連結引用結果。此外,LSP 客戶端 (6.2.0-next.2) 和伺服器 (6.2.0-next.2) 庫的新版本也已釋出。

建議的擴充套件 API

每個里程碑都會帶來新的提議 API,擴充套件作者可以進行嘗試。一如既往,我們渴望您的反饋。以下是試用提議 API 的方法:

  • 您必須使用 Insiders 版本,因為提議的 API 經常更改。
  • 您的擴充套件的 package.json 檔案中必須包含以下行:"enableProposedApi": true
  • 將最新版本的 vscode.proposed.d.ts 檔案複製到您專案的源位置。

請注意,您不能釋出使用提議 API 的擴充套件。下一個版本中可能會有重大更改,我們絕不希望破壞現有擴充套件。

這個新的 API 允許擴充套件攔截和處理在終端中點選的連結。

window.registerTerminalLinkHandler({
  handleLink((terminal, link) => {
    if (link === 'https://vscode.com.tw') {
      window.showInformationMessage('Handled');
      return true;
    }
    return false;
  });
});

為終端環境做貢獻

這個新的 API 允許擴充套件在終端啟動時更改環境變數。

const collection = window.getEnvironmentVariableCollection(true);
const separator = process.platform === 'win32' ? ';' : ':';
collection.prepend('PATH', `/foo${separator}`);
collection.replace('JAVA_HOME', '/bar');

這些集合是擴充套件和工作區特定的,VS Code 處理如何解決多個擴充套件之間的衝突。它們可以選擇在視窗重新載入後持久化,並已採取措施確保以這種方式完成,即在視窗載入後立即建立的終端不會阻塞擴充套件主機的啟動,而是使用上次已知版本。這些持久化集合可以透過處理集合或建立新的非持久化集合,或者在解除安裝擴充套件時刪除。

計劃是透過某種指示向用戶顯示這些環境修改,該指示允許更新“過時”的終端環境,但這仍在進行中。您可以在問題 #46696 中關注討論。

瀏覽器支援

遠端指示器

在瀏覽器中使用 VS Code 時,現在有一個遠端指示器。這讓您知道您連線到的遠端環境,並允許擴充套件新增與遠端相關的額外命令。透過此更改,“在桌面中開啟”連結已從狀態列中刪除,並將移動到遠端選擇器中。

注意:VS Code 目前不支援從瀏覽器連線到不同的遠端環境,例如 SSH、容器或 WSL。

Web remote indicator

新的選單位置允許在瀏覽器中執行的擴充套件向左上角的漢堡選單貢獻連結。

Web navigational links

工程

VS Code 編譯為 ES6

VS Code 已經完全採用了 ES6。感謝 TypeScript,我們已經使用 ES6 語法很長時間了,但我們現在假定目標執行時也支援 ES6。這使我們能夠使用 ES6“全域性”變數,例如 Strings#endsWith,並允許使用新的語言特性,例如生成器函式和符號。

使用 GitHub Actions 自動處理問題

此迭代中,我們將現有的分類自動化從使用 GitHub Apps 遷移到 GitHub Actions。這帶來了一些好處,例如在 vscode 儲存庫中獲取日誌,以及開發速度的提高。我們還添加了幾個新的自動化,例如一個 Action,當修復程式被拉入 VS Code Insiders 時,它會通知問題作者,允許作者快速驗證修復程式是否有效。

我們使用的所有 Actions 都已在 GitHub 上釋出,並採用 MIT 許可證。

文件和擴充套件

Python

有兩個新的 Python 教程

C++

C++ 擴充套件教程已重寫,並且有一個新的教程專門針對在 Linux 上使用 C++

Docker 擴充套件

Microsoft Docker 擴充套件的 1.0 版本現已可用。該擴充套件可以將 Docker 檔案新增到您的專案,構建和除錯 Docker 映象,幷包含一個資源管理器,可以輕鬆啟動、停止、檢查和刪除容器和映象。

Docker extension

Azure 擴充套件

有兩個新的擴充套件,用於直接在 VS Code 中處理 Azure 資產。

  • Azure 虛擬機器 - 建立配置了 SSH 訪問的 Ubuntu 虛擬機器,以便您可以使用 Remote-SSH 擴充套件連線它們。

  • Azure 資源組 - 檢視所有 Azure 資源並在 Azure 檢視中快速導航到它們。

Azure Virtual Machines extension

值得注意的修復

  • 75932: 除錯載入失敗:程序選擇器失敗(您的 131072x1 螢幕尺寸是假的,預計會有麻煩)
  • 84271: 新增“x”以從最近開啟的檔案中刪除檔案(快速選擇)
  • 89658: 未找到除錯介面卡
  • 92381: 如果反覆新增然後刪除工作區中的資料夾,“將資料夾新增到工作區”提示會重複出現
  • 93344: 歡迎檢視應該滾動
  • 93634: 進度:讓視窗進度變為靜默通知進度

感謝

最後但同樣重要的是,衷心感謝!以下幫助使 VS Code 變得更好的各位:

對我們問題跟蹤的貢獻

vscode 的貢獻

我們的無障礙社群提供了持續的反饋!在此列舉幾位:

vscode-vsce 的貢獻

language-server-protocol 的貢獻

vscode-languageserver-node 的貢獻

vscode-generator-code 的貢獻

vscode-loader 的貢獻

localization 的貢獻

有超過 800 名 雲 + AI 本地化 社群成員使用 Microsoft 本地化社群平臺 (MLCP),其中約 170 名活躍貢獻者為 Visual Studio Code 做出貢獻。我們感謝您的貢獻,無論是提供新的翻譯、對翻譯進行投票還是提出流程改進建議。

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

  • 中文 (簡體, 中國) 易婷婷, 顧怡之, 董查爾斯, 劉賈斯汀, 楊喬爾, 夏託尼, 朱知陽, 邵萌, 普魯文, 保羅張, 張銳, 朱怡婷, 農智超, 利亞姆肯尼迪, 武健, 趙立國, 寧倬, 王伯辰, 一斤瓜子, 譚順, 何雲, 劉雲, 範永基。
  • 中文 (繁體, 臺灣) 船長, 林韋妮, 予恆。
  • 捷克語 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。
  • 印度尼西亞語 (印度尼西亞) Gerry Surya, Laurensius Dede Suhardiman。
  • 義大利語 (義大利) Alessandro Alpi, Riccardo Cappello。
  • 日語 (日本) 葦嶺生子, 戶倉綾, 傅和隆之, 如月醬, 住吉貴志, 牧野耕一, 尾崎義久, 天明正一。
  • 韓語 (韓國) 高慶熙, 許俊。
  • 挪威語 (挪威) Torbjørn Viem Ness。
  • 波蘭語 (波蘭) Makabeus Orban, Kacper Łakomski。
  • 葡萄牙語 (巴西) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes。
  • 葡萄牙語 (葡萄牙) Pedro Filipe。
  • 俄語 (俄羅斯) Andrey Veselov, Vadim Svitkin, 米納科夫·安東。
  • 西班牙語 (西班牙, 國際排序) 西弗雷多·達席爾瓦, 阿列爾·科斯塔斯·格雷羅, 大衛·羅阿, 阿布頓·羅德里格斯·P., 路易斯·曼努埃爾, 卡洛斯·A·埃切韋裡·V。
  • 瑞典語 (瑞典) 佩爾·拉格納·埃丁。
  • 泰米爾語 (印度) krishna koumari c。
  • 土耳其語 (土耳其) Umut Can Alparslan, Mehmet Yönügül。
  • 烏克蘭語 (烏克蘭) Nikita Potapenko。
  • 越南語 (越南) Hieu Nguyen Trung。