🚀 在 VS Code 中

2024 年 8 月 (版本 1.93)

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

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


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

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

協助工具

透過鍵盤調整表格欄寬

新的命令 list.resizeColumn 可讓您使用鍵盤調整欄寬。當您觸發此命令時,選取您要調整大小的欄,並提供您要設定的寬度百分比。以下影片示範如何應用此功能來調整鍵盤快速鍵編輯器中的欄寬。

螢幕閱讀器支援合成聊天回應

我們已更新 accessibility.voice.autoSynthesize 設定,讓螢幕閱讀器使用者可以選擇加入聆聽我們的合成器宣告的聊天回應,而不是取得 aria 警示。

偵錯改進

當您在編輯器中偵錯且焦點在編輯器中時,叫用偵錯:新增至監看式命令現在會為螢幕閱讀器使用者宣告變數的值。

此外,偵錯協助工具說明對話方塊也已改進,以提高完整性。

工作台

新的設定檔編輯器

新的設定檔編輯器現在已正式對所有 Visual Studio Code 使用者開放。新的設定檔編輯器可讓您從單一位置管理設定檔。此體驗包括建立新的設定檔、編輯和刪除現有的設定檔,以及匯入和匯出設定檔以與其他人共用。如需詳細資訊,請參閱設定檔文件

Screenshot that shows the Profiles editor.

Linux 支援視窗控制項覆蓋

新的設定 window.experimentalControlOverlay 可讓原生視窗控制項顯示,即使透過 window.titleBarStyle 設定啟用自訂標題列也是如此。

Screenshot of VS Code on Linux, highlighting the Linux window control overlays in the top-right corner.

在預設情況下,我們尚未在 Linux 上預設啟用自訂標題,但我們計劃最終這樣做。一旦您開啟自訂標題,原生視窗控制項覆蓋就會自動顯示。我們歡迎您在使用此新功能時提供的任何意見反應!

註解排序

註解現在可以依其在檔案中的位置或日期排序。

Screenshot that shows the additional comment sorting options.

從設定編輯器複製設定 URL

您可以從設定編輯器複製特定設定的直接 URL。當您導覽至設定 URL 時,它會開啟 VS Code 並將焦點放在設定編輯器中的對應設定。

Video that shows how to copy a setting URL in the Settings editor.

在總管中反向排序

我們新增了一個額外的排序選項 explorer.sortOrderReverse,可讓您反轉任何各種總管排序組態,從而提供更進階的排序彈性。

編輯器

燈泡改進

在上一個里程碑中,我們改進了程式碼動作燈泡圖示的顯示位置。我們現在已決定將 editor.lightbulb.enabled 預設設定為 onCode。這表示燈泡圖示只會在游標位於具有原始碼的行上時顯示,並且顯示頻率會降低。

動作清單的色彩主題

動作清單控制項 (例如程式碼動作功能表) 的色彩可以透過主題使用 editorActionList.backgroundeditorActionList.foregroundeditorActionList.focusForegroundeditorActionList.focusBackground 索引鍵進行設定。根據預設,動作清單控制項主題會與快速選取和命令調色盤的主題相符。取得關於自訂色彩主題的更多資訊。

GitHub Copilot

在此里程碑中,我們持續改進 VS Code 中 GitHub Copilot 的體驗,包括編輯器、聊天檢視和內嵌聊天。我們也新增了一些實驗性功能供您試用,並希望獲得您的意見反應。

改進的測試產生

透過 GitHub Copilot,您可以為您的程式碼產生測試,方法是在編輯器內容功能表中使用使用 Copilot 產生測試動作,或在內嵌聊天中使用 /tests 斜線命令。

我們改進了測試產生流程,方法是尋找現有的測試檔案,並將新的測試產生到該檔案中,並將其附加在結尾。如果還沒有測試檔案,Copilot 會為產生的測試建立新的測試檔案。

重新命名用於產生測試和文件的程式碼動作

當您將游標放在識別碼 (例如方法名稱) 上時,GitHub Copilot 會提供程式碼動作來產生測試或文件。為了更清楚地反映其用途,我們將這些程式碼動作重新命名為使用 Copilot 產生測試使用 Copilot 產生文件。先前,這些名稱分別為使用 Copilot 測試使用 Copilot 文件

New code action names for test and documentation generation

改進的聊天記錄

您可以透過聊天檢視頂端的顯示聊天按鈕,從聊天記錄開啟先前的聊天工作階段。這些工作階段現在具有更友善使用者的 AI 產生名稱。您也可以透過選取每一列上的鉛筆圖示來手動重新命名工作階段。

這些聊天記錄項目現在也會依其上次請求的日期排序,並依日期區隔標示和分組。

The chat history picker shows friendly session names and entries are grouped by age.

注意:只有新的聊天工作階段會取得 AI 產生名稱,您已有的任何聊天工作階段都不會重新命名。

儲存空白視窗的聊天工作階段

先前,VS Code 不會儲存空白視窗 (沒有開啟資料夾或工作區) 的聊天工作階段。現在,這些工作階段會如預期般儲存,而且可以透過顯示聊天按鈕載入來自空白視窗的先前聊天。

注意:您應避免同時在多個空白視窗中開啟和使用相同聊天工作階段。

在快速聊天中附加內容

使用快速聊天時,您現在可以使用附加內容動作來將檔案和符號等內容附加到您的 Copilot 請求。

不讚賞意見反應詳細資訊

您是否從 Copilot 聊天收到不符合您預期的回應?請透過選取聊天回應工具列上的不讚賞按鈕來協助我們。現在,它會顯示一個下拉式選單,其中包含一些詳細選項供您描述問題。您也可以從此選單開啟問題回報工具。

The chat response feedback dropdown, showing extra details on the thumbs down button.

程式碼產生指示 (實驗功能)

設定github.copilot.chat.experimental.codeGeneration.instructions

Copilot 可以協助您產生程式碼,例如作為重構、產生單元測試或實作功能的一部分。而且您可能想要使用特定的程式庫,或想要為 Copilot 產生的程式碼遵循特定的程式碼撰寫風格。

實驗性設定 github.copilot.chat.experimental.codeGeneration.instructions 可讓您定義一組指示,這些指示會新增至每個產生程式碼的 Copilot 請求。

指示可以在使用者或工作區設定中定義,也可以從檔案匯入。

下列程式碼片段示範如何從設定和外部檔案定義一組指示

  "github.copilot.chat.experimental.codeGeneration.instructions": [
    {
      "text": "Always add a comment: 'Generated by Copilot'."
    },
    {
      "text": "In TypeScript always use underscore for private field names."
    },
    {
      "file": "code-style.md" // import instructions from file `code-style.md`
    }
  ],

myProject/code-style.md 的內容

Always use React functional components.
Always add comments.

在螢幕擷取畫面中,您可以從參考章節看到已使用指示

Copilot Chat using code generation instructions.

聊天檢視中的自動聊天參與者偵測 (實驗功能)

設定chat.experimental.detectParticipant.enabled

GitHub Copilot 有多個內建聊天參與者,例如 @workspace,這些參與者也會將命令貢獻給聊天檢視。先前,您必須在聊天提示中明確指定聊天參與者和命令。

為了讓使用者更輕鬆地以自然語言使用聊天參與者,在接下來的幾週內,我們將實驗啟用 Copilot 聊天,以自動將您的問題路由至合適的參與者或聊天命令。

Screenshot of Chat view that shows how the '@workspace' participant is automatically detected.

如果自動選取的參與者不適合您的問題,您可以選取聊天回應頂端的重新執行 (不含) 連結,將您的問題重新傳送至 Copilot。

使用最近撰寫程式碼的檔案作為內嵌聊天內容 (實驗功能)

設定github.copilot.chat.experimental.temporalContext.enabled

通常,當您提示 Copilot 時,您會詢問與您剛才正在處理或查看的程式碼相關的問題。內嵌聊天現在可以使用最近看過或編輯過的程式碼作為內容,以提供更相關的建議。

此功能仍為實驗性功能,但也適合所有人測試。

使用目前的編輯器行作為內嵌聊天提示 (實驗功能)

設定github.copilot.config.experimental.inlineChatCompletionTrigger.enabled

您現在可以直接在編輯器中開始輸入,並使用目前行的內容直接作為內嵌聊天的提示,而無需先開啟內嵌聊天再輸入您的聊天提示。為了獲得更流暢的聊天體驗,Copilot 可以偵測您何時正在提示而不是撰寫程式碼,然後自動為您啟動內嵌聊天。

您可以使用目前行作為內嵌聊天提示的不同方式如下

  • 命令調色盤 (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 輸入內嵌聊天:在編輯器中以目前行開始
  • inlineChat.startWithCurrentLine 命令設定鍵盤快速鍵,並將其與 inlineChatExpansion 內容索引鍵結合
  • 啟用 github.copilot.config.experimental.inlineChatCompletionTrigger.enabled 設定,讓 Copilot 偵測到目前行主要包含文字而不是原始碼,然後啟動內嵌聊天。

以下影片示範 Copilot 如何在偵測到目前行主要包含文字時建議啟動內嵌聊天。

從聊天開始偵錯 (實驗功能)

設定github.copilot.advanced.startDebugging.experimental.enabled

@vscode 聊天參與者上提供新的實驗性斜線命令 /startDebugging。此命令可讓您建立啟動組態並開始偵錯您的應用程式。

您也可以透過建立 launch.json 快速選取中的使用 GitHub Copilot 產生偵錯組態選項來存取此命令。

Generate Debug Configuration with GitHub Copilot is an option in the Create a launch.json file Quick Pick.

根據測試涵蓋率產生測試 (實驗功能)

設定github.copilot.chat.experimental.generateTests.codeLens

如果測試涵蓋率資訊可用,GitHub Copilot 可以為尚未由測試涵蓋的函式和方法提供 CodeLens 使用 Copilot 產生測試

語言

將「SQL」重新命名為「MS SQL」

SQL 檔案的語言名稱已從「SQL」重新命名為「MS SQL」,以更清楚地反映語言對 Microsoft SQL Server (T-SQL) 語法的關注。此語言模式的副檔名仍為 .sql,而語法醒目提示保持不變。

vscode.dev 上的完整專案 IntelliSense 和套件類型定義

適用於 Web 的 VS Code 上使用 JavaScript 和 TypeScript 變得更好了。首先,我們已實作套件 IntelliSense,因此您可以查看來自任何匯入套件 (例如 react) 的建議和文件。這與 VS Code 的桌面版本中的運作方式非常相似。

IntelliSense and error reporting for an imported package on vscode.dev.

在 TypeScript 檔案中,我們為 package.json 中列出的套件提供 IntelliSense。JavaScript 檔案更具彈性,並使用自動類型取得,這會為匯入目前檔案中的任何套件提供 IntelliSense,即使它未列在 package.json 中也是如此。

由於套件 IntelliSense,我們也為 JavaScript 和 TypeScript 專案啟用了完整專案 IntelliSense。這大幅改進了程式碼導覽,可讓您正確地前往定義尋找所有參考專案中的任何符號。它也啟用類型錯誤報告。我們現在甚至支援在撰寫程式碼時自動匯入。

Finding all references of a symbol in a TypeScript project.

Chrome、Microsoft Edge 和 Firefox 支援套件類型定義和完整專案 IntelliSense。Safari 尚不支援,因為它未實作 ReadableByteStreamController

原始檔控制

原始檔控制圖表檢視

根據使用者意見反應,我們已將上一個里程碑中啟用的歷程記錄圖表從原始檔控制檢視移至名為原始檔控制圖表的新檢視。這減少了主要檢視中的資訊過載,並可讓您視需要隱藏/摺疊/移動新檢視。這也為功能完整的歷程記錄圖表奠定了基礎。

原始檔控制圖表檢視目前顯示目前分支的遠端/基準。在下一個里程碑中,我們正努力新增篩選圖表至任何存放庫參考的功能,並改進具有多個存放庫的工作區體驗。

Source Control Graph view showing a graph visualization of the repository.

主題:GitHub Sharp (在 vscode.dev 上預覽)

支援 reftable 格式

Git 2.45 新增了對名為「reftable」的新參考儲存後端的初步支援。在此里程碑中,我們更新了內建 Git 擴充功能以支援此新的參考儲存後端。

使用 Git 2.45,您可以建立或複製使用新參考儲存後端的存放庫,並使用 --ref-format=reftable 旗標。Git 2.46 也新增了透過使用 git refs migrate 命令將現有存放庫移轉為使用新的參考儲存格式的支援。

請注意,新的參考儲存後端仍被視為實驗性功能。

精簡資料夾設定

感謝社群貢獻,我們新增了一個新設定 scm.compactFolders,以控制在將變更視為樹狀結構檢視時,資料夾是否以精簡形式在原始檔控制檢視中呈現。

終端機

Julia 和 NuShell 支援

現在提供 Julia 和 NuShell 的 Shell 整合支援。這為這些 Shell 類型啟用了命令裝飾執行最近的命令等功能。

移動多個終端機索引標籤

您現在可以多選終端機索引標籤,並將它們作為已排序的群組在終端機清單中移動。

命令指南設定和色彩主題

命令指南是一個橫條,會在滑鼠停留在命令及其輸出上方時顯示在命令及其輸出旁邊。您現在可以使用 terminal.integrated.shellIntegration.showCommandGuide 設定停用命令指南,並且可以透過主題使用 terminalCommandGuide.foreground 主題索引鍵來設定色彩。

筆記本

在差異檢視中顯示或隱藏未變更的儲存格

筆記本差異檢視現在會隱藏未變更的儲存格,讓您可以專注於已變更的儲存格。同時,所有未變更儲存格的輸入都會一律摺疊。

管理差異檢視中的空白字元

筆記本差異檢視現在會遵循下列設定

筆記本執行計數的固定捲動

當向下捲動程式碼儲存格時,程式碼儲存格的執行計數現在會固定在螢幕底部。這讓您在處理長程式碼儲存格時,更容易查看執行狀態和更新。

工作

在處理序結束時保持工作終端機開啟

如果工作的終端機處理序以非零程式碼結束,我們現在會保持終端機開啟,以便更輕鬆地進行偵錯。

偵錯

跳到變數定義

偵錯擴充功能現在可以將變數和運算式連結到程式碼中的位置。具有此連結的資料在變數檢視、監看式檢視和偵錯主控台中是 Ctrl 可選取的 (Cmd 在 macOS 上為可選取)。

內建 JavaScript 偵錯工具會連結程式碼中定義的函式位置。其他偵錯擴充功能需要採用對應的協定變更才能啟用此功能。

尋找控制項

您現在可以在偵錯主控台中開啟尋找控制項 (⌥⌘F (Windows、Linux Ctrl+Alt+F)),以搜尋輸入中的結果。未來里程碑將研究支援搜尋輸出中的結果。

您也可以透過出現在偵錯主控台工具列上篩選控制項右側的動作 Debug Console: Focus Find 來存取控制項。

啟動組態輸入快取

用於啟動組態和工作中的輸入變數現在會持續保存其上次輸入的值,以簡化重新執行依賴它們的偵錯工作階段的流程。只有在輸入上沒有定義明確的 default 時,才會執行此動作。

JavaScript 偵錯工具

實驗性網路檢視

JavaScript 偵錯工具現在包含一個基本的實驗性網路檢視,當 debug.javascript.enableNetworkView 設定開啟時可用。此檢視會顯示瀏覽器工作階段所發出之要求和回應的相關資訊。

顯示 JavaScript 偵錯工具網路檢視的螢幕擷取畫面。 主題:Codesong (在 vscode.dev 上預覽)

當處理序使用 --experimental-network-inspection 在其引數中啟動時,網路檢視也適用於 Node.js 22.6.0 及更高版本,例如透過在 node 啟動組態中新增 "runtimeArgs": ["--experimental-network-inspection"]

注意:Node 的網路實作仍處於非常早期的階段,而且大多數關於要求和回應的資料尚不可用。

測試

支援訊息上的堆疊追蹤

測試擴充功能現在可以將堆疊追蹤與測試失敗建立關聯。當它們這樣做時,您會在測試結果檢視和錯誤預覽中看到呼叫堆疊每個框架周圍的程式碼。您可以 Ctrl 選取 (Cmd 在 macOS 上為選取) 檢視中的程式碼以移至其原始位置,或使用標頭上的前往檔案動作。

編輯器顯示測試失敗訊息和導致失敗的對應呼叫堆疊。 主題:Codesong (在 vscode.dev 上預覽)

安裝程式

Debian 套件現在會提示您確認是否要新增 packages.microsoft.com 存放庫。這可讓您稍後使用 apt 更新套件。

Terminal showing the prompt for adding the Microsoft packages repo during the install.

遠端開發

遠端開發擴充功能可讓您使用 開發容器、透過 SSH 或 遠端通道的遠端機器,或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能完整的開發環境。

重點包括

  • 開發容器範本的選用路徑
  • 透過 SSH 擴展遠端作業系統的相容性

您可以在遠端開發發行說明中深入瞭解這些功能。

適用於 Web 的 VS Code

當在 https://vscode.dev 上瀏覽 GitHub 存放庫或在桌面上使用 GitHub 存放庫擴充功能時,現在會遵循 git.openDiffOnClick 設定。

Open diff by selecting Open Changes for changed resources.

擴充功能的貢獻

Python

Django 單元測試支援

我們很高興宣布支援我們最受歡迎的功能之一:您現在可以透過測試總管探索和執行 Django 單元測試!如需關於如何啟用此功能的設定指示,請查看我們的文件

在測試總管中探索和執行 Django 單元測試。 主題:Catppuccin Macchiato (在 vscode.dev 上預覽)

當您探索此新新增功能時,請提供意見反應並在我們的 vscode-python 存放庫中回報任何問題,或使用Python:回報問題命令。

原生 REPL 改進

我們對新的原生 REPL 體驗進行了更多改進和錯誤修正。我們正在推出原生 REPL 作為 智慧傳送的預設目標作為實驗,但如果您有興趣試用此功能,您可以在使用者 settings.json 中設定 python.REPL.sendToNativeREPL 並重新載入您的 VS Code 視窗。

使用 Pylance 從內嵌提示前往定義

當使用 Pylance 啟用內嵌提示時,您現在可以更方便地導覽至類型的定義,方法是將滑鼠停留在其上方,並在按住 Ctrl (Cmd 在 macOS 上) 的同時按一下。

Go to Definition supported by using Ctrl/Cmd + click when hovering over a Python type on an inlay hint.

偵錯測試時的重新啟動支援

您現在可以在透過偵錯工具列控制項偵錯測試時重新啟動偵錯工具。

GitHub Pull Requests and Issues

GitHub Pull Requests 擴充功能上取得了更多進展,可讓您處理、建立和管理提取要求和問題。檢閱擴充功能 0.96.0 版本的變更記錄,以瞭解重點。

擴充功能撰寫

VS Code 的 EcmaScript 模組 (ESM) 載入的影響

我們正在變更程式碼在 VS Code 核心中的載入方式,從 AMD/CommonJS 變更為 ESM。擴充功能將繼續以 CommonJS 載入,但此變更會對 require 方法帶來變更:具體而言,從我們的 1.94 版本開始,require.main 將會是 undefined。如果您有從安裝存取檔案的使用案例,請考慮改用 vscode.env.appRoot與我們聯絡

終端機 Shell 整合 API

終端機 Shell 整合 API 現在可供使用。此強大的 API 可讓擴充功能接聽在終端機中執行的命令、讀取其原始輸出、結束代碼和命令列。

window.onDidEndTerminalShellExecution(event => {
  if (event.execution.commandLine.value.startsWith('git')) {
    if (event.exitCode === 0) {
      // React to a successful git command
    } else {
      // React to a failing git command
    }
  }
});

它也提供更可靠的命令執行方式,這將會等待提示符號開始,然後再傳送命令,防止命令額外回顯到終端機。

const commandLine = 'echo "Hello world"';
if (term.shellIntegration) {
  const execution = shellIntegration.executeCommand({ commandLine });
  window.onDidEndTerminalShellExecution(event => {
    if (event.execution === execution) {
      console.log(`Command exited with code ${event.exitCode}`);
    }
  });
} else {
  term.sendText(commandLine);
  // Without shell integration, we can't know when the command has finished or what the
  // exit code was.
}

請參閱 vscode.d.ts 中的 API 和擴充功能範例以取得更多資訊。

驗證帳戶 API

驗證 API 現在在處理多個帳戶時具有更多控制權。一直以來缺少的是取得所有帳戶並取得特定帳戶的 AuthenticationSession 的能力。現在可以透過 getAccounts API 的最終確定來實現。

尋求使用驗證工作階段的擴充功能作者可以執行下列程式碼,以取得使用者登入之帳戶的 AuthenticationSessionAccountInformation

const accounts = vscode.authentication.getAccounts('microsoft');

從那裡,您可以使用這些帳戶來專門為這些帳戶建立工作階段

const session = vscode.authentication.getSession('microsoft', scopes, {
  account: accounts[0]
});

注意:為了讓此功能運作,驗證提供者需要處理傳遞至 getSessionscreateSession 的參數。內建 GitHub 和 Microsoft 提供者已採用此功能。

我們相信這是處理多個驗證工作階段,以及處理我們之前無法支援的各種案例的最清楚方式。

偵錯配接器協定

我們在偵錯配接器協定中的變數和其他資料類型中新增了 locationReferences,以啟用關聯來源位置。

VS Code 中的 WebAssembly

wasm-wasi-core 擴充功能的 1.0 版本,連同 @vscode-wasm-wasi@vscode/wasm-component-model npm 模組已發布。使用範例可以在 vscode-extension-samples 儲存庫的 wasm-* 子資料夾中找到。在 VS Code 部落格 上也有幾篇關於如何在 VS Code 擴充功能內使用 WebAssembly 程式碼的文章。

預覽功能

終端機 IntelliSense 改善

實驗性 PowerShell IntelliSense 在此版本中獲得了以下改進

  • git checkout 現在包含 - 的完成功能,以切換到上一個分支。
  • terminal.integrated.suggest.runOnEnter 的預設值現在設定為 ignore,這表示 Enter 完全不會與 IntelliSense 互動。這是來自使用者的回饋,他們發現此變更對肌肉記憶的影響太過干擾。
  • PowerShell 關鍵字現在可用作命令(而非引數)的完成項目。
  • cd 第一個目錄建議現在永遠是自身,這使得當 terminal.integrated.suggest.runOnEnter 設定時更加順暢。 cd into docs 將會把 docs 作為最上層結果呈現。
  • 當在命令列上的不同位置請求建議時,建議現在更加一致。
  • 當導航回目錄時,為 <path>/../ 提供了一個完成項目。 cd ..\ 將會給出 ..\..\ 的建議。

Conpty 在產品中發布

Conpty 是終端機的後端,它模擬了虛擬終端機在其他作業系統上的運作方式。此元件隨 Windows 本身一起發貨,這表示錯誤修復會透過 Windows Update 發布。使用者可能最終需要等待很長時間才能收到這些修復。

在此版本中,我們有一個實驗性設定,將 conpty 與 VS Code 本身捆綁在一起,類似於 Windows Terminal 的做法。這表示使用者可以在我們發布 VS Code 更新時獲得錯誤修復,而不必等待 Windows 更新。

若要啟用此功能,請將以下設定設定為 true

"terminal.integrated.experimental.windowsUseConptyDll": true

您應該期望啟用此功能後獲得的改進類型包括

  • 更佳的效能
  • 更可靠的 Shell 整合
  • 更多逸出序列支援(例如,Windows 上即將推出的 sixel 支援)

目前唯一已知的問題是,某些使用者有一個程序會持續存在並阻止 VS Code 更新 (microsoft/vscode#225719),這需要手動終止該程序才能啟用更新。

TypeScript 5.6 支援

我們持續改進對即將發布的 TypeScript 5.6 的支援。請查看 TypeScript 5.6 RC 部落格文章,以了解此版本包含的詳細資訊。

若要開始使用 TypeScript 5.6 的預覽版本,請安裝 TypeScript Nightly 擴充功能

新的 Issue Reporter 實作

在此里程碑中,我們正在實驗 Issue Reporter 的新實作。功能保持不變,但應該有一些改進,例如改進的多螢幕支援,以及在 VS Code for the Web 中提供 Issue Reporter。

新版本的 Issue Reporter 預設為啟用,並且可以使用桌面版 VS Code 中的 issueReporter.experimental.auxWindow 設定進行配置。

建議的 API

語言模型工具

我們繼續迭代我們的 LanguageModelTool API。此 API 包含兩個主要部分

  1. 擴充功能註冊工具的能力。工具是一項旨在由語言模型使用的功能。例如,讀取檔案的 Git 歷史記錄。

  2. 語言模型支援工具的機制,例如擴充功能在發出請求時傳遞工具、語言模型請求工具調用,以及擴充功能將工具調用的結果傳回。

本月新增的變更之一是使用者可以手動將某些工具附加到其聊天請求。這方面的一個範例是一個工具,它可以計算使用者想要在其請求中使用的某些動態上下文。

提案可以在 vscode.proposed.lmTools.d.ts 中找到。查看 tool-user 範例擴充功能,其中示範了註冊和調用工具。

關注 issue #213274 以獲取更新或向我們提供回饋。

注意:此 API 仍在積極開發中,並且內容將會變更。

測試增強功能

將程式碼與測試關聯

我們正在開發一個 API,使擴充功能能夠將程式碼與測試關聯,反之亦然。這讓使用者可以在兩者之間跳轉,並啟用諸如在游標處執行測試等動作,以便在實作程式碼中也能運作。我們預計隨著 API 的發展,將會建立更多體驗。

查看 vscode#126932 以取得更多資訊和更新。

可歸屬的測試覆蓋率

我們正在開發一個 API,用於在每個測試的基礎上歸屬測試覆蓋率。這讓使用者可以看到哪些測試執行了哪些程式碼,從而過濾編輯器中顯示的覆蓋率以及測試覆蓋率視圖中的覆蓋率。

查看 vscode#212196 以取得更多資訊和更新。

聊天參與者偵測 API

如果您正在撰寫一個將參與者或聊天命令貢獻到「聊天」視圖的擴充功能,您可以透過將中繼資料新增到 package.jsonchatParticipants 貢獻,來啟用自動偵測您的參與者和命令。我們已使用 範例 更新了 vscode-extension-samples 儲存庫,說明如何採用此 API。在測試時,請務必設定 chat.experimental.detectParticipant.enabled。請注意,這是一個建議的 API,可能會有所變更。

網站

我們修正了 VS Code API 頁面下的幾個連結。通用類型和函式的連結再次運作,且原始類型和值不再格式化為連結!

工程

在 VS Code 中使用 ESM 的進展

在此里程碑中,我們完成了在 VS Code Core 中採用 ESM 的大部分工作。我們的目標是使用 ECMAScript Modules (ESM) 載入並完全捨棄 AMD。我們將在 9 月開始發布啟用 ESM 的 Insider 組建,並計劃在 10 月的下一個版本中將 ESM 發布到 Stable。

我們發布 ESM 的計畫已記錄在 https://github.com/microsoft/vscode/issues/226260 中。

值得注意的修正

感謝您

最後但同樣重要的是,非常感謝 VS Code 的貢獻者。

Issue 追蹤

對我們的 Issue 追蹤的貢獻

Pull Requests

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-eslint 的貢獻

vscode-flake8 的貢獻

vscode-generator-code 的貢獻

vscode-hexeditor 的貢獻

vscode-isort 的貢獻

vscode-js-profile-visualizer 的貢獻

vscode-json-languageservice 的貢獻

vscode-languageserver-node 的貢獻

vscode-loader 的貢獻

vscode-mypy 的貢獻

vscode-pull-request-github 的貢獻

vscode-python-debugger 的貢獻

vscode-vsce 的貢獻

language-server-protocol 的貢獻

python-environment-tools 的貢獻