2024 年 8 月 (版本 1.93)
更新 1.93.1:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Silicon | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2024 年 8 月發行版本。此版本包含許多更新,希望您會喜歡,其中一些重點包括
- 設定檔編輯器 - 從單一位置切換和管理您的設定檔。
- Django 單元測試支援 - 從測試總管探索和執行 Django 單元測試。
- vscode.dev 上的完整專案 IntelliSense 和套件類型定義 - 使用 IntelliSense 增強您在 vscode.dev 中的 JS 和 TS 程式碼撰寫體驗。
- 筆記本差異檢視器 - 透過摺疊未變更的儲存格,有效率地檢閱筆記本中的變更。
- 透過鍵盤調整表格欄寬 - 透過鍵盤更易於存取地調整 VS Code 中的表格欄寬。
- 原始檔控制圖表 - 輕鬆隱藏、摺疊或移動原始檔控制圖表。
- GitHub Copilot - 在快速聊天中新增內容、改進測試產生和聊天記錄。
- 實驗功能:自訂 Copilot 指示 - 為 Copilot 定義特定的程式碼產生指示。
如果您想線上閱讀這些發行說明,請前往 code.visualstudio.com 上的更新。Insiders: 想盡快試用新功能嗎?您可以下載每晚 Insiders 組建版本,並在最新更新可用時立即試用。
協助工具
透過鍵盤調整表格欄寬
新的命令 list.resizeColumn
可讓您使用鍵盤調整欄寬。當您觸發此命令時,選取您要調整大小的欄,並提供您要設定的寬度百分比。以下影片示範如何應用此功能來調整鍵盤快速鍵編輯器中的欄寬。
螢幕閱讀器支援合成聊天回應
我們已更新 accessibility.voice.autoSynthesize
設定,讓螢幕閱讀器使用者可以選擇加入聆聽我們的合成器宣告的聊天回應,而不是取得 aria 警示。
偵錯改進
當您在編輯器中偵錯且焦點在編輯器中時,叫用偵錯:新增至監看式命令現在會為螢幕閱讀器使用者宣告變數的值。
此外,偵錯協助工具說明對話方塊也已改進,以提高完整性。
工作台
新的設定檔編輯器
新的設定檔編輯器現在已正式對所有 Visual Studio Code 使用者開放。新的設定檔編輯器可讓您從單一位置管理設定檔。此體驗包括建立新的設定檔、編輯和刪除現有的設定檔,以及匯入和匯出設定檔以與其他人共用。如需詳細資訊,請參閱設定檔文件。
Linux 支援視窗控制項覆蓋
新的設定 window.experimentalControlOverlay
可讓原生視窗控制項顯示,即使透過 window.titleBarStyle
設定啟用自訂標題列也是如此。
在預設情況下,我們尚未在 Linux 上預設啟用自訂標題,但我們計劃最終這樣做。一旦您開啟自訂標題,原生視窗控制項覆蓋就會自動顯示。我們歡迎您在使用此新功能時提供的任何意見反應!
註解排序
註解現在可以依其在檔案中的位置或日期排序。
從設定編輯器複製設定 URL
您可以從設定編輯器複製特定設定的直接 URL。當您導覽至設定 URL 時,它會開啟 VS Code 並將焦點放在設定編輯器中的對應設定。
在總管中反向排序
我們新增了一個額外的排序選項 explorer.sortOrderReverse
,可讓您反轉任何各種總管排序組態,從而提供更進階的排序彈性。
編輯器
燈泡改進
在上一個里程碑中,我們改進了程式碼動作燈泡圖示的顯示位置。我們現在已決定將 editor.lightbulb.enabled
預設設定為 onCode
。這表示燈泡圖示只會在游標位於具有原始碼的行上時顯示,並且顯示頻率會降低。
動作清單的色彩主題
動作清單控制項 (例如程式碼動作功能表) 的色彩可以透過主題使用 editorActionList.background
、editorActionList.foreground
、editorActionList.focusForeground
和 editorActionList.focusBackground
索引鍵進行設定。根據預設,動作清單控制項主題會與快速選取和命令調色盤的主題相符。取得關於自訂色彩主題的更多資訊。
GitHub Copilot
在此里程碑中,我們持續改進 VS Code 中 GitHub Copilot 的體驗,包括編輯器、聊天檢視和內嵌聊天。我們也新增了一些實驗性功能供您試用,並希望獲得您的意見反應。
改進的測試產生
透過 GitHub Copilot,您可以為您的程式碼產生測試,方法是在編輯器內容功能表中使用使用 Copilot 產生測試動作,或在內嵌聊天中使用 /tests
斜線命令。
我們改進了測試產生流程,方法是尋找現有的測試檔案,並將新的測試產生到該檔案中,並將其附加在結尾。如果還沒有測試檔案,Copilot 會為產生的測試建立新的測試檔案。
重新命名用於產生測試和文件的程式碼動作
當您將游標放在識別碼 (例如方法名稱) 上時,GitHub Copilot 會提供程式碼動作來產生測試或文件。為了更清楚地反映其用途,我們將這些程式碼動作重新命名為使用 Copilot 產生測試和使用 Copilot 產生文件。先前,這些名稱分別為使用 Copilot 測試和使用 Copilot 文件。
改進的聊天記錄
您可以透過聊天檢視頂端的顯示聊天按鈕,從聊天記錄開啟先前的聊天工作階段。這些工作階段現在具有更友善使用者的 AI 產生名稱。您也可以透過選取每一列上的鉛筆圖示來手動重新命名工作階段。
這些聊天記錄項目現在也會依其上次請求的日期排序,並依日期區隔標示和分組。
注意:只有新的聊天工作階段會取得 AI 產生名稱,您已有的任何聊天工作階段都不會重新命名。
儲存空白視窗的聊天工作階段
先前,VS Code 不會儲存空白視窗 (沒有開啟資料夾或工作區) 的聊天工作階段。現在,這些工作階段會如預期般儲存,而且可以透過顯示聊天按鈕載入來自空白視窗的先前聊天。
注意:您應避免同時在多個空白視窗中開啟和使用相同聊天工作階段。
在快速聊天中附加內容
使用快速聊天時,您現在可以使用附加內容動作來將檔案和符號等內容附加到您的 Copilot 請求。
不讚賞意見反應詳細資訊
您是否從 Copilot 聊天收到不符合您預期的回應?請透過選取聊天回應工具列上的不讚賞按鈕來協助我們。現在,它會顯示一個下拉式選單,其中包含一些詳細選項供您描述問題。您也可以從此選單開啟問題回報工具。
程式碼產生指示 (實驗功能)
設定: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.
在螢幕擷取畫面中,您可以從參考章節看到已使用指示
聊天檢視中的自動聊天參與者偵測 (實驗功能)
設定:chat.experimental.detectParticipant.enabled
GitHub Copilot 有多個內建聊天參與者,例如 @workspace
,這些參與者也會將命令貢獻給聊天檢視。先前,您必須在聊天提示中明確指定聊天參與者和命令。
為了讓使用者更輕鬆地以自然語言使用聊天參與者,在接下來的幾週內,我們將實驗啟用 Copilot 聊天,以自動將您的問題路由至合適的參與者或聊天命令。
如果自動選取的參與者不適合您的問題,您可以選取聊天回應頂端的重新執行 (不含) 連結,將您的問題重新傳送至 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 產生偵錯組態選項來存取此命令。
根據測試涵蓋率產生測試 (實驗功能)
設定: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 的桌面版本中的運作方式非常相似。
在 TypeScript 檔案中,我們為 package.json
中列出的套件提供 IntelliSense。JavaScript 檔案更具彈性,並使用自動類型取得,這會為匯入目前檔案中的任何套件提供 IntelliSense,即使它未列在 package.json
中也是如此。
由於套件 IntelliSense,我們也為 JavaScript 和 TypeScript 專案啟用了完整專案 IntelliSense。這大幅改進了程式碼導覽,可讓您正確地前往定義和尋找所有參考專案中的任何符號。它也啟用類型錯誤報告。我們現在甚至支援在撰寫程式碼時自動匯入。
Chrome、Microsoft Edge 和 Firefox 支援套件類型定義和完整專案 IntelliSense。Safari 尚不支援,因為它未實作 ReadableByteStreamController
。
原始檔控制
原始檔控制圖表檢視
根據使用者意見反應,我們已將上一個里程碑中啟用的歷程記錄圖表從原始檔控制檢視移至名為原始檔控制圖表的新檢視。這減少了主要檢視中的資訊過載,並可讓您視需要隱藏/摺疊/移動新檢視。這也為功能完整的歷程記錄圖表奠定了基礎。
原始檔控制圖表檢視目前顯示目前分支的遠端/基準。在下一個里程碑中,我們正努力新增篩選圖表至任何存放庫參考的功能,並改進具有多個存放庫的工作區體驗。
主題: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
主題索引鍵來設定色彩。
筆記本
在差異檢視中顯示或隱藏未變更的儲存格
筆記本差異檢視現在會隱藏未變更的儲存格,讓您可以專注於已變更的儲存格。同時,所有未變更儲存格的輸入都會一律摺疊。
管理差異檢視中的空白字元
筆記本差異檢視現在會遵循下列設定
diffEditor.ignoreTrimWhitespace
- 顯示差異時忽略開頭和結尾 (修剪) 空白字元。
筆記本執行計數的固定捲動
當向下捲動程式碼儲存格時,程式碼儲存格的執行計數現在會固定在螢幕底部。這讓您在處理長程式碼儲存格時,更容易查看執行狀態和更新。
工作
在處理序結束時保持工作終端機開啟
如果工作的終端機處理序以非零程式碼結束,我們現在會保持終端機開啟,以便更輕鬆地進行偵錯。
偵錯
跳到變數定義
偵錯擴充功能現在可以將變數和運算式連結到程式碼中的位置。具有此連結的資料在變數檢視、監看式檢視和偵錯主控台中是 Ctrl 可選取的 (Cmd 在 macOS 上為可選取)。
內建 JavaScript 偵錯工具會連結程式碼中定義的函式位置。其他偵錯擴充功能需要採用對應的協定變更才能啟用此功能。
尋找控制項
您現在可以在偵錯主控台中開啟尋找控制項 (⌥⌘F (Windows、Linux Ctrl+Alt+F)),以搜尋輸入中的結果。未來里程碑將研究支援搜尋輸出中的結果。
您也可以透過出現在偵錯主控台工具列上篩選控制項右側的動作 Debug Console: Focus Find
來存取控制項。
啟動組態輸入快取
用於啟動組態和工作中的輸入變數現在會持續保存其上次輸入的值,以簡化重新執行依賴它們的偵錯工作階段的流程。只有在輸入上沒有定義明確的 default
時,才會執行此動作。
JavaScript 偵錯工具
實驗性網路檢視
JavaScript 偵錯工具現在包含一個基本的實驗性網路檢視,當 debug.javascript.enableNetworkView
設定開啟時可用。此檢視會顯示瀏覽器工作階段所發出之要求和回應的相關資訊。
主題: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 更新套件。
遠端開發
遠端開發擴充功能可讓您使用 開發容器、透過 SSH 或 遠端通道的遠端機器,或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能完整的開發環境。
重點包括
- 開發容器範本的選用路徑
- 透過 SSH 擴展遠端作業系統的相容性
您可以在遠端開發發行說明中深入瞭解這些功能。
適用於 Web 的 VS Code
當在 https://vscode.dev 上瀏覽 GitHub 存放庫或在桌面上使用 GitHub 存放庫擴充功能時,現在會遵循 git.openDiffOnClick
設定。
擴充功能的貢獻
Python
Django 單元測試支援
我們很高興宣布支援我們最受歡迎的功能之一:您現在可以透過測試總管探索和執行 Django 單元測試!如需關於如何啟用此功能的設定指示,請查看我們的文件。
主題:Catppuccin Macchiato (在 vscode.dev 上預覽)
當您探索此新新增功能時,請提供意見反應並在我們的 vscode-python 存放庫中回報任何問題,或使用Python:回報問題命令。
原生 REPL 改進
我們對新的原生 REPL 體驗進行了更多改進和錯誤修正。我們正在推出原生 REPL 作為 智慧傳送的預設目標作為實驗,但如果您有興趣試用此功能,您可以在使用者 settings.json
中設定 python.REPL.sendToNativeREPL
並重新載入您的 VS Code 視窗。
使用 Pylance 從內嵌提示前往定義
當使用 Pylance 啟用內嵌提示時,您現在可以更方便地導覽至類型的定義,方法是將滑鼠停留在其上方,並在按住 Ctrl (Cmd 在 macOS 上) 的同時按一下。
偵錯測試時的重新啟動支援
您現在可以在透過偵錯工具列控制項偵錯測試時重新啟動偵錯工具。
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 和擴充功能範例以取得更多資訊。
Terminal.shellIntegration
window.onDidChangeTerminalShellIntegration
window.onDidStartTerminalShellExecution
window.onDidEndTerminalShellExecution
驗證帳戶 API
驗證 API 現在在處理多個帳戶時具有更多控制權。一直以來缺少的是取得所有帳戶並取得特定帳戶的 AuthenticationSession
的能力。現在可以透過 getAccounts
API 的最終確定來實現。
尋求使用驗證工作階段的擴充功能作者可以執行下列程式碼,以取得使用者登入之帳戶的 AuthenticationSessionAccountInformation
const accounts = vscode.authentication.getAccounts('microsoft');
從那裡,您可以使用這些帳戶來專門為這些帳戶建立工作階段
const session = vscode.authentication.getSession('microsoft', scopes, {
account: accounts[0]
});
注意:為了讓此功能運作,驗證提供者需要處理傳遞至
getSessions
和createSession
的參數。內建 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
設定時更加順暢。- 當在命令列上的不同位置請求建議時,建議現在更加一致。
- 當導航回目錄時,為
<path>/../
提供了一個完成項目。
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 包含兩個主要部分
-
擴充功能註冊工具的能力。工具是一項旨在由語言模型使用的功能。例如,讀取檔案的 Git 歷史記錄。
-
語言模型支援工具的機制,例如擴充功能在發出請求時傳遞工具、語言模型請求工具調用,以及擴充功能將工具調用的結果傳回。
本月新增的變更之一是使用者可以手動將某些工具附加到其聊天請求。這方面的一個範例是一個工具,它可以計算使用者想要在其請求中使用的某些動態上下文。
提案可以在 vscode.proposed.lmTools.d.ts 中找到。查看 tool-user
範例擴充功能,其中示範了註冊和調用工具。
關注 issue #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 Modules (ESM) 載入並完全捨棄 AMD。我們將在 9 月開始發布啟用 ESM 的 Insider 組建,並計劃在 10 月的下一個版本中將 ESM 發布到 Stable。
我們發布 ESM 的計畫已記錄在 https://github.com/microsoft/vscode/issues/226260 中。
值得注意的修正
感謝您
最後但同樣重要的是,非常感謝 VS Code 的貢獻者。
Issue 追蹤
對我們的 Issue 追蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
Pull Requests
對 vscode
的貢獻
- @akinomyoga (Koichi Murase): 修正 Bash 整合覆蓋 PROMPT_COMMAND 的
$?
PR #226929 - @andrewbranch (Andrew Branch): [typescript-language-features] 新增 autoImportSpecifierExcludeRegexes 偏好設定 PR #226202
- @anton-matosov (Anton Matosov): #171066 的後續行動,修正 zsh 和 fish shell 實作 PR #223421
- @arvid220u (Arvid Lunnemark): 永遠不要執行已清除的 auxwindow 超時 PR #221296
- @BABA983 (BABA)
- 移除重複的程式碼 PR #224091
- 拖曳多個索引標籤後,尊重原始終端機索引標籤順序 PR #224591
- 新增 registerWindowTitleVariable 命令 PR #225408
- @bsShoham (Shoham Ben Shitrit): 在單字開頭觸發聊天變數完成 PR #224174
- @Cecil0o0 (hj): 重構:合併相同的命名空間宣告 PR #219638
- @CGNonofr (Loïc Mangeonjean): 在任何地方正確偵測 node env PR #221357
- @cobey (Cody Beyer): 為 python 和 js 新增 ai-inference 標籤 PR #225098
- @dangerman (Anees Ahee)
- 修正命令面板中缺少「重新啟動 TS 伺服器」命令 PR #223433
- 將通知焦點外框圓角化 PR #225824
- @Flanker32 (Hanxiao Liu): 更新 java ai 程式庫的工作區標籤 PR #223677
- @gabritto (Gabriela Araujo Britto)
- [typescript-language-features] 在可用時使用來自 tsserver 的 commit 字元 PR #223541
- [typescript-language-features] 修正診斷遙測屬性名稱 PR #225079
- @gjsjohnmurray (John Murray)
- 在還原後顯示唯讀檔案名稱裝飾,同時也重設 mtime (修正 #221014) PR #221023
- 修正完成項目狀態列文字的不良大寫 (#_225429) PR #225431
- 改進
workbench.editor.enablePreview
設定的描述 (修正 #225453) PR #225704
- @hron (Aleksei Gusev): 修正:
merge.toggleActiveConflict
作為快捷鍵 PR #225320 - @iisaduan (Isabel Duan): 將 typescript 的 organizeImports 設定新增至設定介面 PR #209293
- @jeanp413 (Jean Pierre)
- 修正如果我將「搜尋」視圖移動到另一個位置,搜尋結果不會在編輯器變更時自動更新 PR #215764
- 變更終端機重新命名 codicon PR #225444
- 修正 explorer 會將任何包含單字 "cut" 的資料夾/項目灰顯 PR #225455
- @Jesscha (JessCha): 修正 extHostExtensionService.ts 中的錯字 PR #224111
- @m-byte (Matthias B.): 修正:僅為想要它們的使用者新增 apt 來源 (#_22145) PR #221285
- @mkasenberg: 修正搜尋編輯器的 focusResult PR #205914
- @mogelbrod (Victor Hallberg): 將「依更新時間排序」選項新增至註解面板 PR #221665
- @NriotHrreion (Norcleeh): 修正:當 Active Terminal 被終止時,命令面板關閉 PR #225500
- @r3m0t (Tomer Chachamu): 修正當「使用者設定」開啟時,「開啟工作區設定」 (修正 #148709) PR #225311
- @rbuckton (Ron Buckton): 更新以支援 strictBuiltinIteratorReturn PR #222009
- @rehmsen (Ole): 使筆記本編輯器中 Markdown 註解中的常規文字換行。 PR #224484
- @RichardLuo0 (RichardLuo): 修正:從對話方塊按鈕中移除工具提示 PR #225772
- @stalematker (Kevin): 修正 extensionEnablementService.ts 中的錯字 PR #224145
- @swordensen (Michael Sorensen): 修正 #218626 PR #219148
- @thegecko (Rob Moran): 新增 viewContainer 貢獻點 PR #212499
- @tisilent (xiejialong): 新增 scm.compactFolders。 PR #221459
- @troy351: 修正:multiDiffEditor 具有錯誤的背景顏色名稱 PR #224151
- @walter-erquinigo (Walter Erquinigo): 處理來自 Dynamic Debug Configuration 提供者的錯誤 PR #202622
- @zkat (Kat Marchán): 停止 AutoInstallerFs 永遠重複執行並修正 typings 安裝程式 PR #225648
對 vscode-css-languageservice
的貢獻
- @wkillerud (William Killerud): 修正:支援 sass 的 pkg 中的條件匯出 PR #400
對 vscode-eslint
的貢獻
- @denis-sokolov (Denis Sokolov): Readme 中的微小修正 PR #1903
對 vscode-flake8
的貢獻
- @taesungh (Taesung Hwang): 使用全域設定作為
ignorePatterns
預設值 PR #327
對 vscode-generator-code
的貢獻
- @spjpgrd (seán patrick john paul george ringo doran): 更新 vsc-extension-quickstart.md PR #486
對 vscode-hexeditor
的貢獻
- @tomilho (Tomás Silva): HexEditor 差異 PR #522
對 vscode-isort
的貢獻
- @iloveitaly (Michael Bianco): 修正:新增工具路徑,以便 isort 在沒有捆綁版本的情況下也能運作 PR #417
- @jicruz96 (J.I. Cruz): 如果檔案有
skip_file
註解,則不要記錄追溯 PR #416
對 vscode-js-profile-visualizer
的貢獻
對 vscode-json-languageservice
的貢獻
- @jeremyfiel (Jeremy Fiel): 更新 DocumentSymbols.test.ts 中的無效 json 實例 PR #241
- @remcohaszing (Remco Haszing): 棄用 Thenable 並別名為 PromiseLike PR #239
- @ttlopes (Tomás Lopes): 修正 microsoft/vscode#209655:修正區分大小寫的 JSON 排序錯誤 PR #238
對 vscode-languageserver-node
的貢獻
- @DavyLandman (Davy Landman): 顯示來自 LSP 伺服器的錯誤訊息 PR #1490
- @sh-cho (Seonghyeon Cho): 修正 npm、azure pipeline 連結 PR #1544
對 vscode-loader
的貢獻
- @SimonSiefke (Simon Siefke): 功能:在未定義
this
的情況下,將amdLoaderGlobal
設定為globalThis
PR #58
對 vscode-mypy
的貢獻
- @hamirmahal (Hamir Mahal)
- @meghprkh (Megh Parikh): 將 mypy 更新至 1.11.0 PR #311
對 vscode-pull-request-github
的貢獻
對 vscode-python-debugger
的貢獻
對 vscode-vsce
的貢獻
- @BlackHole1 (Kevin Cui): 修正:機率性觸發 v8 崩潰 PR #1032
- @mark-wiemer (Mark Wiemer): 修正 punycode 棄用警告 PR #1037
對 language-server-protocol
的貢獻
- @asukaminato0721 (Asuka Minato): 新增 egglog PR #1989
- @LPeter1997: 新增 Draco.Lsp 作為 .NET 中的 LSP SDK PR #2001
- @marcoroth (Marco Roth)
- @techee (Jiří Techet): 將 Geany 新增至支援 LSP 的編輯器清單 PR #2008
- @XuechunHHH (Xuechun Hua): 將 PartiQL 新增至 servers.md PR #1985
對 python-environment-tools
的貢獻