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

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 預覽。
  • 調整了我們的快速選取器視窗小部件的行為。
  • 現在可以使用為當前行顯示 CodeLens 命令命令在快速選取器中顯示當前行 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

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

如果您在檔案搜尋中獲得太多結果,可以在鍵入空格後新增更多搜尋模式。例如,如果您按順序鍵入 <file name> <folder name>,則可以按資料夾縮小結果範圍。

Quick Open filtering

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

切換提供程式時保留輸入

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

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

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

開啟編輯器到側面的新命令

一個新的命令 workbench.action.alternativeAcceptSelectedQuickOpenItem 允許您新增額外的鍵盤快捷方式,以將檔案或符號從快速開啟開啟到側面。預設情況下,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

新的除錯控制檯圖示

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

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

主題:Pop Light with Customizations

新的 JavaScript 偵錯程式

本月我們繼續在新的 JavaScript 偵錯程式上取得進展。它預設安裝在 Insiders 中,並且可以從 Marketplace 安裝在 VS Code Stable 中。您可以透過啟用 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 的任何錯誤時告訴我們!

增加了檢視放置靈活性

對於多次迭代,我們一直致力於透過允許移動單個檢視來提高佈局的靈活性。在此迭代中,我們不僅添加了功能,還改進了體驗。

新的拖放體驗

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

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

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 引擎支援。

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

擴充套件創作

歡迎檢視內容 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 Semantic Highlighting plugin 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 庫添加了以下圖示

  • account
  • bell-dot
  • debug-console
  • library
  • output
  • run-all
  • sync-ignored

New codicons

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

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

除錯介面卡協議

新的進度事件

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

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

"evaluate" 請求的剪貼簿上下文值

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

語言伺服器協議

Language Server Index Format specification 的新版本 (0.5.0) 已釋出。該版本支援使用 monikers 在專案轉儲之間連結引用結果。此外,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 repo 中獲取日誌,以及開發速度的提高。我們還添加了幾個新的自動化,例如一個 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

  • 中文(簡體,中國) 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, 予 恆。
  • 捷克語 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。
  • 日語(日本) Ikko Ashimine, Aya Tokura, Takayuki Fuwa, ちゃん きさらぎ, 住吉 貴志, Koichi Makino, Yoshihisa Ozaki, TENMYO Masakazu。
  • 韓語(韓國) Kyunghee Ko, June Heo。
  • 挪威語(挪威) 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, Минаков Антон。
  • 西班牙語(西班牙,國際排序) Sifredo Da Silva, Ariel Costas Guerrero, David Roa, Abdón Rodríguez P., Luis Manuel, Carlos A. Echeverri V.
  • 瑞典語(瑞典) Per Ragnar Edin。
  • 泰米爾語(印度) krishnakoumar c。
  • 土耳其語(土耳其) Umut Can Alparslan, Mehmet Yönügül。
  • 烏克蘭語(烏克蘭) Nikita Potapenko。
  • 越南語(越南) Hieu Nguyen Trung。

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