現已釋出!閱讀關於 11 月新增功能和修復的內容。

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 月版本。此版本有許多更新,我們希望您會喜歡,其中一些主要亮點包括

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。

觀看釋出會:收聽 VS Code 團隊討論一些新功能。您可以在我們的 YouTube 頻道上找到活動的錄製內容

亮點短片:如果您只有 60 秒時間,請檢視4 月 VS Code 釋出亮點影片,快速瞭解新功能。

內測版:想盡快嘗試新功能?您可以下載每晚的內測版構建,並儘快嘗試最新的更新。

工作臺

檔案資源管理器檔案巢狀

資源管理器現在支援根據檔名巢狀相關檔案。有幾個設定可以控制此行為

  • explorer.fileNesting.enabled - 控制檔案巢狀是否普遍啟用。它可以設定為全域性或特定工作區。
  • explorer.fileNesting.expand - 控制巢狀檔案是否預設展開。
  • explorer.fileNesting.patterns - 控制檔案如何巢狀。預設配置為 TypeScript 和 JavaScript 專案提供巢狀智慧,但鼓勵您修改此配置以適應您自己的專案結構。一些示例

預設配置

.js and .min.js files nested under .ts file, tsconfig.test.json nested under tsconfig.json, package-lock.json nested under package.json

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

in directory named SomeFolder, SomeFolder.ts is nested under index.ts

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

file1.test.myext is nested under file1.myext, file2.spec.other is nested under file2.other

主題:GitHub Light High Contrast

檔案巢狀已透過實驗性設定提供了幾次迭代。現在的行為與以前基本相同,除了檔案操作。實驗性設定 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 中演示的,它支援以各種不同的語言執行單元。

主題:GitHub Light High Contrast

顯示無效或不相容的擴充套件

擴充套件檢視現在在已安裝擴充套件列表中顯示具有錯誤狀態的無效或不相容擴充套件。例如,如果您的 VS Code 版本是 1.67.0-insider,並且您安裝了一個需要 VS Code 版本 1.68.0 的擴充套件,那麼它將在列表中顯示為不相容錯誤狀態。

Incompatible extension details shown in the Extensions view item hover

退出前確認

可以配置新設定 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 版本中引入的新括號對彩色化功能獲得了積極反饋,我們預設啟用了括號對彩色化。

Side by side comparison with bracket pair colorization on and off

可以透過將 "editor.bracketPairColorization.enabled" 設定為 false 來停用括號對彩色化。

也可以僅為特定語言停用括號對彩色化

"[typescript]": {
  "editor.bracketPairColorization.enabled": false,
},

TextMate 語法可以將標記標記為不平衡

以前,TextMate 語法無法將某些括號標記為不平衡,例如 shell 指令碼的 case 語句中的右括號

Old behavior where unbalanced brackets not detected

為了使括號對匹配和彩色化更加可靠,TextMate 語法貢獻現在可以表示在某些標記中的括號不應匹配。在擴充套件的 package.jsoncontributes 部分中,提供的語法可以使用屬性 balancedBracketScopes(預設為 ["*"])和 unbalancedBracketScopes(預設為 [])來包含或排除用於括號匹配的作用域。

"grammars": [{
    "language": "shellscript",
    "scopeName": "source.shell",
    "path": "./syntaxes/shell-unix-bash.tmLanguage.json",
    "balancedBracketScopes": [ "*" ],
    "unbalancedBracketScopes": [ "meta.scope.case-pattern.shell" ]
}],

使用此功能,shell 指令碼的語法現在可以指示 case 語句中的 ) 不應匹配

New behavior correctly skipping a bracket that isn't matched

新的括號匹配演算法

括號匹配現在使用與括號彩色化相同的資料結構。這既提高了準確性又提高了效能。

舊的括號匹配行為(請注意,顏色和突出顯示裝飾不匹配)

Old behavior with incorrect bracket matching

新的括號匹配行為

New behavior with correct bracket matching

括號指南改進

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

Horizontal bracket guides displayed for wrapped lines

水平括號指南預設停用,可以使用 "editor.guides.bracketPairsHorizontal": true 啟用。

在此版本中,"editor.guides.highlightActiveIndentation" 現在接受值 "always"。如果設定為 always,即使已經有活動的括號對,也會突出顯示縮排指南。

切換內嵌提示

內嵌提示是在原始碼中顯示附加資訊的好方法。但是,有時您只想檢視實際的原始碼。為了支援快速隱藏內嵌提示,editor.inlayHints.enabled 設定已更改:除了 onoff 之外,還有值 onUnlessPressedoffUnlessPressedon/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 上,這允許您將表情符號從表情符號面板拖放到文字編輯器中

拖動時,虛線游標會顯示文字將插入的位置。

終端

查詢結果計數

在終端中搜索時,結果計數和當前選定的匹配索引現在顯示在“查詢”控制元件中。

Text is searched for in the terminal and the Find control is labeled match 12 of 14 to indicate that match 12 is currently selected

原始碼管理

原始碼管理儲存庫檢視

在此里程碑中,我們引入了一個新設定 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.devvscode.dev 中的 GitHub RepositoriesAzure Repos 擴展采用。

使用 SSH 從 GitHub 克隆

新設定 github.gitProtocol 允許您更改從 GitHub 克隆儲存庫時的預設協議。預設值為 https,但可以更改為 ssh

除錯

自動展開惰性變數

幾個月前,我們添加了在偵錯程式“變數”檢視中單擊按鈕以展開“惰性”變數的支援。有一個新設定 debug.autoExpandLazyVariables,用於自動展開惰性變數而無需單擊。

惰性變數的新按鈕

我們將文字連結按鈕更新為帶有“眼睛”圖示的真實按鈕。該“眼睛”圖示也更新得更像眼睛。

A button to expand a lazy variable

按住 Shift 鍵單擊以停用斷點

您現在可以按住 Shift 鍵單擊斷點(或條件斷點或日誌點)以停用它,然後重新啟用它。

語言

您現在可以透過將檔案從 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),然後執行查詢所有引用

Finding all references to a Markdown header

這將在“引用”檢視中顯示所有引用。如果喜歡不同的檢視,還可以使用檢視引用轉到引用命令。

VS Code 還支援查詢當前檔案中對引用連結的所有引用。這支援以下情況

  • [some text][ref] 中的 ref
  • 簡寫連結 [ref] 中的 ref
  • 連結定義 [ref]: http://example.com 中的 ref

Finding all places a Markdown link reference is used

Markdown:查詢對檔案的所有引用

您現在還可以查詢當前工作區中對給定 Markdown 檔案的所有引用。這同樣包括跨檔案連結。

可以通過幾種方式觸發此操作

  • 要查詢對當前 Markdown 檔案的引用,請使用Markdown:查詢檔案引用命令。
  • 要查詢資源管理器中的 Markdown 檔案引用,請右鍵單擊它並執行查詢檔案引用命令。
  • 對指向 Markdown 檔案的連結的檔案部分執行查詢所有引用,例如 [text](/link/to/file.md)

這將列出引用給定檔案的所有位置,包括對該檔案中標題的引用。

Markdown:查詢對 URL 的所有引用

最後,我們還支援查詢當前工作區中使用給定 URL 的所有位置。

Finding all places where a URL is used in Markdown files

Markdown:重新命名標題

是否曾經更改 Markdown 檔案中的標題,然後意識到您也意外地破壞了指向它的所有連結?這就是我們新的 Markdown 重新命名支援可以提供幫助的地方。

要開始使用,請將游標置於標題上,然後按 F2 開始重新命名。輸入標題的新文字,然後按 Enter 接受。這既會更新當前標題,也會更新當前工作區中指向它的所有已知連結。

您可以在標題本身或連結到標題的標題元件上觸發重新命名。例如,[link text](#_some-header)[link text](/path/to/file#some-header) 中的 some-header

您還可以在 Markdown 中重新命名引用連結。這將更新當前 Markdown 檔案中的所有引用連結

Renaming a Markdown link reference using F2

Markdown:重新命名檔案

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

Renaming a file by pressing F2 on the file path in a link

目前,僅支援使用 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 中。

Command Palette UX Guidelines on code.visualstudio.com

執行擴充套件測試

以前,VS Code 會在測試執行完成後立即退出擴充套件主機程序。現在,在執行擴充套件測試時,VS Code 將首先經歷常規的 deactivate 流程,然後才退出。這允許生成程序的擴充套件更好地清理自身。

將檔案拖放到自定義樹中

在最近最終確定的樹拖放 API 的基礎上,我們現在基本支援使用 text/uri-list MIME 型別將檔案從作業系統拖放到擴充套件樹檢視中。

偵錯程式擴充套件創作

supportSuspendDebuggee 和 supportTerminateDebuggee 的 UI

disconnect 請求有兩個額外的選項,允許客戶端控制斷開連線時除錯物件會發生什麼

  • suspendDebuggee 指示斷開連線後除錯物件是否應保持掛起狀態。
  • terminateDebuggee 指示偵錯程式斷開連線時除錯物件是否應終止。

除錯介面卡可以使用功能 supportSuspendDebuggeesupportTerminateDebuggee 來指示它支援這些選項。如果支援,除錯工具欄中的停止按鈕旁邊將出現一個下拉列表,其中包含額外的斷開連線命令。

例如,在“啟動”型別的除錯會話中,對於支援這兩種功能的除錯介面卡,預設工具欄按鈕將是正常的停止按鈕,但下拉列表將包含斷開連線 (terminateDebuggee: false) 和斷開連線並掛起 (terminateDebuggee: false, suspendDebuggee: true)。

A dropdown with extra disconnection commands

語言伺服器協議

對筆記本和拉取診斷的支援已從提議狀態移出,準備在 3.17 版本中釋出。相應的客戶端和伺服器庫的新版本已釋出到 npm。

提議的 API

每個里程碑都會帶來新的提議 API,擴充套件作者可以嘗試這些 API。一如既往,我們希望得到您的反饋。以下是嘗試提議 API 的步驟

  1. 查詢您要嘗試的提議並將其名稱新增到 package.json#enabledApiProposals
  2. 使用最新的vscode-dts並執行vscode-dts dev。它會將相應的d.ts檔案下載到您的工作區中。
  3. 您現在可以根據該提議進行程式設計。

您不能釋出使用提議 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 RepositoriesAzure 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、重構、除錯等。

rust-analyzer extension for Visual Studio Code details pane

值得注意的修復

  • 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 日之間)

問題跟蹤

對我們問題跟蹤的貢獻

拉取請求

vscode 的貢獻

vscode-css-languageservice 的貢獻

vscode-generator-code 的貢獻

vscode-js-debug 的貢獻

vscode-pull-request-github 的貢獻

debug-adapter-protocol 的貢獻

language-server-protocol 的貢獻

monaco-editor 的貢獻

© . This site is unofficial and not affiliated with Microsoft.