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

2024 年 8 月(版本 1.93)

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

下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | 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 Chat 收到了與您預期不符的回覆?透過選擇聊天回覆工具欄上的踩踩按鈕來幫助我們。現在,它會顯示一個下拉選單,其中包含一些詳細選項,供您描述問題。您也可以從此選單中開啟問題報告器。

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 Chat 自動將您的問題路由到合適的參與者或聊天命令。

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 和包型別

VS Code for the Web 上使用 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 主題鍵進行配置。

Notebook

在差異檢視中顯示或隱藏未更改的單元格

筆記本差異檢視現在隱藏未更改的單元格,這使您能夠專注於更改的單元格。同時,所有未更改單元格的輸入始終摺疊。

在差異檢視中管理空格

筆記本差異檢視現在遵守以下設定:

筆記本執行計數粘性滾動

當向下滾動程式碼單元格時,程式碼單元格的執行計數現在會粘在螢幕底部。這使得在長程式碼單元格中工作時更容易檢視執行狀態和更新。

任務

程序退出時保持任務終端開啟

如果任務的終端程序以非零程式碼退出,我們現在會保持終端開啟以方便除錯。

除錯

跳轉到變數定義

除錯擴充套件現在可以將變數和表示式連結到程式碼中的位置。在“變數”檢視、“監視”檢視和“除錯控制檯”中,帶有此連結的資料可以按住 Ctrl 鍵(macOS 上按住 Cmd 鍵)進行選擇。

內建的 JavaScript 偵錯程式將連結程式碼中定義的函式位置,其他除錯擴充套件需要採用相應的協議更改才能啟用此功能。

查詢控制元件

您現在可以在“除錯控制檯”中開啟“查詢”控制元件(⌥⌘F(Windows、Linux Ctrl+Alt+F)以在輸入中搜索結果。將來會研究支援在輸出中搜索結果。

您還可以透過“除錯控制檯”工具欄右側“過濾器”控制元件旁邊的操作 除錯控制檯:聚焦查詢 訪問該控制元件。

啟動配置輸入快取

啟動配置和任務中使用的輸入變數現在會保留其上次輸入的值,以簡化重新執行依賴於它們的除錯會話的過程。這僅在輸入上沒有明確定義 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 鍵(macOS 上按住 Cmd 鍵)選擇程式碼以轉到其原始位置,或在其標題上使用轉到檔案操作。

編輯器顯示測試失敗訊息和導致失敗的相應呼叫堆疊。 主題: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) 作為功能齊全的開發環境。

亮點包括:

  • Dev Container 模板的可選路徑
  • 使用 SSH 擴充套件了遠端作業系統的相容性

您可以在遠端開發發行說明中瞭解有關這些功能的更多資訊。

Web 版 VS Code

當在 https://vscode.dev 上或在桌面版中使用 GitHub Repositories 擴充套件瀏覽 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 鍵(macOS 上按住 Cmd 鍵)單擊來更方便地導航到型別的定義。

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

除錯測試時支援重啟

您現在可以在透過除錯工具欄控制元件除錯測試時重新啟動偵錯程式。

GitHub 拉取請求和議題

GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。查閱擴充套件 0.96.0 版本的更新日誌以瞭解亮點。

擴充套件創作

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

我們正在將 VS Code 核心程式碼的載入方式從 AMD/CommonJS 更改為 ESM。擴充套件將繼續作為 CommonJS 載入,但此更改會伴隨著 require 方法的更改:具體來說,require.main 將從我們的 1.94 版本開始變為 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 設定為 true 時,事情變得更流暢。 cd 到 docs 將把 docs 作為首要結果。
  • 在命令列上不同位置請求建議時,建議現在更加一致。
  • 在向後導航目錄時,會為 /../ 提供補全。 cd ..\ 將提供 ..\..\ 的建議。

Conpty 隨產品釋出

Conpty 是終端的後端,它模擬偽終端在其他作業系統上的工作方式。此元件隨 Windows 本身一起釋出,這意味著錯誤修復透過 Windows 更新發布。使用者可能需要很長時間才能獲得這些修復。

此版本中,我們有一個實驗性設定,它將 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 擴充套件

新的問題報告器實現

在此里程碑中,我們正在試驗新的問題報告器實現。功能保持不變,但應該有一些改進,例如改進了多顯示器支援,以及在 VS Code for the Web 中提供問題報告器。

新版本的問題報告器預設啟用,可以在 VS Code 的桌面版本中使用 issueReporter.experimental.auxWindow 設定進行配置。

提議的 API

語言模型工具

我們繼續對 LanguageModelTool API 進行迭代。該 API 包含兩個主要部分:

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

  2. 語言模型支援工具的機制,例如擴充套件在發出請求時傳遞工具、語言模型請求工具呼叫以及擴充套件傳回工具呼叫結果。

本月新增的更改之一是使用者可以手動將某些工具附加到其聊天請求的能力。一個示例是,使用者希望在其請求中使用計算某些動態上下文的工具。

該提案可在 vscode.proposed.lmTools.d.ts 中找到。檢視tool-user 示例擴充套件,它演示了註冊和呼叫工具。

關注 問題 #213274 以獲取更新或向我們提供反饋。

注意:API 仍在積極開發中,內容可能會發生變化。

測試增強功能

將程式碼關聯到測試

我們正在開發一個 API,允許擴充套件將程式碼關聯到測試,反之亦然。這使使用者可以在兩者之間跳轉,並啟用諸如在游標處執行測試之類的操作,使其在實現程式碼中也能工作。我們預計隨著 API 的發展會構建更多體驗。

檢視 vscode#126932 獲取更多資訊和更新。

可歸因測試覆蓋率

我們正在開發一個 API,用於按測試歸因測試覆蓋率。這使使用者能夠檢視哪些測試運行了哪些程式碼,過濾編輯器中顯示的覆蓋率以及測試覆蓋率檢視中的覆蓋率。

檢視 vscode#212196 獲取更多資訊和更新。

聊天參與者檢測 API

如果您正在編寫一個為聊天檢視貢獻參與者或聊天命令的擴充套件,您可以透過在 package.json 中向您的 chatParticipants 貢獻新增元資料來啟用您的參與者和命令的自動檢測。我們已更新 vscode-extension-samples 儲存庫,其中包含有關如何採用此 API 的示例。測試時,請務必設定 chat.experimental.detectParticipant.enabled。請注意,這是一個提議的 API,可能會發生變化。

網站

我們修復了 VS Code API 頁面下的幾個連結。泛型型別和函式的連結再次有效,並且原始型別和值不再格式化為連結!

工程

VS Code 使用 ESM 的進展

在此里程碑中,我們完成了 VS Code Core 採用 ESM 的大部分工作。我們的目標是使用 ECMAScript 模組 (ESM) 載入並完全放棄 AMD。我們將在 9 月開始釋出支援 ESM 的 Insider 版本,並計劃在 10 月的下一次釋出中將 ESM 推送到穩定版。

我們釋出 ESM 的計劃記錄在 https://github.com/microsoft/vscode/issues/226260。

值得注意的修復

感謝

最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

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 的貢獻