🚀 在 VS Code 中

2024 年 3 月 (版本 1.88)

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

下載:Windows: x64 Arm64 | Mac: 通用 Intel silicon | Linux: deb rpm tarball Arm snap


歡迎使用 Visual Studio Code 2024 年 3 月發行版本。此版本包含許多更新,我們希望您會喜歡,其中一些主要重點包括

如果您想線上閱讀這些版本資訊,請前往 code.visualstudio.com 上的更新Insiders: 想要盡快試用新功能嗎?您可以下載每晚 Insiders 組建,並在最新更新可用時立即試用。

協助工具

語音錄製聲音

我們為語音錄製新增了新的協助工具訊號聲音

  • 語音錄製開始 - 使用 accessibility.signals.voiceRecordingStarted 設定進行設定
  • 語音錄製結束 - 使用 accessibility.signals.voiceRecordingStopped 設定進行設定

改進的差異編輯器協助工具

如果您使用螢幕閱讀器,當差異編輯器變成作用中編輯器時,您現在會收到通知。您可以使用 accessibility.verbosity.diffEditorActive 設定停用此行為。

我們也將關於 差異編輯器:切換側邊 的資訊 (對鍵盤使用者有用的命令) 新增至協助工具說明對話方塊

協助工具訊號 現在在差異編輯器的兩側都可運作。先前,它們僅在修改側邊上可用。

協助工具檢視聊天程式碼區塊命令

當您在協助工具檢視中檢查聊天回應時,您現在可以使用聊天檢視中可用的程式碼區塊命令和鍵盤快速鍵。

這些包括 聊天:在游標處插入聊天:插入到終端機聊天:插入到新檔案

筆記本儲存格 aria 標籤更新

筆記本儲存格的 Aria 標籤現在會更新,以指示儲存格目前是否正在執行或等待執行。

工作台

浮動視窗中的自訂編輯器支援

我們擴展了對將編輯器開啟到 浮動視窗 的支援,以支援自訂編輯器,以及通常所有使用 webview API 的編輯器。這包括 Markdown 預覽、瀏覽器預覽和複雜的自訂編輯器,例如我們的 十六進位編輯器

注意: 由於技術限制,在視窗之間移動基於 webview 的編輯器需要重新載入該編輯器的內容。然後,編輯器有責任還原您先前累積的狀態。在某些情況下,您的狀態可能會重設,如同您第一次開啟編輯器一樣。

開啟編輯器的自訂標籤

我們現在允許您自訂編輯器索引標籤和開啟編輯器檢視的顯示標籤。此功能可用於區分具有相同名稱的檔案的編輯器。

您可以透過在 workbench.editor.customLabels.patterns 設定下新增項目,根據您的偏好調整這些標籤。每個項目應包含一個 glob 模式,該模式符合檔案路徑和範本,該範本定義編輯器索引標籤的新名稱。此自訂僅在檔案路徑符合指定的模式時套用。模式是否符合取決於它是定義為相對或絕對檔案路徑模式。

範本可以包含變數,例如 ${filename}${extname}${dirname}${dirname(N)},這些變數會動態地替換為檔案路徑中的值。

若要啟用或停用這些自訂標籤,請使用 workbench.editor.customLabels.enabled 設定。這可讓您隨時切換回原始編輯器名稱,而無需移除您的自訂模式。

鎖定捲動

您現在可以使用 檢視:切換編輯器之間的鎖定捲動 命令,跨所有可見編輯器同步捲動。這表示當您在一個編輯器中捲動時,所有其他編輯器都會捲動相同的量,保持所有內容對齊。如果您需要並排比較檔案,此功能會很有用。

如果您想要更多控制權來啟用和停用鎖定捲動,您可以選擇僅在按住特定鍵盤快速鍵時啟動捲動同步。為 workbench.action.holdLockedScrolling 命令設定鍵盤快速鍵,您就可以在需要時暫時鎖定跨編輯器的捲動。

底部的活動列

先前,我們推出了將活動列移動到側邊欄頂部的選項。我們現在也讓您可以將活動列移動到底部。若要執行此操作,請將 workbench.activityBar.location 設定變更為 bottom

我們也改進了活動列位於頂部時的外觀和風格,以確保其與介面的其餘部分完美契合。

Three screenshots, showing the different Activity Bar positions: on the left side, at the top, and at the bottom

搜尋編輯器單擊行為

您現在可以設定 search.searchEditor.singleClickBehaviour 設定,以決定當您單擊搜尋編輯器項目時會發生什麼事。目前,此設定僅支援開啟「預覽定義」。

快速搜尋改進

固定檔案路徑

在快速搜尋中,我們已將檔案名稱分隔符號設為固定,以更清楚地顯示搜尋結果與哪個檔案相關聯。當您在檔案中搜尋詞彙的出現次數很多時,這會很有用。

檔案路徑分隔符號按鈕

當您將滑鼠懸停在特定檔案的檔案結果上,或如果您向下箭頭到結果時,按鈕 (例如,開啟檔案的按鈕) 也會顯示在檔案路徑分隔符號上。

快速選取分隔符號導覽鍵盤快速鍵

我們收到意見反應,如果能夠在快速選取中導覽分隔符號會很好。在此反覆運算中,我們新增了一個鍵盤快速鍵來執行此操作。在 Windows 和 Linux 上,您可以使用 Alt+向上/向下,而在 macOS 上,它是 Cmd+向上/向下。在此範例影片中,您可以看到作用中項目在以下項目之間移動

  • 命令面板中的 最近使用其他命令 分隔符號
  • 快速搜尋中的檔案路徑分隔符號之間

快速選取停用核取方塊項目

在此反覆運算中,我們更清楚地顯示快速選取何時顯示已停用的項目。可以在「管理信任的擴充功能」快速選取中找到此範例,可以針對您登入的任何帳戶存取該快速選取。

The Manage Trusted Extensions quick pick with some items disabled

擴充功能更新改進

重新啟動擴充功能

當擴充功能更新時,您現在可以重新啟動擴充功能,而無需重新載入視窗。

Restart extensions instead of reloading the window

注意: 當您連線到遠端伺服器 (例如 WSL 或 SSH 或開發容器) 時,您仍然需要重新載入視窗才能更新擴充功能。

使用 VS Code 更新更新擴充功能

當您啟用 extensions auto update 時,VS Code 現在會更新與可用的較新 VS Code 版本相容的擴充功能。如果較新版本的擴充功能與目前版本的 VS Code 不相容,則只有在您更新 VS Code 之後,才會啟用較新版本的擴充功能。

跳至留言回覆

留言檢視中留言執行緒的上下文功能表現在包含「回覆」動作 (當留言執行緒允許回覆時)。這可讓您快速跳至回覆輸入方塊並開始輸入回覆。

Comments view context menu with a Reply action

編輯器

迷你地圖區段標頭

迷你地圖現在會識別和呈現由摺疊標記定義的區段,例如 TypeScript 中的 //#region,或使用 MARK: 的留言。這可讓您快速掃描和導覽大型檔案。

Screenshot that shows folding marker regions defined in the editor in the minimap

重構預覽鍵盤快速鍵

我們更新了預覽重新命名符號重構 (F2) 的編輯的鍵盤快速鍵,以與預覽其他上下文 (例如程式碼動作) 中的重構保持一致。您現在可以使用 ⌘Enter (Windows、Linux Ctrl+Enter) (先前為 Shift + Enter) 來預覽編輯。

當滑鼠懸停在程式碼動作上方時,⌘Enter (Windows、Linux Ctrl+Enter) 也會在工作台中開啟「重構預覽」面板。

差異編輯器暫存/還原選取範圍按鈕

差異編輯器現在有一個用於 暫存還原 控制項的個別邊界。這些動作可讓您暫存或還原變更的程式碼區塊。

如果您執行某些變更的文字選取範圍,這些按鈕可讓您暫存或還原選取的變更 (選取範圍內的所有已變更字元)。

Video that shows the gutter buttons in the diff editor to stage or revert changes

您可以將 diffEditor.renderGutterMenu 設定為 false,以隱藏差異編輯器邊界。

重新命名建議行為

我們改進了使用重新命名建議的流程,以符合快速選取的流程。當您從清單中選取重新命名建議時,輸入值現在會相應地更新,這可讓您進一步修改建議。

Video of the Rename control that updates the input with the focused rename suggestion

原始檔控制

傳入變更檔案裝飾

為了協助避免從遠端合併/重新定基變更時可能發生的衝突,我們現在會針對所有具有傳入變更且已提取但尚未合併/重新定基的檔案顯示檔案裝飾。若要從此功能受益,您應該同時啟用 git.autofetchgit.decorations.enabled 設定。

Source Control incoming changes file decorators in the explorer view and in the editor tabs

佈景主題:GitHub Sharp (vscode.dev 上的預覽)

終端機

偵錯終端機中的 Shell 整合

為了向使用者和擴充功能提供增強的功能,當偵錯時啟動的終端機中,現在會自動啟用 Shell 整合

執行最近的命令改進

由 Shell 整合支援的 執行最近的命令 (⌃⌥R (Windows、Linux Ctrl+Alt+R)) 現在會捲動至並顯示上次執行命令的時間 (如果可能的話)。執行命令或取消快速選取會將終端機還原為先前的狀態。

佈景主題:Sapphire (vscode.dev 上的預覽)

開啟偵測到的連結 命令 (⇧⌘G (Windows、Linux Ctrl+Shift+G)) 現在會在編輯器中預覽連結結果,並醒目提示終端機中的連結來源。

此外,重複的連結現在已從清單中篩選出來,且所有連結都以一致的格式呈現。

When 3 yarn.lock links are printed with the same line and column numbers, they will all be merged into a single detected link

單字連結terminal.integrated.wordSeparators 設定定義,並且是在找不到檔案/資料夾/URI 時的回退。啟用後,這些連結現在包含額外的周圍內容,以新增搜尋的行和欄資訊。

請注意,螢幕截圖中已選取連結 terminalLinkParsing,但產生的搜尋也包含連結後面的行號。

Activating a "terminalLinkParsing" link when followed by "line 24" will include the 24 line number in the search

即使路徑包含空格,現在也會在終端機中偵測到下列連結格式

  •  FILE  path:line:column

終端機固定捲動透明度支援

終端機中的固定捲動 現在支援透明度。佈景主題可以透過將 terminalStickyScroll.background 佈景主題色彩設定為透明值,或在您的 settings.json 中指定覆寫來使用此功能。例如

{
  "workbench.colorCustomizations": {
    "[Default Dark Modern]": {
      "terminalStickyScroll.background": "#181818c0"
    }
  }
}

這會產生透明的固定捲動背景,讓後面的文字透視

The Sticky Scroll background can now be transparent, allowing the text behind to shine through

測試

測試涵蓋率

在此反覆運算中,我們已完成我們的測試涵蓋率 API,為 VS Code 帶來原生涵蓋率支援。如果您的測試系統支援,您可以透過使用新的 以涵蓋率執行 按鈕來取得涵蓋率

Screenshot showing the Run With Coverage button in the Test explorer view

同樣有新的鍵盤快速鍵可用於以涵蓋率執行,例如 Ctrl+; Ctrl+Shift+A 以使用涵蓋率執行所有測試,以及 Ctrl+; Ctrl+Shift+L 以使用涵蓋率執行您最後一組測試。

預設情況下,涵蓋率資訊會顯示為行號上的覆疊,但您可以 切換內嵌涵蓋率 以查看來源檔案的完整詳細資訊

Screenshot showing the Test Coverage view in the Test Explorer view and color overlays in the editor

佈景主題:Codesong (vscode.dev 上的預覽)

使用測試涵蓋率需要您的擴充功能實作新的 API。某些擴充功能,例如 Java 的測試執行器node:test 執行器 已經支援它。在團隊的 12 月1 月 更新中深入瞭解 Java 的測試涵蓋率。

擴充功能作者可以在 測試 API 文件 中找到有關測試涵蓋率 API 的更多詳細資訊。

測試訊息中的色彩程式碼支援

我們現在會剖析終端機色彩程式碼,以對文字測試訊息 (例如測試失敗時顯示的訊息) 進行色彩化,而不是顯示原始「無法列印」的資料程式碼。

語言

TypeScript 5.4

VS Code 現在包含 TypeScript 5.4。此主要更新為類型檢查和 IntelliSense 帶來新的改進,以及數個錯誤修正。請參閱 TypeScript 5.4 版本部落格文章 以取得更多詳細資訊。

當您將影像或檔案拖放到 Markdown 檔案中或貼到其中時,VS Code 會自動插入 Markdown 影像或連結語法。當您插入到程式碼區塊和其他不支援 Markdown 語法的內容時,我們現在也會智慧地停用此行為

您可以隨時使用拖放/貼上小工具切換回插入 Markdown 語法。您可以使用 markdown.editor.drop.enabledmarkdown.editor.filePaste.enabled 設定來設定此行為。

筆記本

筆記本輸出中的鍵盤快速鍵

我們現在在筆記本輸出中支援一些標準鍵盤快速鍵

  • 可以使用鍵盤和 Ctrl+ACtrl+C 鍵盤快速鍵分別選取和複製輸出。
  • 可以使用鍵盤和 向上向下 鍵盤快速鍵分別捲動可捲動的輸出。
  • 可以使用鍵盤和 Ctrl+HomeCtrl+End 鍵盤快速鍵分別捲動至可捲動輸出的頂端和底部 (Cmd+向上 和 macOS 上的 Cmd+向下)。
  • 可以使用鍵盤和 Ctrl+Shift+向上Ctrl+Shift+End 鍵盤快速鍵分別選取從目前選取點到輸出頂端或底部的輸出 (Shift+Cmd+向上 和 macOS 上的 Shift+Cmd+向下)。

儲存格錯誤診斷

擴充功能現在可以為失敗的儲存格提供錯誤詳細資訊,以便錯誤診斷顯示在儲存格內。當焦點在儲存格容器上時,notebook.cell.openFailureActions (⌘. (Windows、Linux Ctrl+.)) 會跳至該錯誤的快速動作功能表。診斷僅在語言模型可用於提供快速動作時顯示。

在區段中執行儲存格

為了更輕鬆地執行筆記本中相關的儲存格,您現在可以使用 在區段中執行儲存格 動作,執行由 Markdown 區段標頭分組在一起的儲存格。此動作在筆記本大綱檢視和固定捲動元素上可用。

在固定捲動元素內,以滑鼠右鍵按一下您選擇的標頭,然後透過上下文功能表中的動作執行區段。在大綱檢視中,選取滑鼠懸停或選取時顯示的工具列圖示,然後透過呈現的動作執行單一儲存格或儲存格區段。

大綱檢視中的篩選器支援

您現在在大綱檢視中可以使用篩選器,讓您可以控制是否包含 Markdown 標頭、程式碼儲存格和程式碼儲存格符號。篩選器對應於下列設定

  • notebook.outline.showMarkdownHeadersOnly
  • notebook.outline.showCodeCells
  • notebook.outline.showCodeCellSymbols

關閉時提示儲存互動式視窗

透過啟用 interactiveWindow.promptToSaveOnClose 設定,當互動式視窗關閉時,系統會提示您儲存互動式視窗中的內容,以確保您不會遺失任何工作。目前唯一支援的檔案格式是 .ipynb

遠端開發

遠端開發擴充功能 可讓您使用 開發容器、透過 SSH 或 遠端通道 的遠端電腦,或 Windows Subsystem for Linux (WSL) 作為功能完整的開發環境。

重點包括

  • 針對具有擴充支援的發行版本提供替代伺服器下載
  • 基於 URI 查詢字串的連接埠轉送
  • 開發容器擴充功能自動啟動 Docker
  • 透過群組原則限制對開發通道和連接埠轉送的存取

您可以在 遠端開發版本資訊 中深入瞭解這些功能。

擴充功能貢獻

VS Code 語音

延遲啟動

VS Code 語音 擴充功能現在僅在 VS Code 中要求語音轉文字服務時才會啟動。這可確保擴充功能不會對擴充功能主機啟動時間產生負面影響。

使用顯示語言作為預設語音語言

依預設,VS Code 語音擴充功能現在會使用 VS Code 的顯示語言作為語音語言,並選取對應的模型 (如果該語言受到支援)。

對於 accessibility.voice.speechLanguage 設定,auto 是新的預設值。

GitHub Copilot

內嵌聊天改進

內嵌聊天現在以浮動控制項啟動,使其更輕量。在第一個要求之後,控制項會展開以佔用更多空間。我們也調整了轉譯,使其與其他聊天體驗 (例如聊天檢視或快速聊天) 更一致。

內嵌聊天作為浮動在編輯器文字上方的內容小工具 佈景主題:GitHub Light Colorblind (Beta)

我們已重新定位重新執行和意見反應控制項,並使檢視差異的切換控制項在「接受」和「捨棄」按鈕旁邊更醒目。

Copilot 內嵌聊天的螢幕截圖,顯示重新定位的控制項。 佈景主題:GitHub Light Colorblind (Beta)

作為上下文的筆記本核心狀態

當您在筆記本中時,核心狀態 (例如,變數和可用的套件) 現在會自動包含在內嵌聊天中作為上下文。這可讓 Copilot 使用筆記本的目前狀態來提供更相關的完成。

佈景主題:GitHub Dark

提交訊息產生改進

為了提高產生的提交訊息的品質,我們現在也會將存放庫中最近 10 次提交的提交訊息,以及目前使用者最近 10 次提交的提交訊息作為額外上下文包含在內。

工作區建立改進

當偵測到聊天提示的合適比對時,@workspace /new 命令現在會提供從 GitHub 存放庫策劃的範例專案作為建議。

Chat view with @workspace /new that provides a link to a sample project

@workspace /new 命令也已增強,可更有效地管理上下文和歷程記錄。這可讓您透過詢問後續查詢來精簡建議的工作區結構和檔案內容。例如,「使用 TypeScript 而不是 JavaScript」或「也新增 bootstrap」。

@terminal /explain 斜線命令

新的 @terminal /explain 斜線命令可用,該命令已針對說明命令或錯誤進行最佳化。如果沒有 /explain@terminal 會最佳化為建議修正。此斜線命令用於 使用 Copilot 說明 快速修正或 說明選取範圍 動作。

Using the explain using copilot quick fix will ask copilot "@terminal /explain #terminalLastCommand"

預覽:終端機內嵌聊天

此版本中提供終端機內嵌聊天的預覽,可讓您直接在終端機中方便地存取 Copilot 的功能。

您可以使用 terminal.integrated.experimentalInlineChat 設定啟用終端機內嵌聊天。若要在終端機中叫用內嵌聊天,請使用 ⌘I (Windows、Linux Ctrl+I) 鍵盤快速鍵。

Opening terminal inline chat will open and focus an input box similar to inline chat in the editor

終端機內嵌聊天使用 @terminal 聊天參與者,該參與者具有關於整合式終端機 Shell 及其內容的上下文。

You can ask complex questions like "list the top 5 largest files in the src directory"

建議命令後,使用 ⌘Enter (Windows、Linux Ctrl+Enter) 在終端機中執行命令,或使用 ⌥Enter (Windows、Linux Alt+Enter) 將命令插入終端機。也可以在 Copilot 的回應中直接編輯命令,然後再執行命令 (目前在 Windows 和 Linux 上為 Ctrl+向下TabTab,在 macOS 上為 Cmd+向下TabTab)。

Complex queries are OS and shell-specific

驗證流程的清晰度

圍繞驗證的清晰度非常重要。我們希望清楚說明我們如何驗證以及我們要求什麼。如果您在 VS Code 中開啟私有存放庫,而且我們沒有此案例的正確驗證,我們會顯示驗證對話方塊。對話方塊包含為何需要驗證的描述,以及 深入瞭解 按鈕以瞭解有關這些需求的更多資訊。

Screenshot of a modal window that's asking to authenticate with GitHub and that contains a Learn more button

深入瞭解 按鈕會將您帶到我們的 有關驗證需求的文件

變數參考

在聊天回應中的 Used references (已使用參考) 區段會提供關於所使用情境的資訊。先前,此區段僅顯示隱含提取的情境。現在,它也會顯示您在聊天提示中明確提及的變數,例如 #file#editor。如果變數在「Used references」中遺失,可能表示它被忽略了,因為它對於語言模型的情境視窗來說太大了。

Screenshot of a chat response, showing the '#file' variable in the Used references section

次要聊天提交動作

在「聊天」檢視中,聊天提交按鈕現在有一個下拉式選單,可輕鬆存取更多動作。

  • 傳送至 @workspace 會將您的查詢提交給 @workspace 聊天參與者,這對於詢問關於您工作區內容的問題非常有用。
  • 傳送至新聊天 會開始一個新的空白聊天,然後提交查詢。

Screenshot of the chat submit dropdown options

使用 Copilot: Explain This 時的範圍選取

當您在未於使用中的編輯器中選取任何內容的情況下使用 /explain,且有多個感興趣的範圍時,我們已新增提示支援,以釐清要說明哪個符號或區塊範圍。

Screenshot of the scope selection quick pick when the scope for /explain is unclear

此行為目前為選擇性加入,位於 github.copilot.chat.scopeSelection 設定之後。

Python

針對 Flask 和 Django 改善偵錯組態選取

建立 Flask 和 Django 應用程式的啟動組態變得更加容易!在為您的 Web 應用程式建立 launch.json 時,已進行改進以偵測您工作區中可能的啟動檔案。

對於 Django,Python Debugger 擴充功能會在根目錄或您工作區中低一層的子目錄中尋找 manage.pyapp.py 檔案。對於 Flask,擴充功能會尋找包含 Flask 應用程式宣告的 wsgi.pyapp.pyinit.py 檔案 (例如,app = Flask() )。

如果在專案中找不到這些檔案,下拉式選單會顯示對應專案類型的 **預設** 選項,即使該檔案可能不存在。

Hatch 環境探索

Hatch 環境現在預設會被探索和啟用,與其他常見環境 (例如 Venv、Conda 和 Poetry) 類似。此外,在 Hatch 的情況下,如果未註冊明確的環境識別碼,擴充功能可以從環境定位器判斷環境類型 (Hatch)。

針對 pipenv、pyenv 和 Poetry 專案自動選取環境

如果您的工作區包含 pipenv、pyenv 或 Poetry 環境,現在會自動為您的工作區選取對應的環境。先前,擴充功能正確地探索到這些環境,但選取了預設的全域解譯器,這需要您手動為您的工作區選取適當的環境。

現在,Python 擴充功能會根據環境的存在和任何對應的組態檔來推斷已啟用的環境。例如,在 pyenv 的情況下,擴充功能會查看 .python-version 檔案,以自動為工作區選取適當的解譯器。

「回報問題」命令的改進

PythonPython Debugger 擴充功能現在讓您可以更輕鬆地向我們的存放庫回報問題!如果您使用 **回報問題** 命令 (workbench.action.openIssueReporter) 提交問題,則大部分繁重的工作已完成,您只需要提供一些額外資訊,以便我們的團隊可以有效率地分類您遇到的問題。

若要使用 **說明: 回報問題** 命令為 @vscode-python@vscode-python-debugger 提交問題,請從擴充功能下拉式選單中分別選擇 **Python** 或 **Python Debugger**。

GitHub Pull Requests

GitHub Pull Requests 擴充功能上已取得更多進展,此擴充功能可讓您處理、建立和管理提取要求與問題。新功能包括:

  • 在「註解」檢視中,過時的註解會以不同於目前註解的方式顯示。
  • githubPullRequests.createDefaultBaseBranch 的新 auto 值會使用上游的預設分支作為 fork 存放庫的基礎分支。
  • 「註解」檢視中的註解執行緒具有內嵌動作 (針對過時的註解,有解決/取消解決和「與 HEAD 差異註解」) 和內容選單動作。

檢閱擴充功能 0.86.0 版本的變更記錄,以瞭解其他重點。

Jupyter

儲存格執行分析的改進

透過最新的 Pylance 預先發行版本,我們針對 Jupyter 儲存格進行了更佳的相依性分析。現在它瞭解模組匯入,當您有一個儲存格匯入先前儲存格中定義的模組時,這特別有用。

若要啟用此功能,請在 VS Code Insiders 中安裝最新的 Pylance 預先發行版本,並啟用 jupyter.executionAnalysis.enablednotebook.consolidatedRunButton 設定。

擴充功能撰寫

使用 Issue Reporter 命令進行擴充功能錯誤回報

在上一個反覆運算中,我們最終確定了一種方式,讓擴充功能可以貢獻額外的資料或範本,以便在透過 VS Code 的 Issue Reporter 提交至 GitHub 時填寫。擴充功能可以貢獻一個命令,此命令可以透過 **說明: 回報問題...** 命令存取。選取其擴充功能會執行其貢獻的命令。請檢閱我們的 問題回報文件/版本資訊,以取得關於這如何與您的擴充功能搭配運作的詳細資訊!

此外,所有已安裝的擴充功能都可以透過「快速開啟」快速回報。在「快速開啟」中輸入 issue (⌘P (Windows、Linux Ctrl+P)),您可以快速選取或搜尋要回報的已安裝擴充功能。

某些擴充功能將開始轉移到使用這個新的問題回報流程,並且將不再需要直接貢獻到命令面板中的自訂 Report Issue... 命令。

預覽功能

重新調整終端機中重疊字形的比例

有一個新的設定 terminal.integrated.rescaleOverlappingGlyphs 可用,它可以重新調整與後續儲存格重疊的字形比例。這旨在涵蓋不明確寬度的字元,這些字元可能具有字型字形,與後端 pty/unicode 版本認為的不同。例如,在大多數字型中,羅馬數字 unicode 字元 (U+2160+) 通常佔用多個儲存格,因此在啟用此設定時會水平重新調整其比例。

未重新調整比例

Before the glyphs for Ⅷ and Ⅻ depending on the font would always overlap the following cells

已重新調整比例

After the glyphs for Ⅷ and Ⅻ depending on the font are rescaled horizontally to fit a single cell

重新調整比例發生的規則仍在調整中,我們正在考慮在未來規則完善時預設啟用此功能。如果您嘗試使用此功能,並看到不應該重新調整比例的字元被重新調整比例,請建立問題

本機工作區擴充功能

我們很高興推出這項新的預覽功能,可讓您直接在工作區中封裝擴充功能。此功能旨在滿足您的特定工作區需求,並提供更量身打造的開發體驗。

若要使用此功能,您需要將擴充功能封裝在工作區內的 .vscode/extensions 資料夾中。然後,VS Code 會在「擴充功能」檢視的 **工作區建議** 區段中顯示此擴充功能,使用者可以從該處安裝它。VS Code 僅針對該工作區安裝此擴充功能。它也要求使用者在安裝和執行此擴充功能之前信任工作區。

例如,請考慮 VS Code 存放庫 中的 vscode-selfhost-test-provider 擴充功能。此擴充功能插入測試功能,讓貢獻者可以直接在工作區中檢視和執行測試。以下螢幕擷取畫面顯示「擴充功能」檢視的「工作區建議」區段中的 vscode-selfhost-test-provider 擴充功能,以及安裝它的功能。

Local Workspace Extension

此功能透過 extensions.experimental.supportWorkspaceExtensionsInsiders 版本中提供預覽。試用看看,並在 VS Code 存放庫 中建立問題,讓我們知道您的意見反應。

建議的 API

終端機 Shell 整合 API

現在有一個新的建議 API 可用,可讓您存取 Shell 整合啟用終端機所提供的一些資訊。透過此 API,可以監聽終端機中執行的命令的傳入資料和結束代碼。它也引入了一種更可靠的方式來執行命令,這些命令會等待提示字元可用,然後才傳送命令,這有助於修正各種 Shell 設定中可能發生的一些衝突/競爭條件。

以下是使用 Terminal.shellIntegration.executeCommand 建議的範例

// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
  if (terminal === myTerm) {
    const command = shellIntegration.executeCommand('echo "Hello world"');
    const code = await command.exitCode;
    console.log(`Command exited with code ${code}`);
  }
}));

// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
  if (!myTerm.shellIntegration) {
    myTerm.sendText('echo "Hello world"');
    // Without shell integration, we can't know when the command has finished or what the
    // exit code was.
  }
}, 3000);

以下是監聽命令資料串流的範例

// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
  if (execution.terminal === myTerm) {
    const stream = execution.createDataStream();
    for await (const data of stream) {
      console.log(data);
    }
  }
});

您可以在這裡檢閱新的 API。

驗證 API 的「瞭解詳情」屬性

在這次反覆運算中,我們新增了一個新的建議 API,可讓您在 AuthenticationForceNewSessionOptions 中指定 learnMore 屬性。其概念是,如果您使用選項中的 forceNewSession 屬性呼叫 getSession,您可以包含一個 URI,該 URI 將呈現給使用者,以瞭解更多關於您為何要求驗證的資訊。以下是其外觀範例:

Screenshot of a modal window that's asking to authenticate with GitHub and that contains a Learn more button

以下是以程式碼呈現的外觀:

vscode.authentication.getSession('github', ['repo'], {
  forceNewSession: {
    detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
    learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
  };
});

您可以在這裡檢閱新的 API。

過時的註解

新的註解執行緒 applicability 屬性可讓註解執行緒在「註解」檢視中標示為過時。

Outdated comment in the Comments view

您可以在這裡查看 API 建議。

註解檢視選單

建議的 commentsView/commentThread/context 選單可讓動作新增至「註解」檢視中註解執行緒的右鍵內容選單。「inline」群組也會受到尊重,以便動作以內嵌方式顯示在「註解」檢視中。

Example of an inline action in the Comments view

工程

Electron 28 更新

在這次反覆運算中,我們正在將 Electron 28 更新推廣給穩定版本的使用者。此更新隨附 Chromium 120.0.6099.291 和 Node.js 18.18.2。我們要感謝所有在 Insiders 組建上自我託管並提供早期意見反應的使用者。

重大修正

  • 204886 在簡單檔案選取器中開啟不同路徑但名稱相同的檔案失敗

感謝您

最後但同樣重要的是,衷心 *感謝* VS Code 的貢獻者。

問題追蹤

對我們問題追蹤的貢獻

提取要求

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-eslint 的貢獻

vscode-extension-samples 的貢獻

vscode-hexeditor 的貢獻

vscode-js-debug 的貢獻

vscode-json-languageservice 的貢獻

vscode-pull-request-github 的貢獻

vscode-pylint 的貢獻

vscode-python-debugger 的貢獻

debug-adapter-protocol 的貢獻

inno-updater 的貢獻

language-server-protocol 的貢獻

monaco-editor 的貢獻

貢獻至 node-pty