2024 年 3 月 (版本 1.88)
更新 1.88.1:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2024 年 3 月版本。此版本中有許多更新,我們希望您會喜歡,其中一些主要亮點包括:
- 為開啟的編輯器應用自定義標籤 - 區分具有相同檔名的編輯器。
- 鎖定滾動 - 透過同步滾動並排比較編輯器。
- 擴充套件更新改進 - 無需重新載入即可重啟擴充套件,並隨 VS Code 版本更新擴充套件。
- 測試覆蓋率 API - VS Code 中原生的程式碼覆蓋率支援。
- 小地圖中的摺疊標記 - 從小地圖輕鬆識別和導航到程式碼部分。
- 快速搜尋改進 - 粘性檔案路徑分隔符和分隔符按鈕。
- 筆記本在節中執行單元格 - 快速執行筆記本節中的所有單元格。
- Copilot 改進 - 改進的內聯聊天 UI、提交訊息和使用的引用。
- Python 自動檢測改進 - 檢測 Flask 和 Django 的啟動檔案,發現 Hatch 環境。
- 預覽:終端內聯聊天 - 直接從終端啟動 Copilot 內聯聊天對話。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新。Insiders:想盡快嘗試新功能嗎?您可以下載每晚Insiders版本並儘快嘗試最新更新。
輔助功能
語音錄製聲音
我們為語音錄製添加了新的可訪問性訊號聲音
- 語音錄製開始 - 使用
accessibility.signals.voiceRecordingStarted
設定進行配置 - 語音錄製結束 - 使用
accessibility.signals.voiceRecordingStopped
設定進行配置
改進的差異編輯器可訪問性
如果您正在使用螢幕閱讀器,當差異編輯器成為活動編輯器時,您現在會收到通知。您可以使用 accessibility.verbosity.diffEditorActive
設定停用此行為。
我們還在輔助功能幫助對話方塊中添加了有關差異編輯器:切換側邊(一個對鍵盤使用者有用的命令)的資訊。
輔助功能訊號現在在差異編輯器的兩側都有效。以前,它們僅在修改側可用。
可訪問檢視聊天程式碼塊命令
當您在可訪問檢視中檢查聊天響應時,您現在可以使用聊天檢視中可用的程式碼塊命令和鍵盤繫結。
其中包括聊天:在游標處插入、聊天:插入到終端和聊天:插入到新檔案。
筆記本單元格 aria 標籤更新
筆記本單元格的 Aria 標籤現在會更新,以指示單元格當前是正在執行還是等待執行。
工作臺
浮動視窗中的自定義編輯器支援
我們擴充套件了對在浮動視窗中開啟自定義編輯器以及通常所有使用 webview API 的編輯器的支援。這包括 Markdown 預覽、瀏覽器預覽以及複雜的自定義編輯器,例如我們的十六進位制編輯器。
注意: 由於技術限制,在視窗之間移動基於 webview 的編輯器需要重新載入該編輯器的內容。然後由編輯器恢復您之前累積的狀態。在某些情況下,您的狀態可能會被重置,就像您第一次開啟編輯器一樣。
為開啟的編輯器自定義標籤
我們現在允許您自定義編輯器選項卡和“開啟的編輯器”檢視的顯示標籤。此功能對於區分同名檔案的編輯器很有用。
您可以透過在 workbench.editor.customLabels.patterns
設定下新增條目來自定義這些標籤。每個條目應包括一個與檔案路徑匹配的全域性模式和一個定義編輯器選項卡新名稱的模板。此自定義僅在檔案路徑與指定模式匹配時應用。模式是否匹配取決於它是否定義為相對或絕對檔案路徑模式。
模板可以包含變數,例如 ${filename}
、${extname}
、${dirname}
和 ${dirname(N)}
,它們將根據檔案路徑中的值進行動態替換。
要啟用或停用這些自定義標籤,請使用 workbench.editor.customLabels.enabled
設定。這使您可以隨時切換回原始編輯器名稱,而無需刪除自定義模式。
鎖定滾動
您現在可以使用檢視:在編輯器之間切換鎖定滾動命令來同步所有可見編輯器之間的滾動。這意味著當您在一個編輯器中滾動時,所有其他編輯器都會以相同的量滾動,保持一切對齊。如果您需要並排比較檔案,此功能會很有用。
如果您想更精確地控制啟用和停用鎖定滾動,您可以選擇僅在按住特定鍵繫結時啟用滾動同步。為 workbench.action.holdLockedScrolling
命令設定一個鍵盤快捷方式,您就可以在需要時暫時鎖定編輯器之間的滾動。
底部活動欄
以前,我們引入了將活動欄移動到側邊欄頂部的選項。我們現在允許您將活動欄移動到底部。為此,請將 workbench.activityBar.location
設定更改為 bottom
。
當活動欄位於頂部時,我們也改進了它的外觀和感覺,以確保它與介面的其餘部分完美融合。
搜尋編輯器單點選行為
您現在可以配置 search.searchEditor.singleClickBehaviour
設定,以確定單點選搜尋編輯器條目時發生什麼。目前,該設定僅支援開啟窺視定義。
快速搜尋改進
粘性檔案路徑
在快速搜尋中,我們使檔名分隔符具有粘性,以更清楚地顯示搜尋結果與哪個檔案相關聯。當檔案中出現大量搜尋詞時,這會很有用。
檔案路徑分隔符按鈕
當您將滑鼠懸停在特定檔案的檔案結果上,或者向下箭頭指向結果時,檔案路徑分隔符也會出現按鈕(例如,開啟檔案)。
快速選擇分隔符導航鍵繫結
我們收到了反饋,希望能夠在快速選擇中導航分隔符。在此迭代中,我們添加了一個鍵繫結來完成此操作。在 Windows 和 Linux 上,您可以使用 Alt+Up/Down
,在 macOS 上是 Cmd+Up/Down
。在此示例影片中,您可以看到活動項在
- 命令面板中的
最近使用
和其他命令
分隔符之間 - 快速搜尋中的檔案路徑分隔符之間
快速選擇停用複選框項
在此迭代中,我們更清楚地顯示了快速選擇顯示停用項的情況。您可以在“管理受信任擴充套件”快速選擇中找到一個示例,該快速選擇可用於您登入的任何帳戶。
擴充套件更新改進
重啟擴充套件
當擴充套件更新時,您現在可以重啟擴充套件,而無需重新載入視窗。
注意: 當您連線到 WSL、SSH 或開發容器等遠端伺服器時,您仍然需要重新載入窗口才能更新擴充套件。
隨 VS Code 更新擴充套件
當您啟用 extensions auto update
時,VS Code 現在會更新與更新版本的 VS Code 相容的擴充套件。如果較新版本的擴充套件與當前版本的 VS Code 不相容,則較新版本的擴充套件僅在您更新 VS Code 後才會啟用。
跳轉到評論回覆
“評論”檢視中評論執行緒的上下文選單現在包含“回覆”操作,當評論執行緒允許回覆時。這使您可以快速跳轉到回覆輸入框並開始鍵入回覆。
編輯器
小地圖章節標題
小地圖現在可以識別並渲染由摺疊標記(例如 TypeScript 中的 //#region
或使用 MARK:
的註釋)定義的章節。這使您可以快速掃描和導航大型檔案。
重構預覽鍵繫結
我們更新了重新命名符號重構 (F2) 的編輯預覽鍵繫結,以保持與其他上下文中的重構預覽(例如程式碼操作)的一致性。您現在可以使用 ⌘Enter (Windows、Linux Ctrl+Enter) 預覽編輯(以前是 Shift + Enter
)。
將滑鼠懸停在程式碼操作上時,⌘Enter (Windows、Linux Ctrl+Enter) 也會在工作臺中開啟重構預覽面板。
差異編輯器暫存/還原選擇按鈕
差異編輯器現在有一個單獨的行號區域用於暫存和還原控制元件。這些操作使您能夠暫存或還原更改的程式碼塊。
如果您對某些更改執行文字選擇,這些按鈕允許您暫存或還原所選更改(選擇中所有更改的字元)。
您可以將 diffEditor.renderGutterMenu
設定為 false
來隱藏差異編輯器行號區域。
重新命名建議行為
我們改進了重新命名建議的使用流程,使其與快速選擇匹配。當您從列表中選擇一個重新命名建議時,輸入值現在會相應地更新,這使您可以進一步修改建議。
原始碼管理
傳入更改檔案裝飾
為了幫助避免在合併/rebase 遠端更改時可能出現的衝突,我們現在為所有具有傳入更改且已獲取但尚未合併/rebase 的檔案顯示檔案裝飾。要從該功能中受益,您應該同時啟用 git.autofetch
和 git.decorations.enabled
設定。
主題:GitHub Sharp(在 vscode.dev 上預覽)
終端
除錯終端中的 shell 整合
為了向用戶和擴充套件提供增強功能,現在在除錯時啟動的終端中自動啟用shell 整合。
執行最近命令改進
由 shell 整合支援的執行最近命令 (⌃⌥R (Windows, Linux Ctrl+Alt+R)) 現在會盡可能地滾動並顯示該命令上次執行的時間。執行該命令或取消快速選擇會將終端返回到其先前的狀態。
主題:Sapphire (在 vscode.dev 上預覽)
開啟檢測到的連結改進
開啟檢測到的連結命令 (⇧⌘O (Windows, Linux Ctrl+Shift+O)) 現在會在編輯器中預覽連結結果,並在終端中突出顯示連結源。
此外,重複連結現在已從列表中過濾掉,並且所有連結都以一致的格式呈現。
單詞連結的額外上下文
單詞連結由 terminal.integrated.wordSeparators
設定定義,並且在找不到檔案/資料夾/URI 時作為備用。啟用後,這些連結現在包含額外的周圍上下文,以新增搜尋的行和列資訊。
請注意,在螢幕截圖中,選擇了連結 terminalLinkParsing
,但結果搜尋也包括連結後的行號。
新連結格式
現在可以在終端中檢測到以下連結格式,即使路徑包含空格也是如此
檔案 路徑:行:列
終端粘性滾動透明度支援
終端中的粘性滾動現在支援透明度。主題可以透過將 terminalStickyScroll.background
主題顏色配置為透明值,或者在 settings.json
中指定覆蓋來使用此功能。例如:
{
"workbench.colorCustomizations": {
"[Default Dark Modern]": {
"terminalStickyScroll.background": "#181818c0"
}
}
}
這會產生透明的粘性滾動背景,讓後面的文字透射出來
測試
測試覆蓋率
在此迭代中,我們完成了測試覆蓋率 API,為 VS Code 帶來了原生覆蓋率支援。如果您的測試系統支援,您可以使用新的執行覆蓋率按鈕獲取覆蓋率
同樣,還有新的鍵繫結用於執行覆蓋率,例如 Ctrl+; Ctrl+Shift+A 用於執行所有測試並帶覆蓋率,以及 Ctrl+; Ctrl+Shift+L 用於執行最後一套測試並帶覆蓋率。
預設情況下,覆蓋率資訊顯示為行號上的覆蓋層,但您可以切換內聯覆蓋率以檢視原始檔的完整詳細資訊
主題:Codesong(在vscode.dev上預覽)
使用測試覆蓋率需要您的擴充套件實現新的 API。一些擴充套件,例如Java 測試執行器和node:test 執行器已經支援它。在團隊的12 月和1 月更新中瞭解有關 Java 測試覆蓋率的更多資訊。
擴充套件作者可以在測試 API 文件中找到有關測試覆蓋率 API 的更多詳細資訊。
測試訊息中的顏色程式碼支援
我們現在解析終端顏色程式碼以對文字測試訊息進行著色,例如測試失敗時顯示的訊息,而不是顯示原始的“不可列印”資料程式碼。
語言
TypeScript 5.4
VS Code 現在包含 TypeScript 5.4。此重大更新為型別檢查和 IntelliSense 帶來了新的改進,並修復了多個錯誤。有關更多詳細資訊,請參閱TypeScript 5.4 釋出部落格文章。
Markdown 中更智慧地插入影像和連結
當您將影像或檔案拖放或貼上到 Markdown 檔案中時,VS Code 會自動為其插入 Markdown 影像或連結語法。我們現在還會在您插入到程式碼塊和其他不支援 Markdown 語法的上下文中時智慧地停用此行為
您始終可以使用拖放/貼上小部件切換回插入 Markdown 語法。您可以使用 markdown.editor.drop.enabled
和 markdown.editor.filePaste.enabled
設定來配置此行為。
Notebook
筆記本輸出中的鍵盤快捷鍵
我們現在支援筆記本輸出中的一些標準鍵盤快捷鍵
- 輸出可以使用鍵盤分別透過 Ctrl+A 和 Ctrl+C 鍵繫結進行選擇和複製。
- 可滾動輸出可以使用鍵盤分別透過 Up 和 Down 鍵繫結進行滾動。
- 可滾動輸出的頂部和底部滾動可以使用鍵盤分別透過 Ctrl+Home 和 Ctrl+End 鍵繫結實現(macOS 上為 Cmd+Up 和 Cmd+Down)。
- 從當前選擇點到輸出頂部或底部的輸出選擇可以使用鍵盤分別透過 Ctrl+Shift+Up 和 Ctrl+Shift+End 鍵繫結實現(macOS 上為 Shift+Cmd+Up 和 Shift+Cmd+Down)。
單元格錯誤診斷
擴充套件現在可以為失敗的單元格提供錯誤詳細資訊,以便在單元格內顯示錯誤診斷。當焦點位於單元格容器上時,notebook.cell.openFailureActions
(⌘. (Windows、Linux Ctrl+.)) 會跳轉到該錯誤的快速操作選單。診斷僅在語言模型可用以提供快速操作時顯示。
在章節中執行單元格
為了更輕鬆地在筆記本中執行相關單元格,您現在可以使用在章節中執行單元格操作執行按 Markdown 章節標題分組的單元格。此操作在筆記本大綱檢視和粘性滾動元素中可用。
在粘性滾動元素中,右鍵單擊您選擇的標題,並透過上下文選單中的操作執行該章節。在大綱檢視中,選擇懸停或選擇時出現的工具欄圖示,然後透過顯示的動作執行單個單元格或一組單元格。
大綱檢視中的篩選器支援
您現在可以在筆記本大綱檢視中使用篩選器,這使您可以控制 Markdown 標題、程式碼單元格和程式碼單元格符號的包含。篩選器對應於以下設定
notebook.outline.showMarkdownHeadersOnly
notebook.outline.showCodeCells
notebook.outline.showCodeCellSymbols
關閉時提示儲存互動式視窗
透過啟用 interactiveWindow.promptToSaveOnClose
設定,當互動式視窗關閉時,系統會提示您儲存其中的內容,以確保您不會丟失任何工作。目前唯一支援的檔案格式是 .ipynb
。
遠端開發
遠端開發擴充套件允許您透過 SSH 或遠端隧道使用開發容器、遠端機器或適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
亮點包括:
- 具有擴充套件支援的發行版的備用伺服器下載
- 基於 URI 查詢字串的埠轉發
- Dev Containers 擴充套件自動啟動 Docker
- 透過組策略限制對開發隧道和埠轉發的訪問
您可以在遠端開發發行說明中瞭解有關這些功能的更多資訊。
對擴充套件的貢獻
VS Code Speech
延遲啟用
VS Code 語音擴充套件現在僅在 VS Code 中請求語音轉文字服務時啟用。這確保了擴充套件不會對擴充套件主機啟動時間產生負面影響。
使用顯示語言作為預設語音語言
預設情況下,VS Code 語音擴充套件現在使用 VS Code 的顯示語言作為語音語言,並在支援該語言的情況下選擇相應的模型。
對於 accessibility.voice.speechLanguage
設定,auto
是新的預設值。
GitHub Copilot
內聯聊天改進
內聯聊天現在以浮動控制元件的形式啟動,使其更加輕量級。首次請求後,控制元件會展開以佔用更多空間。我們還調整了渲染,使其與其他聊天體驗(例如聊天檢視或快速聊天)更加一致。
主題:GitHub Light Colorblind (Beta)
我們已經重新定位了重跑和反饋控制元件,並使用於檢視差異的切換控制元件與“接受”和“放棄”按鈕一起更突出。
主題:GitHub Light Colorblind (Beta)
筆記本核心狀態作為上下文
當您在筆記本中時,核心狀態(例如,變數和可用包)現在會自動作為上下文包含在內聯聊天中。這使得 Copilot 可以使用筆記本的當前狀態來提供更相關的完成。
主題:GitHub Dark
提交訊息生成改進
為了提高生成的提交訊息的質量,我們現在還將儲存庫中最近 10 次提交的提交訊息以及當前使用者最近 10 次提交的提交訊息作為額外上下文包含在內。
工作區建立改進
當檢測到聊天提示的合適匹配時,@workspace /new
命令現在提供來自 GitHub 儲存庫的精選示例專案作為建議。
@workspace /new
命令也得到了增強,可以更有效地管理上下文和歷史記錄。這使您可以透過提出後續查詢來最佳化建議的工作區結構和檔案內容。例如,“使用 TypeScript 而不是 JavaScript”或“也新增 bootstrap”。
@terminal /explain 斜槓命令
新的 @terminal /explain
斜槓命令可用,它針對解釋命令或錯誤進行了最佳化。如果沒有 /explain
,@terminal
則針對建議修復進行了最佳化。此斜槓命令用於使用 Copilot 解釋快速修復或解釋選擇操作。
預覽:終端內聯聊天
此版本提供了終端內聯聊天的預覽,它方便地直接在終端中訪問 Copilot 的功能。
您可以使用 terminal.integrated.experimentalInlineChat
設定啟用終端內聯聊天。要在終端中呼叫內聯聊天,請使用 ⌘I (Windows、Linux Ctrl+I) 鍵繫結。
終端內聯聊天使用 @terminal
聊天參與者,它具有整合終端的 shell 及其內容的上下文。
一旦建議了命令,使用 ⌘Enter (Windows、Linux Ctrl+Enter) 在終端中執行命令,或使用 ⌥Enter (Windows、Linux Alt+Enter) 將命令插入終端。命令也可以在 Copilot 的響應中直接編輯,然後才能執行(目前在 Windows 和 Linux 上為 Ctrl+down、Tab、Tab;在 macOS 上為 Cmd+down、Tab、Tab)。
認證流程清晰度
認證的清晰度非常重要。我們希望明確我們如何認證以及我們要求什麼。如果您在 VS Code 中開啟一個私有倉庫,並且我們沒有此場景的正確認證,我們將顯示一個認證對話方塊。該對話方塊包含對需要認證的原因的描述,以及一個瞭解更多按鈕,以瞭解這些要求的更多資訊。
瞭解更多按鈕將您帶到我們關於認證要求的文件。
變數引用
聊天響應中的已用引用部分提供了有關所用上下文的資訊。以前,此部分僅顯示隱式拉入的上下文。現在,它還顯示您在聊天提示中明確提及的變數,例如 #file
或 #editor
。如果某個變數在“已用引用”中缺失,則可能表示它因對於語言模型的上下文視窗而言過大而被忽略。
次要聊天提交操作
在聊天檢視中,聊天提交按鈕現在有一個下拉選單,可以方便地訪問更多操作。
- 傳送到 @workspace 將您的查詢提交給
@workspace
聊天參與者,這對於有關工作區內容的問題很有用 - 傳送到新聊天 啟動一個新的空聊天,然後提交查詢
使用 Copilot: Explain This
時的範圍選擇
當您在活動編輯器中未使用選擇的情況下使用 /explain
,並且存在多個感興趣的範圍時,我們增加了支援提示以澄清要解釋的符號或塊範圍。
此行為目前是可選的,由 github.copilot.chat.scopeSelection
設定控制。
Python
Flask 和 Django 除錯配置選擇改進
為 Flask 和 Django 應用程式建立啟動配置變得更加容易!在為您的 Web 應用程式建立 launch.json
時,已改進了檢測工作區中可能的啟動檔案。
對於 Django,Python 偵錯程式擴充套件會在工作區的根目錄或下一級子目錄中查詢 manage.py
或 app.py
檔案。對於 Flask,該擴充套件會查詢包含 Flask 應用程式宣告的 wsgi.py
、app.py
或 init.py
檔案(例如,app = Flask()
)。
如果這些檔案在專案中未找到,下拉列表會顯示相應專案型別的預設選項,即使該檔案可能不存在。
Hatch 環境發現
Hatch 環境現在預設被發現和啟用,類似於其他常見的環境,例如 Venv、Conda 和 Poetry。此外,在 Hatch 的情況下,如果沒有註冊明確的環境識別符號,擴充套件能夠從環境定位器確定環境型別 (Hatch)。
pipenv、pyenv 和 Poetry 專案的自動環境選擇
如果您的工作區包含 pipenv、pyenv 或 Poetry 環境,則現在會自動為您的工作區選擇相應的環境。以前,擴充套件可以正確發現這些環境,但選擇了預設的全域性直譯器,這需要您手動為工作區選擇適當的環境。
現在,Python 擴充套件會根據環境的存在和任何相應的配置檔案推斷啟用的環境。例如,在 pyenv 的情況下,擴充套件會檢視 .python-version
檔案以自動為工作區選擇適當的直譯器。
報告問題命令改進
Python 和 Python 偵錯程式擴充套件現在使您更容易向我們的倉庫報告問題!如果您使用報告問題命令 (workbench.action.openIssueReporter
) 提交問題,大部分繁重的工作已經完成,您只需提供一些額外的資訊,以便我們的團隊能夠高效地分類您遇到的問題。
要使用幫助:報告問題命令為 @vscode-python 或 @vscode-python-debugger 提交問題,請分別從擴充套件下拉列表中選擇Python或Python 偵錯程式。
GitHub 拉取請求
GitHub Pull Requests 擴充套件取得了更多進展,該擴充套件使您能夠處理、建立和管理拉取請求和問題。新功能包括:
- 過時的評論在“評論”檢視中以不同於當前評論的方式顯示。
githubPullRequests.createDefaultBaseBranch
的新auto
值使用上游的預設分支作為 fork 倉庫的基礎分支。- “評論”檢視中的評論執行緒具有內聯操作(解決/取消解決和過時評論的“與 HEAD 比較評論”)和上下文選單操作。
檢視擴充套件 0.86.0 版本的更新日誌以瞭解其他亮點。
Jupyter
單元格執行分析改進
透過最新的 Pylance 預釋出版本,我們對 Jupyter 單元格的依賴分析有了更好的理解。它現在理解模組匯入,當您有一個匯入前一個單元格中定義的模組的單元格時,這尤其有用。
要啟用此功能,請在 VS Code Insiders 中安裝最新的Pylance 預釋出版本,並啟用 jupyter.executionAnalysis.enabled
和 notebook.consolidatedRunButton
設定。
擴充套件創作
使用“報告問題”命令報告擴充套件錯誤
上一次迭代,我們最終確定了一種讓擴充套件在透過 VS Code 的問題報告器提交到 GitHub 時貢獻額外資料或模板的方法。擴充套件可以貢獻一個命令,可以透過幫助:報告問題...命令訪問。選擇他們的擴充套件會執行他們貢獻的命令。請查閱我們的問題報告文件/發行說明,以瞭解此功能如何與您的擴充套件配合使用!
此外,所有已安裝的擴充套件都可以透過快速開啟快速報告。透過在快速開啟 (⌘P (Windows、Linux Ctrl+P)) 中鍵入 issue
,您可以快速選擇或搜尋已安裝的擴充套件進行報告。
某些擴充套件將開始採用這種新的問題報告流程,並且不再需要直接貢獻到命令面板的自定義 報告問題...
命令。
預覽功能
終端中重疊字形的重縮放
提供了一個新設定 terminal.integrated.rescaleOverlappingGlyphs
,它會重新縮放與後續單元格重疊的字形。這旨在解決模糊寬度字元,這些字元的字型字形可能與後端 pty/Unicode 版本認為的不同。例如,在大多數字體中,羅馬數字 Unicode 字元 (U+2160+
) 通常佔用多個單元格,因此當啟用此設定時,它們會水平重新縮放。
未重縮放
已重縮放
重縮放的規則仍在調整中,我們正在考慮在未來穩定後預設啟用此功能。如果您嘗試此功能並看到字元被重縮放但不應該被重縮放,請建立問題。
本地工作區擴充套件
我們很高興推出這項新的預覽功能,它允許您直接在工作區中打包擴充套件。此功能旨在滿足您的特定工作區需求,並提供更量身定製的開發體驗。
要使用此功能,您需要將擴充套件打包到工作區中的 .vscode/extensions
資料夾中。VS Code 然後會在“擴充套件”檢視的工作區建議部分顯示此擴充套件,使用者可以在其中安裝它。VS Code 僅為該工作區安裝此擴充套件。它還要求使用者在安裝和執行此擴充套件之前信任該工作區。
例如,考慮 VS Code 儲存庫中的 vscode-selfhost-test-provider
擴充套件。此擴充套件插入測試功能,使貢獻者可以直接在工作區中檢視和執行測試。以下螢幕截圖顯示了“擴充套件”檢視的“工作區建議”部分中的 vscode-selfhost-test-provider
擴充套件以及安裝它的功能。
此功能可在 Insiders 版本中透過 extensions.experimental.supportWorkspaceExtensions
進行預覽。請嘗試一下,並透過在 VS Code 儲存庫中建立問題來告訴我們您的反饋。
提議的 API
終端 shell 整合 API
現在提供了一個新的提議 API,該 API 允許訪問 shell 整合啟用的終端提供的一些資訊。使用此 API,可以偵聽在終端中執行的命令的傳入資料和退出程式碼。它還引入了一種更可靠的方式來執行命令,該命令會等待提示可用,然後才傳送命令,這有助於修復各種 shell 設定可能發生的一些衝突/競爭條件。
以下是使用 Terminal.shellIntegration.executeCommand
提案的示例
// Execute a command in a terminal immediately after being created
const myTerm = window.createTerminal();
window.onDidActivateTerminalShellIntegration(async ({ terminal, shellIntegration }) => {
if (terminal === myTerm) {
const command = shellIntegration.executeCommand('echo "Hello world"');
const code = await command.exitCode;
console.log(`Command exited with code ${code}`);
}
}));
// Fallback to sendText if there is no shell integration within 3 seconds of launching
setTimeout(() => {
if (!myTerm.shellIntegration) {
myTerm.sendText('echo "Hello world"');
// Without shell integration, we can't know when the command has finished or what the
// exit code was.
}
}, 3000);
以下是偵聽命令資料流的示例
// Create a terminal and log all data via console.log
const myTerm = window.createTerminal();
window.onDidStartTerminalShellExecution(execution => {
if (execution.terminal === myTerm) {
const stream = execution.createDataStream();
for await (const data of stream) {
console.log(data);
}
}
});
您可以在此處檢視新的 API。
認證 API 的“瞭解更多”屬性
本次迭代中,我們添加了一個新的提案 API,允許您在 AuthenticationForceNewSessionOptions
中指定 learnMore
屬性。其思想是,如果您使用選項中的 forceNewSession
屬性呼叫 getSession
,則可以包含一個 URI
,該 URI 將呈現給使用者,以瞭解您要求認證的原因。以下是它的外觀示例
這是程式碼中的樣子
vscode.authentication.getSession('github', ['repo'], {
forceNewSession: {
detail: l10n.t('To show you more relevant Copilot Chat results, we need permission to read the contents of your repository on GitHub.'),
learnMore: Uri.parse('https://aka.ms/copilotRepoScope')
};
});
您可以在此處檢視新的 API。
過時的評論
新的評論執行緒 applicability
屬性允許在“評論”檢視中將評論執行緒標記為過時
您可以在此處檢視 API 提案。
評論檢視選單
commentsView/commentThread/context
提案選單允許將操作新增到“評論”檢視中評論執行緒的右鍵上下文選單。通常的 inline
組也受到尊重,以便操作在“評論”檢視中內聯顯示。
工程
Electron 28 更新
在此迭代中,我們將 Electron 28 更新推廣到穩定版的使用者。此更新附帶 Chromium 120.0.6099.291 和 Node.js 18.18.2。我們要感謝所有在 Insiders 版本上自託管並提供早期反饋的人。
值得注意的修復
- 204886 在簡單檔案選擇器中開啟不同路徑但同名檔案失敗
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
問題跟蹤
對我們問題跟蹤的貢獻
- @gjsjohnmurray (John Murray)
- @IllusionMH (Andrii Dieiev)
- @RedCMD (RedCMD)
- @starball5 (starball)
- @the-coder-o (Abdul basit)
- @ArturoDent (ArturoDent)
拉取請求
對 vscode
的貢獻
- @333fred (Fred Silberberg):當作為字串或正則表示式的一部分時,不要修剪空白 PR #198164
- @89netraM (Mårten Åsberg):為間隔設定渲染最終行號 PR #207227
- @a-stewart (Anthony Stewart)
- 在 QuickAccess 中更改字首時阻止游標跳躍 - v2 PR #204702
- 在 nls.mock.ts 中匯出 ILocalizedString PR #206449
- @akbyrd (Adam Byrd)
- 存在多個游標時,為主游標和次游標實現不同的顏色 PR #181991
- 將 editor.action.focusNextCursor 更改為顯示主游標而不是所有游標 PR #182148
- @AndreasBackx (Andreas Backx):修復 Linux Wayland 平滑滾動。 PR #205122
- @andrewbranch (Andrew Branch):[typescript-language-features] 修復 autoImportFileExcludePatterns 格式使其在 Windows 上工作 PR #202762
- @andyscho (Andy Schoenberger):onDidChangeSelectedNotebooks 核心只有一個訂閱者 PR #204417
- @BABA983 (BABA):更好的測試側邊欄重試顏色 PR #207949
- @BrandonXLF (Brandon Fowler):覆蓋終端選項卡影像圖示的 CSS 內容 PR #207220
- @BrookMaoDev (Brook Mao):改進了 editor.useTabStops 設定的描述 PR #206552
- @btwiuse:cli:向
code serve-web
命令新增 --server-base-path 標誌 PR #207932 - @BusinessDuck (Dmitriy Yurov):修復瀏覽器自動填充表單事件的“e.getModifierState is not a function”錯誤 PR #206883
- @cchanche (Clément Chanchevrier):調整終端方向 PR #205015
- @CGNonofr (Loïc Mangeonjean)
- 修復鍵盤佈局檢測 PR #205193
- 修復不在 body 上時全屏容器尺寸檢測 PR #205884
- @cpendery (Chapman Pendery)
- 修復:終端建議按模糊分數排序 PR #208486
- 修復:當鍵繫結傳送到 shell 時不顯示終端建議 PR #208523
- 修復:建議小部件在完成接受後仍然存在 PR #208524
- @deyihu (hu de yi):編輯器貼上事件結果返回 ClipboardEvent PR #192732
- @dgileadi (David Gileadi):引入迷你地圖章節標題,類似於 Xcode PR #190759
- @futurist (James Yang):特性:為 IPCServer 新增 ipcLogger 和 timeoutDelay PR #193896
- @gjsjohnmurray (John Murray):使通道日誌級別可在輸出檢視中設定 PR #205159
- @harbin1053020115 (ermin.zem):修復:如果不存在內建演練,則在首次啟動時選擇第一個擴充套件演練。 PR #207303
- @hickford (M Hickford):排序行:如果未選擇任何內容,則排序所有行。 PR #200325
- @hsfzxjy (謝景怡)
- 修復設定編輯器列表項溢位 PR #206681
- 在單擊行號區域時新增日誌點 PR #206684
- @IncognitaDev (Luis Sousa):特性:將 PascalCase 新增到 CaseActions PR #206259
- @its-miroma (Miroma):更改預設 YAML 擴充套件 PR #206447
- @jeanp413 (Jean Pierre):修復麵包屑小部件未正確調整大小 PR #200591
- @jeremy-rifkin (Jeremy Rifkin):擴充套件君主功能以允許在規則中訪問狀態 PR #183463
- @jhasse (Jan Niklas Hasse):為 LineCommentCommand 使用 indentSize 而不是 tabSize PR #193811
- @Krzysztof-Cieslak (Krzysztof Cieślak)
- 修復內聯編輯中渲染刪除的差一錯誤 PR #205890
- 內聯編輯 - 確保在失焦時取消正在進行的請求 PR #206430
- 內聯編輯 - 確保在請求新編輯之前最終接受 PR #206525
- @lusingander (Kyosuke Fujimoto):修復
editor.cursorSurroundingLinesStyle
設定的描述損壞 PR #201482 - @mahmoudsalah1993 (Mahmoud Salah):對於 diff 編輯器,解決修改後的編輯器以允許在 c 中執行測試… PR #206026
- @marrej (Marcus Revaj):# 將部分接受型別新增到內聯完成處理程式 PR #202668
- @mkasenberg:searchEditor:新增單擊以窺視的選項 PR #204413
- @mroch (Marshall Roch):修復“Extension [object Object] is not known” PR #207764
- @NriotHrreion (NoahHrreion):修復懸停小部件的意外位置 PR #205502
- @orgads (Orgad Shaneh)
- 隧道:也將埠對映查詢擴充套件到查詢字串(第二次嘗試) PR #204807
- 隧道:重新新增埠對映的單元測試 PR #207249
- @PmcFizz (Fizz):更新 IActionDescriptor.precondition 描述 PR #176124
- @raphaelgpalma (Raphael Palma):修復語法錯誤:“But allow them if the are made from inside an…” PR #207584
- @rehmsen (Ole):也為瀏覽器上的並排檢視記錄
resource
遙測。 PR #208196 - @russelldavis (Russell Davis):修復 javascript 和 typescript 的 decreaseIndentPattern PR #201425
- @samdenty (Sam Denty):特性(web/lifecycleService):正確的 startupKind PR #206563
- @Sidebail (VLADIMIR VATSURIN):修復檔案相對路徑連結 PR #181475
- @SimonSiefke (Simon Siefke):修復:筆記本 baseCellViewModel 中的記憶體洩漏 PR #205499
- @solimant:遵守 GitHub 品牌名稱大小寫 PR #208503
- @thegecko (Rob Moran):Web 擴充套件主機啟動時更新 extensionPaths PR #193849
- @vinistock (Vinicius Stock):修復 Ruby 註釋中
in
和when
縮排意外取消縮排的錯誤 PR #206132 - @yamachu (Yusuke Yamada):修復在搜尋結果中顯示最深目錄中的檔案 PR #206609
- @Yesterday17 (Yesterday17):按節點深度順序排程 GestureEvent PR #200612
- @yiliang114 (易良):修復 webview 中複製/剪下命令不起作用的問題 PR #206529
- @yutotnh (yutotnh):在單詞操作中新增對識別單詞區域設定的支援 (#_50045) PR #203605
對 vscode-css-languageservice
的貢獻
- @balaji-sivasakthi (Balaji Sivasakthi):特性:支援 scss 的懸停工具提示 PR #367
對 vscode-eslint
的貢獻
- @JoshuaKGoldberg (Josh Goldberg ✨):特性:在 eslint.probe 設定中支援 json, json5, jsonc PR #1787
- @remcohaszing (Remco Haszing)
對 vscode-extension-samples
的貢獻
- @juliankasimir (Julian Kasimir):特性(lang):在 showQuickPick 函式中將德語替換為英語 PR #983
對 vscode-hexeditor
的貢獻
對 vscode-js-debug
的貢獻
- @Beanyy:修復當未設定描述時遠端物件中數字 0 的格式 PR #1968
- @mdh1418 (Mitchell Hwang):[CDP] 為 DotnetDebugger 錯誤事件傳送遙測資料 PR #1961
- @relief-melone (Relief.Melone):為構建新增代理支援 PR #1965
對 vscode-json-languageservice
的貢獻
- @denisw (Denis Washington):修復巢狀尾隨逗號情況下的排序錯誤 PR #223
對 vscode-pull-request-github
的貢獻
- @ipcjs (ipcjs):修復:使
review.openLocalFile
支援從鍵盤觸發。 PR #5840 - @mohamedamara1 (Mohamed Amara):修復 IssueOverviewPanel 的 ID PR #5822
對 vscode-pylint
的貢獻
- @MGasiewski:新增邏輯以將波浪號替換為 HOME 環境 PR #524
對 vscode-python-debugger
的貢獻
- @bersbersbers:更新
launch.json
架構 PR #243 - @StephanTLavavej (Stephan T. Lavavej):修復拼寫錯誤 PR #217
對 debug-adapter-protocol
的貢獻
- @andyw8 (Andy Waite):更新 Ruby LSP 的介面卡列表 PR #471
- @svaante (Daniel Pettersson):將 Emacs dape 包新增到 Implementations 工具部分 PR #469
對 inno-updater
的貢獻
- @ChayimFriedman2 (Chayim Refael Friedman):刪除不需要的
unsafe impl Send
PR #25
對 language-server-protocol
的貢獻
- @asukaminato0721 (Asuka Minato)
- @iliaamiri (Ilia Abedianamiri):摘要段落中的一個小錯字 PR #1903
- @lukaskesch (Lukas Kesch):更新 footer.html 中的版權年份至 2024 PR #1909
- @MariaSolOs (Maria José Solano):診斷訊息中 MarkupContent 支援的規範 PR #1905
- @oliviacrain (Olivia Crain):刪除 rnix-lsp 的伺服器條目 PR #1902
對 monaco-editor
的貢獻
- @jeremy-rifkin (Jeremy Rifkin):修復 C++ 原始字串文字高亮顯示錯誤 PR #4436
對 node-pty
的貢獻