2022 年 4 月(版本 1.67)
更新 1.67.1:此更新解決了此安全問題。
更新 1.67.2:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2022 年 4 月版本。此版本有許多更新,我們希望您會喜歡,其中一些主要亮點包括
- 資源管理器檔案巢狀 - 在資源管理器中將生成的檔案巢狀在原始檔下。
- 設定編輯器篩選器 - 篩選按鈕可調出諸如 @Modified settings 等搜尋。
- 括號對彩色化 - 彩色括號對現已預設啟用。
- 切換內嵌提示 - 按 Ctrl+Alt 可在編輯器中快速隱藏或顯示內嵌提示。
- 拖放建立 Markdown 連結 - 將檔案拖放到編輯器中以建立 Markdown 連結。
- 在 Markdown 中查詢所有引用 - 快速查詢對標題、檔案、URL 的所有引用。
- Java 擴充套件更新 - 現支援內嵌提示和惰性變數解析。
- 擴充套件作者的 UX 指南 - VS Code 擴充套件 UI 最佳實踐指南。
- 新的 Rust 語言主題 - 瞭解如何在 VS Code 中使用 Rust 程式語言。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
觀看釋出會:收聽 VS Code 團隊討論一些新功能。您可以在我們的 YouTube 頻道上找到活動的錄製內容。
亮點短片:如果您只有 60 秒時間,請檢視4 月 VS Code 釋出亮點影片,快速瞭解新功能。
內測版:想盡快嘗試新功能?您可以下載每晚的內測版構建,並儘快嘗試最新的更新。
工作臺
檔案資源管理器檔案巢狀
資源管理器現在支援根據檔名巢狀相關檔案。有幾個設定可以控制此行為
explorer.fileNesting.enabled- 控制檔案巢狀是否普遍啟用。它可以設定為全域性或特定工作區。explorer.fileNesting.expand- 控制巢狀檔案是否預設展開。explorer.fileNesting.patterns- 控制檔案如何巢狀。預設配置為 TypeScript 和 JavaScript 專案提供巢狀智慧,但鼓勵您修改此配置以適應您自己的專案結構。一些示例
預設配置

當檔案與目錄名稱匹配時("index.ts": "${dirname}.ts")巢狀在 index.ts 下

巢狀與另一個檔案同名但添加了額外段的檔案("*": "${basename}.*.${extname}")

檔案巢狀已透過實驗性設定提供了幾次迭代。現在的行為與以前基本相同,除了檔案操作。實驗性設定 explorer.experimental.fileNesting.operateAsGroup 已被刪除,取而代之的是在摺疊時將巢狀視為一個組,否則視為單個實體。這意味著如果要複製、剪下、拖動或刪除整個巢狀檔案堆疊,可以摺疊巢狀,然後將其作為一個實體進行操作。當巢狀元素展開時,選擇將按正常方式進行。
設定編輯器搜尋篩選按鈕
設定編輯器搜尋控制元件現在右側包含一個漏斗按鈕。單擊該按鈕會顯示一個篩選器列表,您可以將這些篩選器應用於搜尋查詢以篩選結果。
主題:Light Pink
設定編輯器語言篩選器指示器
應用語言篩選器時,設定編輯器語言篩選器現在會更改範圍文字,以更清楚地顯示正在對哪個語言執行操作。上面的短影片顯示了將 Markdown 語言篩選器 (@lang:markdown) 應用於已篩選設定。
作為參考,當應用語言篩選器時,修改設定的值將僅修改該語言的該設定的值。 特定語言設定的範圍在 settings.json 中由語言識別符號限定
"[markdown]": {
"editor.wordBasedSuggestions": "off"
}
重構後儲存檔案
重構(如重新命名)通常會修改多個檔案,並使其處於未儲存更改(髒)狀態。外部開發工具通常要求儲存這些檔案。為了使此工作流程更輕鬆,有一個新設定 files.refactoring.autoSave,它預設為 true,並控制是否應自動儲存作為重構一部分的檔案。
在編輯器限制中排除髒編輯器
新設定 workbench.editor.limit.excludeDirty 控制最大開啟編輯器數是否應排除髒編輯器以計入配置的限制。此設定預設停用 (false)。
將“未提交的更改”重新帶回時間線
上個月推出本地歷史記錄功能時,我們從 Git 時間線提供程式中刪除了未提交的更改條目,因為它感覺有點多餘。但是,某些使用者認為此時間線條目具有真正的價值,現在您可以透過相應地配置新設定 git.timeline.showUncommitted 將其重新帶回。
開啟失敗時新的編輯器佔位符
當編輯器無法開啟時,VS Code 不再顯示通知並顯示之前開啟的編輯器。相反,會有一個帶有錯誤訊息的通用佔位符,在某些情況下,還會顯示解決錯誤的措施。
語言狀態改進
語言狀態項現在顯示格式化程式衝突 - 當為某個語言安裝了多個格式化程式但未將任何格式化程式配置為預設格式化程式時,就會發生這種情況。此外,當包含嚴重狀態時,語言狀態項會更加突出。
此外,當懷疑您的文件是與當前設定的語言不同的語言時,語言狀態項現在將顯示切換語言的提示。這僅適用於無標題編輯器和筆記本單元,可以使用 workbench.editor.languageDetectionHints 設定進行配置。下面是在 Handy Dandy Notebook 中演示的,它支援以各種不同的語言執行單元。
顯示無效或不相容的擴充套件
擴充套件檢視現在在已安裝擴充套件列表中顯示具有錯誤狀態的無效或不相容擴充套件。例如,如果您的 VS Code 版本是 1.67.0-insider,並且您安裝了一個需要 VS Code 版本 1.68.0 的擴充套件,那麼它將在列表中顯示為不相容錯誤狀態。

退出前確認
可以配置新設定 window.confirmBeforeClose,以在退出應用程式之前顯示確認對話方塊。
您可以選擇 keyboardOnly 以在使用鍵繫結時彈出確認對話方塊,或者選擇 always,即使使用滑鼠退出時也會彈出。
注意:此設定並非全新,已在 VS Code for Web 中提供了一段時間。
comments.openView 預設值
comments.openView 的舊預設值是 file,這會導致每次開啟包含註釋的檔案時都開啟“註釋”檢視。為了使“註釋”檢視不那麼嘈雜,新預設值是 firstFile,這會導致“註釋”檢視僅在會話期間首次開啟包含註釋的檔案時開啟。
多行註釋
在幕後,VS Code 自注釋 UX 最終確定以來就支援多行註釋,但多行註釋從未在 UI 中浮現。您現在可以檢視和留下多行註釋。
在新視窗中處理 URI
每當 VS Code URI 包含查詢引數 windowId=_blank 時,VS Code 將在新視窗中處理它。示例:vscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.git&windowId=_blank。
編輯器
括號對彩色化預設啟用
鑑於在 1.60 版本中引入的新括號對彩色化功能獲得了積極反饋,我們預設啟用了括號對彩色化。

可以透過將 "editor.bracketPairColorization.enabled" 設定為 false 來停用括號對彩色化。
也可以僅為特定語言停用括號對彩色化
"[typescript]": {
"editor.bracketPairColorization.enabled": false,
},
TextMate 語法可以將標記標記為不平衡
以前,TextMate 語法無法將某些括號標記為不平衡,例如 shell 指令碼的 case 語句中的右括號

為了使括號對匹配和彩色化更加可靠,TextMate 語法貢獻現在可以表示在某些標記中的括號不應匹配。在擴充套件的 package.json 的 contributes 部分中,提供的語法可以使用屬性 balancedBracketScopes(預設為 ["*"])和 unbalancedBracketScopes(預設為 [])來包含或排除用於括號匹配的作用域。
"grammars": [{
"language": "shellscript",
"scopeName": "source.shell",
"path": "./syntaxes/shell-unix-bash.tmLanguage.json",
"balancedBracketScopes": [ "*" ],
"unbalancedBracketScopes": [ "meta.scope.case-pattern.shell" ]
}],
使用此功能,shell 指令碼的語法現在可以指示 case 語句中的 ) 不應匹配

新的括號匹配演算法
括號匹配現在使用與括號彩色化相同的資料結構。這既提高了準確性又提高了效能。
舊的括號匹配行為(請注意,顏色和突出顯示裝飾不匹配)

新的括號匹配行為

括號指南改進
水平括號指南現在正確支援換行。此外,僅跨越單行的括號對也有自己的水平括號指南。

水平括號指南預設停用,可以使用 "editor.guides.bracketPairsHorizontal": true 啟用。
在此版本中,"editor.guides.highlightActiveIndentation" 現在接受值 "always"。如果設定為 always,即使已經有活動的括號對,也會突出顯示縮排指南。
切換內嵌提示
內嵌提示是在原始碼中顯示附加資訊的好方法。但是,有時您只想檢視實際的原始碼。為了支援快速隱藏內嵌提示,editor.inlayHints.enabled 設定已更改:除了 on 和 off 之外,還有值 onUnlessPressed 和 offUnlessPressed。on/offUnlessPressed 值會在按下並按住 Ctrl+Alt 時隱藏或顯示內嵌提示。
編輯器 > 內嵌提示:已啟用值
on- 內嵌提示已啟用。off- 內嵌提示已停用。onUnlessPressed- 內嵌提示顯示並在按Ctrl+Alt時隱藏。offUnlessPressed- 內嵌提示隱藏並在按Ctrl+Alt時顯示。
改進的行內建議
上個月,我們添加了使用 👻 幽靈文字(微弱著色)進行快速建議的功能。提醒:您需要為 editor.quickSuggestions 設定使用 inline。我們在此領域做了一些改進工作,特別是現在支援觸發字元和 TypeScript“使用引數完成函式”。
要停用在鍵入觸發字元(例如 .)時停用 IntelliSense,請設定 "editor.suggestOnTriggerCharacters": false。要啟用 TypeScript 函式呼叫完成,請使用 "typescript.suggest.completeFunctionCalls": true。
將文字拖放到編輯器中
您現在可以將文字從其他應用程式拖放到文字編輯器中。例如,在 macOS 上,這允許您將表情符號從表情符號面板拖放到文字編輯器中
拖動時,虛線游標會顯示文字將插入的位置。
終端
查詢結果計數
在終端中搜索時,結果計數和當前選定的匹配索引現在顯示在“查詢”控制元件中。

原始碼管理
原始碼管理儲存庫檢視
在此里程碑中,我們引入了一個新設定 scm.repositories.sortOrder,用於控制顯示在原始碼管理儲存庫檢視中的儲存庫的預設排序順序。儲存庫可以按發現順序、按名稱和按完整路徑排序。可以使用原始碼管理儲存庫檢視的 ... 檢視和更多操作選單和原始碼管理檢視的 ... > 檢視和排序 > 儲存庫選單來更改排序順序。
下面的短影片顯示了 SCM > 儲存庫:排序順序設定預設值為 discovery time(發現儲存庫的時間),並且您也可以在“原始碼管理”檢視中更改排序順序。
編輯器裝飾改進
上一個里程碑中,我們透過對修改行裝飾器採用模式來改進了已新增/已修改行編輯器裝飾器的可訪問性。在此里程碑中,我們添加了一個新設定 scm.diffDecorationsGutterPattern,允許使用者切換編輯器裝飾器的模式。
此設定預設為對修改行裝飾使用模式,但不適用於新增行裝飾
"scm.diffDecorationsGutterPattern": {
"added": false,
"modified": true
}
效能改進
將 git.untrackedChanges 設定為 hidden 的使用者在使用大型儲存庫時將體驗到更好的效能。這是透過在呼叫 git status 時傳遞 -uno 引數來實現的。
擴充套件的遠端源提供程式 API
Git 擴充套件 API 現在允許註冊或顯示遠端源提供程式的擴充套件提供有關遠端源的更豐富資訊。
遠端源提供程式現在可以為單個遠端源設定描述和圖示。此外,提供程式可以選擇指定最近的遠端源。這些源顯示在選取器中的頂層,以便於訪問,如果提供了時間戳,則按時間戳排序。
擴充套件的 API 已被內建的 GitHub 擴充套件以及 github.dev 和 vscode.dev 中的 GitHub Repositories 和 Azure Repos 擴展采用。
使用 SSH 從 GitHub 克隆
新設定 github.gitProtocol 允許您更改從 GitHub 克隆儲存庫時的預設協議。預設值為 https,但可以更改為 ssh。
除錯
自動展開惰性變數
幾個月前,我們添加了在偵錯程式“變數”檢視中單擊按鈕以展開“惰性”變數的支援。有一個新設定 debug.autoExpandLazyVariables,用於自動展開惰性變數而無需單擊。
惰性變數的新按鈕
我們將文字連結按鈕更新為帶有“眼睛”圖示的真實按鈕。該“眼睛”圖示也更新得更像眼睛。

按住 Shift 鍵單擊以停用斷點
您現在可以按住 Shift 鍵單擊斷點(或條件斷點或日誌點)以停用它,然後重新啟用它。
語言
Markdown:拖放到編輯器中以建立連結
您現在可以透過將檔案從 VS Code 的資源管理器拖放到 Markdown 編輯器中來快速建立 Markdown 連結。在將檔案拖到 Markdown 編輯器上時按住 Shift 鍵,將其拖放到編輯器中並建立指向它的連結
如果檔案看起來像影像,VS Code 將自動插入 Markdown 影像。否則將新增正常的 Markdown 連結。
這也適用於從其他應用程式拖動某些型別的檔案,例如從網頁瀏覽器拖放影像
您可以透過設定 "markdown.editor.drop.enabled": false 來停用此拖放行為。
Markdown:查詢對標題的所有引用
VS Code 現在支援在 Markdown 檔案中對標題執行查詢所有引用。這使您可以檢視當前工作區中使用給定標題的所有位置,包括從其他 Markdown 檔案連結到它的位置。
要開始使用,請將游標置於標題本身或連結到標題的片段部分(例如,[link text](#_some-header) 或 [link text](/path/to/file#some-header) 中的 #some-header),然後執行查詢所有引用。

這將在“引用”檢視中顯示所有引用。如果喜歡不同的檢視,還可以使用檢視引用或轉到引用命令。
Markdown:查詢對引用連結的所有引用
VS Code 還支援查詢當前檔案中對引用連結的所有引用。這支援以下情況
[some text][ref]中的ref。- 簡寫連結
[ref]中的ref。 - 連結定義
[ref]: http://example.com中的ref。

Markdown:查詢對檔案的所有引用
您現在還可以查詢當前工作區中對給定 Markdown 檔案的所有引用。這同樣包括跨檔案連結。
可以通過幾種方式觸發此操作
- 要查詢對當前 Markdown 檔案的引用,請使用Markdown:查詢檔案引用命令。
- 要查詢資源管理器中的 Markdown 檔案引用,請右鍵單擊它並執行查詢檔案引用命令。
- 對指向 Markdown 檔案的連結的檔案部分執行查詢所有引用,例如
[text](/link/to/file.md)。
這將列出引用給定檔案的所有位置,包括對該檔案中標題的引用。
Markdown:查詢對 URL 的所有引用
最後,我們還支援查詢當前工作區中使用給定 URL 的所有位置。

Markdown:重新命名標題
是否曾經更改 Markdown 檔案中的標題,然後意識到您也意外地破壞了指向它的所有連結?這就是我們新的 Markdown 重新命名支援可以提供幫助的地方。
要開始使用,請將游標置於標題上,然後按 F2 開始重新命名。輸入標題的新文字,然後按 Enter 接受。這既會更新當前標題,也會更新當前工作區中指向它的所有已知連結。
您可以在標題本身或連結到標題的標題元件上觸發重新命名。例如,[link text](#_some-header) 或 [link text](/path/to/file#some-header) 中的 some-header。
Markdown:重新命名引用連結
您還可以在 Markdown 中重新命名引用連結。這將更新當前 Markdown 檔案中的所有引用連結

Markdown:重新命名檔案
完善我們新的 Markdown 重新命名支援,您現在可以使用 F2 對 Markdown 連結中的檔案路徑進行操作,既可以重新命名磁碟上的檔案,也可以更新對它的所有 Markdown 引用

目前,僅支援使用 F2 對文字編輯器中指向檔案的連結重新命名檔案。在即將到來的迭代中,我們還計劃支援在資源管理器中觸發重新命名時更新連結。
JSON
新設定 json.validate.enable 允許您關閉 JSON 驗證。
Web 版 VS Code
開啟遠端儲存庫選取器
當您使用開啟遠端儲存庫選取器時,VS Code for the Web 現在遵循 window.openFoldersInNewWindow 設定。這將選取器行為與 VS Code 的其他版本對齊,並替換了在新視窗中開啟快速選取項按鈕。
對擴充套件的貢獻
Java
內聯提示
包含在 Extension Pack for Java 中的 Java 語言服務現在支援內嵌提示以顯示方法簽名的引數名稱。
Java 引數名稱內嵌提示有三種模式
literals- 僅為文字引數啟用引數名稱提示(預設)。all- 為文字和非文字引數啟用引數名稱提示。none- 停用引數名稱提示。
惰性變數解析
Debugger for Java 擴充套件現在支援'惰性'變數。此功能允許您延遲昂貴變數的操作,直到您明確展開偵錯程式 UI 以檢視其值。
Jupyter
Jupyter PowerToys 擴充套件
我們很高興地宣佈 Jupyter PowerToys 擴充套件,它提供了用於處理 Jupyter 筆記本的實驗性功能。在第一個版本中,我們原型化了以下功能
- 核心管理面板
- 上下文幫助
- 執行分組
我們希望您試用一下這些功能,並告訴我們您的想法,以便我們有朝一日能將其完善為受支援的功能!
有關詳細資訊,請參閱 vscode-jupyter-powertoys 儲存庫中的 README。
Web 擴充套件
Jupyter 擴充套件現在可以作為 Web 擴充套件安裝,用於 vscode.dev。功能目前有限,僅支援在不需要 https 的 Jupyter 伺服器上執行筆記本(.ipynb 檔案)。
如果您想體驗此功能,請在本地機器上啟動 Jupyter,命令如下:
jupyter --no-browser --NotebookApp.allow_origin_pat=https://.*\.vscode-cdn\.net
並使用命令Jupyter:指定用於連線的 Jupyter 伺服器連線到它。
在即將釋出的版本中,我們將在瀏覽器中執行啟用更多功能,包括
- 基於 'https' 的伺服器
- IntelliSense
- 資料檢視
- 變數檢視
- 互動式視窗
- IPyWidgets
- 繪圖檢視
- 匯出
Jupyter 核心處理
Jupyter 核心處理進行了一些更新
- 為了使核心崩潰時更加明顯,擴充套件現在在單元輸出中顯示此資訊。
- 現在,當在執行期間檢測到某些已知錯誤時,單元輸出中會提供故障排除指南。
- 解決核心執行問題可能是一個棘手且耗時的過程。我們在 wiki 上整理了一個故障排除部分,希望可以幫助您更快地找到解決方案。我們的 GitHub Discussions 論壇也是獲取幫助的絕佳資源。
Python
更改語言伺服器時無需重新載入
Python 擴充套件現在支援更新 python.languageServer 設定的值,並自動重新啟動語言伺服器,而無需重新載入 VS Code。
Black 格式化程式擴充套件
現在有一個 Black Formatter 擴充套件,它使用 black 格式化程式提供 Python 格式化支援。可以安裝該擴充套件的預釋出版本。
使用 isort 組織匯入
新的 isort 擴充套件,它使用 isort 庫提供匯入組織。該擴充套件的預釋出版本可用。
遠端開發
遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
您可以在 Remote Development release notes 中瞭解新擴充套件功能和錯誤修復。
GitHub 拉取請求和議題
GitHub Pull Requests and Issues 擴充套件的工作仍在繼續,該擴充套件允許您處理、建立和管理拉取請求和問題。此版本的亮點包括
- 多行註釋
- 以樹狀結構顯示提交更改
檢視擴充套件 0.42.0 的更改日誌以檢視其他亮點。
預覽功能
設定配置檔案
在此里程碑中,我們引入了設定配置檔案,它是您的設定、擴充套件和 UI 自定義的集合。如果您自定義了 VS Code,現在可以將您的自定義匯出到設定配置檔案 (mysetup.code-profile) 並將其儲存到您的計算機並與他人共享。
以下短影片演示了從 VS Code 匯出設定配置檔案
您還可以匯入設定配置檔案以恢復自定義。
下面演示了將設定配置檔案匯入 VS Code
您可以將設定配置檔案託管在雲中,例如將其儲存為公共 GitHub gist,並與他人共享 URL。可以透過提供 URL 來匯入設定配置檔案。
注意:目前,設定配置檔案中僅包含以下 UI 自定義。將來會新增更多。
- 狀態列項可見性
- 活動欄、底部面板和側面板項可見性和順序
- 檢視可見性、位置和順序
TypeScript 4.7 支援
此更新包括對即將釋出的 TypeScript 4.7 版本的支援。有關 TypeScript 團隊目前正在進行的工作的更多詳細資訊,請參閱 TypeScript 4.7 迭代計劃。一些亮點
- 使用新的轉到源定義命令直接跳轉到庫函式的 JavaScript 實現。您可以在 TypeScript issue #49003 中瞭解有關此功能並分享反饋。
- 將方法作為物件成員完成的程式碼片段。
- 組感知組織匯入.
要開始使用 TypeScript 4.7 nightly build,請安裝 TypeScript Nightly 擴充套件。
擴充套件創作
Tab API
我們已經最終確定了 tabs API 的只讀部分(也支援關閉選項卡),標誌著我們投票最多的問題之一 microsoft/vscode#15178 的完成。這會公開諸如有多少組、打開了哪些選項卡、哪些選項卡處於活動狀態、選項卡代表的編輯器型別等資訊!可以在 vscode.d.ts 檔案中找到更多資訊,API 的入口點是 window.tabGroups。
筆記本更改和儲存事件
我們最終確定了兩個與筆記本相關的事件
vscode.workspace.onDidSaveNotebookDocument- 每當儲存筆記本時觸發的事件。vscode.workspace.onDidChangeNotebookDocument- 每當筆記本更改時觸發的事件。這包括結構更改(例如新增或刪除單元)以及單元更改(例如更改輸出或元資料)。
支援非遞迴工作區檔案監視器
在以前的里程碑中,我們宣佈 createFileSystemWatcher API 可用於監視磁碟上的任何資料夾,只要該資料夾不在開啟的工作區內。我們現在放寬了此限制,並允許在任何地方使用非遞迴檔案監視器,即使在開啟的工作區內也是如此。非遞迴監視器的優點是配置的排除設定 (files.watcherExclude) 不適用,因此您可以確保檔案監視器僅針對您訂閱的路徑發出。
我們正在努力為具有自定義排除規則的擴充套件提供對遞迴監視器的全面支援,敬請期待!
使用者體驗指南
UX Guidelines for extension authors 已重新制作,具有自己的目錄,您可以在其中找到使用各種 VS Code 使用者介面元素的最佳實踐。特定主題討論了為擴充套件建立 UI 時的推薦做法和不推薦做法,以便它們無縫整合到 VS Code 中。

執行擴充套件測試
以前,VS Code 會在測試執行完成後立即退出擴充套件主機程序。現在,在執行擴充套件測試時,VS Code 將首先經歷常規的 deactivate 流程,然後才退出。這允許生成程序的擴充套件更好地清理自身。
將檔案拖放到自定義樹中
在最近最終確定的樹拖放 API 的基礎上,我們現在基本支援使用 text/uri-list MIME 型別將檔案從作業系統拖放到擴充套件樹檢視中。
偵錯程式擴充套件創作
supportSuspendDebuggee 和 supportTerminateDebuggee 的 UI
disconnect 請求有兩個額外的選項,允許客戶端控制斷開連線時除錯物件會發生什麼
suspendDebuggee指示斷開連線後除錯物件是否應保持掛起狀態。terminateDebuggee指示偵錯程式斷開連線時除錯物件是否應終止。
除錯介面卡可以使用功能 supportSuspendDebuggee 和 supportTerminateDebuggee 來指示它支援這些選項。如果支援,除錯工具欄中的停止按鈕旁邊將出現一個下拉列表,其中包含額外的斷開連線命令。
例如,在“啟動”型別的除錯會話中,對於支援這兩種功能的除錯介面卡,預設工具欄按鈕將是正常的停止按鈕,但下拉列表將包含斷開連線 (terminateDebuggee: false) 和斷開連線並掛起 (terminateDebuggee: false, suspendDebuggee: true)。

語言伺服器協議
對筆記本和拉取診斷的支援已從提議狀態移出,準備在 3.17 版本中釋出。相應的客戶端和伺服器庫的新版本已釋出到 npm。
提議的 API
每個里程碑都會帶來新的提議 API,擴充套件作者可以嘗試這些 API。一如既往,我們希望得到您的反饋。以下是嘗試提議 API 的步驟
- 查詢您要嘗試的提議並將其名稱新增到
package.json#enabledApiProposals。 - 使用最新的vscode-dts並執行
vscode-dts dev。它會將相應的d.ts檔案下載到您的工作區中。 - 您現在可以根據該提議進行程式設計。
您不能釋出使用提議 API 的擴充套件。下個版本中可能會有破壞性更改,我們絕不希望破壞現有擴充套件。
拖放到編輯器中
提議的文字編輯器拖放 API 允許擴充套件處理拖放到文字編輯器中的事件。這些拖放事件可以來自 VS Code 內部(例如將檔案從 VS Code 的資源管理器拖到文字編輯器中),也可以透過將檔案從作業系統拖到 VS Code 中生成。
在此迭代中,我們將此 API 切換到基於提供程式的模型。我們還建立了一個新擴充套件示例,演示如何使用此 API。
檢視上的徽章
用於向檢視新增徽章的新提案可供試用。與徽章在 VS Code 核心提供的檢視上的工作方式類似,擴充套件可以使用此 API 提案向檢視新增數字徽章。
工程
用於 Electron 冒煙測試的 Playwright
我們長期以來一直使用 Playwright 進行基於 Web 的冒煙測試。但是,我們的基於 Electron 的冒煙測試仍然依賴於我們自己的自定義解決方案。藉助 Playwright 中的 Electron 支援,我們能夠重用大部分基於 Web 的冒煙測試程式碼,並將其用於基於 Electron 的冒煙測試。我們很高興現在使用 Trace Viewer 來事後診斷失敗的冒煙測試。
擴充套件的新本地化管道
VS Code 支援多種顯示語言,您可以透過安裝語言包來啟用這些語言。這些非常適合本地化 VS Code 本身以及 VS Code 的內建擴充套件。在此迭代中,我們開始了本地化團隊擁有的非內建擴充套件的標準化工作。您將在 GitHub Repositories 和 Azure Repos 擴充套件中看到此工作的結果,因為它們的共同依賴擴充套件 Remote Repositories 是第一個加入此工作的擴充套件。
在下一次迭代中,我們將繼續進行標準化工作並引入更多擴充套件。 Python 擴充套件目前正在進行中,GitHub Repositories 和 Azure Repos 將緊隨其後。我們希望達到這樣一個目標:團隊擁有的每個擴充套件都已本地化,並且將來建立的任何新擴充套件都能夠輕鬆加入,以便非英語母語使用者能夠在 VS Code 中獲得出色的體驗。
文件
VS Code 中的 Rust
有一個新的Visual Studio Code 中的 Rust 主題,描述了使用 rust-analyzer 擴充套件在 VS Code 中對 Rust 程式語言的支援。rust-analyzer 擴充套件包括豐富的功能,例如程式碼完成、linting、重構、除錯等。

值得注意的修復
- 114844 允許從崩潰對話方塊中跳過恢復上一會話的編輯器
- 127936 允許在啟動時將
files.encoding設定為特定語言設定 - 138461 React 檔案中一對 [ ] 內的 Emmet 自動完成是錯誤的
- 139392 確認清除最近的專案
- 139950 命中斷點時,插入符號(游標)應移動到該行
- 145265 Windows 上的終端使用 cmd /C,這會損壞傳遞的引數
- 146406 終端中的 Powerline 符號顏色錯誤
- 146977 在 macOS 上的 Info.plist 中宣告資料夾支援
- 147104 無法完成登入 GitHub
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
Web 擴充套件
用於啟用將程式碼作為Web 擴充套件執行的擴充套件的擴充套件作者(以下列表介於 2022 年 3 月 28 日和 2022 年 5 月 1 日之間)
- Logos for VS Code (Aarnav Tale)
- Copy Word in Cursor (Alessandro Fragnani)
- Delphi Keymap (Alessandro Fragnani)
- Pascal (Alessandro Fragnani)
- Separators (Alessandro Fragnani)
- Tagged Comment (Alessandro Fragnani)
- NeuroViewer (Anibal Solon)
- sb4-extension (arrow2nd)
- DeloresDevDev (bolinfest)
- VSCode Remote Server (btwiuse)
- Text Toolbox (Carlo Cardella)
- CloudStudio.common (CloudStudio)
- Vsnips (corvofeng)
- Const & Props Snippets (dein Software)
- dein Snippets Pack (dein Software)
- EVSCode Web IDE Connector (web, experimental) (Elrond)
- String To Any Case (gauseen)
- Image Gallery (GeriYoco)
- 模袋雲-modelo (heekei zhuang)
- sigma (humpalum)
- My Snippets (Jaedeok Kim)
- GCS Uploader (kb-devs)
- TEI Japanese Editor Web (ldas)
- tal7aouy.indent-colorizer (Mhammed Talhaouy)
- minim-tools.m-web (minim-tools)
- UUID Generator (Motivesoft)
- TyranoScript syntax (orukred)
- VDM VSCode (Overture)
- Excalidraw (pomdtr)
- WebGL GLSL Editor (Rácz Zalán)
- Vue (Rahul Kadyan)
- VueDX (Rahul Kadyan)
- BDD Goto Step (rioj7)
- Extra Context (rioj7)
- web_prolin_emulator (runthoser)
- Go Nav Bar (Scotthew)
- yaist-vscode (toyjack)
- Pyodide Runner (tym-inc)
- Import Cost (Wix)
- Lawtext (yamachi)
- ZG Assembler (ZENG GE)
問題跟蹤
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- Lemmingh (@Lemmingh)
拉取請求
對 vscode 的貢獻
- @100paperkite
- 修復 #146305 PR #146449
- 修復 #147420 PR #147930
- @a-stewart (Anthony Stewart)
- 在未提供操作時建立空的 div.message-actions-container PR #140578
- 更新橫幅 markdown 中連結的著色 PR #140581
- 將面向使用者的 SCM 例項重新命名為 Source Control PR #146742
- @AkatQuas (Akat):fix(markdown): avoid considering link references/sources in code sections PR #146826
- @amanasifkhalid (Aman Khalid)
- Close #143241: Testing UI filter survives window reload PR #147344
- Fix #146166: Snippet transform preserves existing camel/Pascal case PR #147422
- @ambar (ambar):fix parenthesis encoding in unicode highlighting PR #146248
- @andschwa (Andy Schwartzmeyer):Delete built-in PowerShell snippets PR #146459
- @babakks (Babak K. Shandiz):Ask user to select PR templates when forking a repository PR #143733
- @Balastrong (Leonardo Montini)
- 145367 Added cwd to terminal name if present PR #145620
- Replaced true and false with on and off in debug.inlineValues PR #146543
- @bytemain (Artin):Fix
TerminalProfilenot throw PR #143251 - @cdce8p (Marc Mueller):Fix
gitgetBranch [v1.65.0] PR #144449 - @CGNonofr (Loïc Mangeonjean):Fix freezed folding blocks while computing new ones PR #146545
- @dlech (David Lechner):Fix editor eating ContextMenu key when contexmenu is disabled PR #146968
- @eamodio (Eric Amodio):Fixes #140787 watches proper worktree dir PR #140789
- @gabritto (Gabriela Araujo Britto):Add support for label details in TS completion item PR #146270
- @gjsjohnmurray (John Murray):Add 'Evaluate in Debug Console' and 'Add to Watch' to palette PR #146775
- @heartacker:add the git.fetch action to the first header menu PR #137940
- @hello-smile6:Update package.json PR #146278
- @IllusionMH (Andrii Dieiev):Fix version in error message PR #147750
- @ImCa0 (ImCaO):Fix spell check errors in translatable strings PR #147234
- @jhgg (Jake):feat: inlay hints displayStyle PR #145470
- @jlelong (Jerome Lelong):Update to vscode-latex-basics 1.3.0 PR #146308
- @jsjoeio (Joe Previte)
- refactor(workbench.ts): update outdated comment PR #146364
- fix(service-worker): allow webview resources to be served from same domain PR #147467
- @laurentlb (Laurent Le Brun)
- Comments panel: use the date of the last reply PR #147922
- Comments panel: do not truncate the author name PR #147924
- @luoriyuhui21 (Keming Liang):Add a setting to ignore dirty tabs in workbench.editor.limit.value. PR #144545
- @manunamz (manunam):Update markdownRenderer.ts path in docstring. PR #146332
- @matthewjamesadam (Matt Adam):Implement badge API for webviews and treeviews PR #144775
- @mbelsky (Max Belsky):Disable a breakpoint on shift+click PR #147598
- @michaelkuhn (Michael Kuhn):Unify and fix Solarized token colors PR #142883
- @neeleshb (Neelesh Bodas):Misc. A11y fixes for VSCode PR #145775
- @nesk (Johann Pardanaud):Improve UX for markdown snippets PR #146431
- @quanzhuo (Quan Zhuo)
- Fix issue #145134, fetch all repos for authenticated user PR #145203
- fix #140612: toggle the Toggle Button when the context line number la… PR #147141
- @Suven-p (Suven-p):Add action to hide all tests PR #148003
- @tharbakim:Fix detection of CSS Preprocessor Comments at Start of File in Emmet Extension PR #146121
- @thekorn (Markus Korn):git extension: if 'git.untrackedChanges' is set to 'hidden' ignore untracked files when running 'git status' (fixes microsoft/vscode#131020) PR #131030
- @yepitschunked:[Git watcher] ignore watchman cookies PR #127702
對 vscode-css-languageservice 的貢獻
- @romainmenke (Romain Menke):fix selector specificity display for
:langand similar pseudo selectors PR #268
對 vscode-generator-code 的貢獻
- @rupeshs (Rupesh Sreeraman):Fix for ext-snippets quick start documentation PR #340
對 vscode-js-debug 的貢獻
對 vscode-pull-request-github 的貢獻
- @hoontae24:Support the copied permalink for Github Enterprise URL PR #3460
對 debug-adapter-protocol 的貢獻
- @KamasamaK:Fix some typos PR #264
- @peterderivaz (Peter de Rivaz):Fix description for SetBreakpointsArguments PR #261
- @polinasok:Update adapters.md for Go debug adapter PR #262
- @WardenGnaw (Andrew Wang):Remove extra newline in adapters.md PR #263
對 language-server-protocol 的貢獻
對 monaco-editor 的貢獻
- @DetachHead:add
outkeyword to typescript PR #3066 - @Yash-Singh1 (Yash Singh):feat: add fr units for css grid PR #3078