2024 年 8 月(版本 1.93)
更新 1.93.1:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | 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 Chat 收到了與您預期不符的回覆?透過選擇聊天回覆工具欄上的踩踩按鈕來幫助我們。現在,它會顯示一個下拉選單,其中包含一些詳細選項,供您描述問題。您也可以從此選單中開啟問題報告器。
程式碼生成指令(實驗性)
設定: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 Chat 自動將您的問題路由到合適的參與者或聊天命令。
如果自動選擇的參與者不適合您的問題,您可以選擇聊天回覆頂部的不重新執行連結,將您的問題重新發送給 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 和包型別
在 VS Code for the Web 上使用 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
主題鍵進行配置。
Notebook
在差異檢視中顯示或隱藏未更改的單元格
筆記本差異檢視現在隱藏未更改的單元格,這使您能夠專注於更改的單元格。同時,所有未更改單元格的輸入始終摺疊。
在差異檢視中管理空格
筆記本差異檢視現在遵守以下設定:
diffEditor.ignoreTrimWhitespace
- 顯示差異時忽略前導和尾隨(修剪)空格。
筆記本執行計數粘性滾動
當向下滾動程式碼單元格時,程式碼單元格的執行計數現在會粘在螢幕底部。這使得在長程式碼單元格中工作時更容易檢視執行狀態和更新。
任務
程序退出時保持任務終端開啟
如果任務的終端程序以非零程式碼退出,我們現在會保持終端開啟以方便除錯。
除錯
跳轉到變數定義
除錯擴充套件現在可以將變數和表示式連結到程式碼中的位置。在“變數”檢視、“監視”檢視和“除錯控制檯”中,帶有此連結的資料可以按住 Ctrl 鍵(macOS 上按住 Cmd 鍵)進行選擇。
內建的 JavaScript 偵錯程式將連結程式碼中定義的函式位置,其他除錯擴充套件需要採用相應的協議更改才能啟用此功能。
查詢控制元件
您現在可以在“除錯控制檯”中開啟“查詢”控制元件(⌥⌘F(Windows、Linux Ctrl+Alt+F))以在輸入中搜索結果。將來會研究支援在輸出中搜索結果。
您還可以透過“除錯控制檯”工具欄右側“過濾器”控制元件旁邊的操作 除錯控制檯:聚焦查詢
訪問該控制元件。
啟動配置輸入快取
啟動配置和任務中使用的輸入變數現在會保留其上次輸入的值,以簡化重新執行依賴於它們的除錯會話的過程。這僅在輸入上沒有明確定義 default
時才會發生。
JavaScript 偵錯程式
實驗性網路檢視
JavaScript 偵錯程式現在包含一個基本的實驗性網路檢視,當 debug.javascript.enableNetworkView
設定開啟時可用。該檢視顯示有關瀏覽器會話發出的請求和響應的資訊。
主題: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 更新軟體包。
遠端開發
遠端開發擴充套件允許您透過 SSH 或遠端隧道使用開發容器、遠端機器或適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
亮點包括:
- Dev Container 模板的可選路徑
- 使用 SSH 擴充套件了遠端作業系統的相容性
您可以在遠端開發發行說明中瞭解有關這些功能的更多資訊。
Web 版 VS Code
當在 https://vscode.dev 上或在桌面版中使用 GitHub Repositories 擴充套件瀏覽 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 拉取請求和議題
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 和擴充套件示例。
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
設定為 true 時,事情變得更流暢。- 在命令列上不同位置請求建議時,建議現在更加一致。
- 在向後導航目錄時,會為
提供補全。/../
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 包含兩個主要部分:
-
擴充套件註冊工具的能力。工具是旨在供語言模型使用的功能。例如,讀取檔案的 Git 歷史記錄。
-
語言模型支援工具的機制,例如擴充套件在發出請求時傳遞工具、語言模型請求工具呼叫以及擴充套件傳回工具呼叫結果。
本月新增的更改之一是使用者可以手動將某些工具附加到其聊天請求的能力。一個示例是,使用者希望在其請求中使用計算某些動態上下文的工具。
該提案可在 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 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @albertosantini (Alberto Santini)
拉取請求
對 vscode
的貢獻
- @akinomyoga (Koichi Murase):修復 Bash 整合 clobbering
$?
for PROMPT_COMMAND PR #226929 - @andrewbranch (Andrew Branch):[typescript-language-features] 新增 autoImportSpecifierExcludeRegexes 首選項 PR #226202
- @anton-matosov (Anton Matosov):#171066 的後續修復了 zsh 和 fish shells 實現 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):處理動態除錯配置提供程式中的錯誤 PR #202622
- @zkat (Kat Marchán):阻止 AutoInstallerFs 永遠執行並修復型別安裝程式 PR #225648
對 vscode-css-languageservice
的貢獻
- @wkillerud (William Killerud):修復:支援 sass 包中的條件匯出 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
的貢獻