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 - 在 vscode.dev 中透過 IntelliSense 提升您的 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
新的實驗性斜線命令 /startDebugging
在 @vscode
聊天參與者上可用。此命令可讓您建立啟動組態並開始偵錯您的應用程式。
您也可以透過建立 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 可選取的 (在 macOS 上是 Cmd 可選取的)。
內建的 JavaScript 偵錯工具會連結程式碼中定義的函式位置。其他偵錯擴充功能需要採用對應的通訊協定變更才能啟用此功能。
尋找控制項
您現在可以在偵錯主控台中開啟尋找控制項 (⌥⌘F (Windows、Linux Ctrl+Alt+F)),以搜尋輸入中的結果。在未來的里程碑中,將研究在輸出中搜尋結果的支援。
您也可以透過出現在偵錯主控台工具列上篩選控制項右側的動作 Debug Console: Focus Find
來存取控制項。
啟動組態輸入快取
啟動組態和工作中使用的輸入變數現在會持續其上次輸入的值,以簡化重新執行依賴它們的偵錯工作階段的程序。只有在輸入上未定義明確的 default
時,才會執行此動作。
JavaScript 偵錯工具
實驗性網路檢視
JavaScript 偵錯工具現在包含一個基本的實驗性網路檢視,當 debug.javascript.enableNetworkView
設定開啟時,該檢視可用。此檢視會顯示瀏覽器工作階段提出的要求和回應的相關資訊。
主題:Codesong (在 vscode.dev 上預覽)
當程序使用 --experimental-network-inspection
(在其引數中,例如將 "runtimeArgs": ["--experimental-network-inspection"]
新增至 node
啟動組態) 啟動時,網路檢視也適用於 Node.js 22.6.0 及更高版本。
注意:Node 的網路實作仍處於非常早期的階段,而且大部分關於要求和回應的資料尚無法使用。
測試
支援訊息上的堆疊追蹤
測試擴充功能現在可以將堆疊追蹤與測試失敗建立關聯。當它們執行此動作時,您會在測試結果檢視和錯誤預覽中看到呼叫堆疊每個框架周圍的程式碼。您可以在檢視中 Ctrl 選取 (在 macOS 上是 Cmd 選取) 程式碼以移至其原始位置,或在其標頭上使用移至檔案動作。
主題:Codesong (在 vscode.dev 上預覽)
安裝程式
Debian 套件現在會提示您確認是否要新增 packages.microsoft.com 存放庫。這可讓您稍後使用 apt 更新套件。
遠端開發
遠端開發擴充功能可讓您使用 開發容器、透過 SSH 或 遠端通道的遠端機器,或 Windows Subsystem for Linux (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 (macOS 上為 Cmd) 的同時按一下。
偵錯測試時的重新啟動支援
您現在可以在透過偵錯工具列控制項偵錯測試時重新啟動偵錯工具。
GitHub Pull Requests 和 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 擴充功能。
新的問題回報器實作
在此里程碑中,我們正在試驗問題回報器的新實作。功能保持不變,但應該有一些改進,例如改進的多螢幕支援,以及在 VS Code for the Web 中提供問題回報器。
新版本的問題回報器預設為啟用,並且可以使用 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 的進展
在此里程碑中,我們完成了採用 ESM for VS Code Core 的大部分工作。我們的目標是使用 ECMAScript Modules (ESM) 載入並完全捨棄 AMD。我們將在 9 月開始發布啟用 ESM 的 Insider 組建,並計劃在 10 月的下一個版本中將 ESM 發布到 Stable。
我們發布 ESM 的計劃在 https://github.com/microsoft/vscode/issues/226260 中記錄。
值得注意的修正
感謝您
最後但同樣重要的是,衷心感謝 VS Code 的貢獻者。
問題追蹤
對我們問題追蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
提取請求
對 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):正確偵測所有位置的節點環境 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 的提交字元 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
- 修復檔案總管會將任何包含單字 "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):修復:當作用中終端機被終止時,命令面板關閉 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 diff 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
的貢獻