🚀 在 VS Code 中

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) 以在協助工具差異檢視器中瀏覽變更,並使用暫存/取消暫存/還原選取的範圍命令來暫存、取消暫存或還原目前的變更。
  • 在我們的 Widget 中使用了更好的角色。listbox 角色用於建議 Widget 和快速選取、list 用於靜態清單,而 document 用於唯讀內容,例如歡迎檢視和 Markdown 預覽。
  • 微調了我們的快速選取 Widget 的行為。
  • 目前的行 CodeLens 現在可以透過顯示目前行 CodeLens 命令命令顯示在快速選取中。

時間軸檢視

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

時間軸檢視預設會在檔案總管底部摺疊。選取 [時間軸] 窗格將會展開時間軸檢視。

Collapsed Timeline view

在此版本中,內建 Git 擴充功能貢獻了一個時間軸來源,可提供指定檔案的 Git 提交歷程記錄。選取提交會開啟差異檢視,顯示該提交所引入的變更。關聯式選單提供複製提交 ID複製提交訊息的命令。檔案總管的關聯式選單上也有新的 [開啟時間軸] 命令,可快速顯示選取檔案的時間軸。

以下是實際運作的時間軸檢視

Timeline view

主題:深色紫水晶

其他時間軸來源可以由擴充功能貢獻 (雖然 API 仍在建議階段),這將會顯示在統一的時間軸檢視中。擴充功能也可以貢獻選單項目給時間軸檢視和個別時間軸項目。您也可以輕鬆選擇您想要包含在檢視中的來源。

工作台

快速開啟重寫

快速開啟 (⌘P (Windows、Linux Ctrl+P)) 控制項使用的是舊版本的樹狀結構 Widget,在此迭代中,它已移轉為使用我們的最新清單控制項,該控制項已在 VS Code UI 的其餘部分中使用。在功能上,您應該無法分辨差異,因為所有命令都將像以前一樣運作。

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

Quick Open

從檔案導覽至符號

您現在只需輸入 @ 即可繼續導覽至檔案結果的符號。對於目前選取的檔案,所有符號都會出現,且編輯器將在背景開啟以顯示作用中符號。以下影片也顯示,您可以依類別群組符號,方法是在 @ 後面加上 :

Quick Open navigate to symbols

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

如果您在檔案搜尋中取得太多結果,您可以在輸入空格後新增更多搜尋模式。例如,如果您依序輸入 <檔案名稱> <資料夾名稱>,您可以依資料夾縮小結果範圍。

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 秒延遲後開始。

以下影片顯示了模擬偵錯 (截至今天唯一支援的偵錯擴充功能) 中 (模擬的) 長時間執行作業的新進度 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 貢獻的 tsc 工作只有在使用者選取 typescript 擴充功能後才會擷取。

Task Quick Pick

主題:One Dark Pro

預覽功能

預覽功能尚未準備好發行,但功能已足夠使用。我們歡迎您在開發期間提供早期意見反應。

設定同步

在過去幾個月中,我們一直致力於支援跨機器同步 VS Code 設定、擴充功能和鍵盤快速鍵,此功能可在 測試人員版本上進行預覽。

在此里程碑中,我們新增了使用者程式碼片段和更多 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 偵錯工具上取得進展。它預設安裝在測試人員版本上,並且可以從 Marketplace 安裝在 VS Code 穩定版中。您可以透過啟用 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 在呼叫堆疊中可用時,您現在可以在 [偵錯主控台] 和 [監看式] 運算式中參考函式的 $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 中的區域變數。

擴充功能貢獻

遠端開發

遠端開發擴充功能的工作持續進行中,這些擴充功能可讓您使用容器、遠端機器或 Windows Linux 子系統 (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) 的 WYSIWYG 編輯器。
  • 提供替代的互動式檢視,用於資料檔案,例如 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",
      }
  ]

新的 Codicon

我們已將下列圖示新增至 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 請求。 為了協助偵錯配接器偵測到這種情況,已將新值 clipboard 新增至傳遞給 evaluate 請求的 context 引數的值集合。 為了確保回溯相容性,只有在偵錯配接器傳回 supportsClipboardContext 功能時,才允許用戶端傳遞新值。

語言伺服器通訊協定

語言伺服器索引格式 規格 的新版本 (0.5.0) 已發布。 此版本支援使用 Moniker 連結跨專案傾印的參考結果。 此外,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.dev.org.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 會處理多個擴充功能之間衝突的處理方式。 它們可以選擇性地跨視窗重新載入持續保存,並且已謹慎處理以確保以這樣的方式完成,讓在視窗載入後立即建立的終端機不會因為擴充功能主機啟動而封鎖,而是改用最後已知的版本。 這些持續保存的集合可以透過處置集合或建立新的非持續性集合,或在解除安裝擴充功能時移除。

計畫是透過某個指標向使用者呈現這些環境修改,該指標允許更新「過時」的終端機環境,但這仍在進行中。 您可以在 issue #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 中取得記錄,以及開發速度的提升。 我們還額外新增了幾個新的自動化功能,例如在修正程式碼被提取到 VS Code Insiders 時通知問題作者的 Action,讓作者可以快速驗證修正是否有效。

我們使用的完整 Action 集合已在 GitHub 上以 MIT 授權發布。

文件與擴充功能

Python

有兩個新的 Python 教學課程

C++

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

Docker 擴充功能

Microsoft Docker 擴充功能的 1.0 版本現已推出。 此擴充功能可以將 Docker 檔案新增至您的專案、建置和偵錯 Docker 映像,並包含一個 Explorer 以輕鬆啟動、停止、檢查和移除容器和映像。

Docker extension

Azure 擴充功能

有兩個新的擴充功能可直接從 VS Code 內使用 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。