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 設定等搜尋。
- 括號對彩色化 - 彩色括號對現在預設啟用。
- 切換嵌入式提示 - 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
下巢狀 ("index.ts": "${dirname}.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
。當按住 Ctrl+Alt
時,on/offUnlessPressed
值會隱藏或顯示嵌入式提示。
編輯器 > 嵌入式提示:已啟用值
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 Repositories 和 Azure Repos 擴充套件在 github.dev 和 vscode.dev 中採用。
使用 SSH 從 GitHub 克隆
一個新的設定 github.gitProtocol
允許您更改從 GitHub 克隆儲存庫時的預設協議。預設值為 https
,但可以更改為 ssh
。
除錯
自動展開惰性變數
幾個月前,我們添加了支援單擊按鈕以在偵錯程式“變數”檢視中展開“惰性”變數的功能。現在有一個新設定 debug.autoExpandLazyVariables
,可以在不單擊的情況下自動展開惰性變數。
惰性變數的新按鈕
我們已將文字連結按鈕更新為帶有“眼睛”程式碼圖示的真實按鈕。“眼睛”程式碼圖示也已更新,使其看起來更像眼睛。
按 Shift 鍵單擊以停用斷點
您現在可以Shift+Click
斷點(或條件斷點,或日誌點)以停用它,並重新啟用它。
語言
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)
中的 #some-header
或 [link text](/path/to/file#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)
中的 some-header
或 [link text](/path/to/file#some-header)
。
Markdown:重新命名引用連結
您還可以在 Markdown 中重新命名引用連結。這將更新當前 Markdown 檔案中的所有引用連結
Markdown:重新命名檔案
完善我們新的 Markdown 重新命名支援,您現在可以使用 F2
對 Markdown 連結中的檔案路徑進行操作,以重新命名磁碟上的檔案並更新所有指向它的 Markdown 引用
目前,僅支援在文字編輯器中透過 F2
對檔案連結進行重新命名。在即將到來的迭代中,我們還計劃在資源管理器中觸發重新命名時支援更新連結。
JSON
新的設定 json.validate.enable
允許您關閉 JSON 驗證。
Web 版 VS Code
開啟遠端儲存庫選擇器
當您使用開啟遠端儲存庫選擇器時,VS Code for Web 現在會遵循 window.openFoldersInNewWindow
設定。這使選擇器行為與 VS Code 的其他版本保持一致,並替換了在新視窗中開啟快速選擇項按鈕。
對擴充套件的貢獻
Java
內聯提示
Java 擴充套件包中包含的 Java 語言服務現在支援嵌入式提示以顯示方法簽名的引數名稱。
Java 引數名嵌入式提示有三種模式
literals
- 僅對文字引數啟用引數名提示(預設)。all
- 對文字和非文字引數啟用引數名提示。none
- 停用引數名提示。
惰性變數解析
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 格式化程式擴充套件,它使用black格式化程式為 Python 提供格式化支援。該擴充套件的預釋出版本可供安裝。
使用 isort 組織匯入
新的 isort 擴充套件,它使用 isort 庫提供匯入組織。該擴充套件的預釋出版本可用。
遠端開發
遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
您可以在遠端開發發行說明中瞭解新的擴充套件功能和錯誤修復。
GitHub 拉取請求和議題
GitHub 拉取請求和問題擴充套件的工作仍在繼續,它允許您處理、建立和管理拉取請求和問題。此版本的亮點包括
- 多行註釋
- 在樹中顯示提交更改
檢視擴充套件 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 問題 #49003中瞭解此功能的更多資訊並分享反饋。
- 將方法作為物件成員完成的片段。
- 分組感知的組織匯入.
要開始使用 TypeScript 4.7 每晚構建,請安裝 TypeScript Nightly 擴充套件。
擴充套件創作
Tab API
我們已經最終確定了選項卡 API 的只讀側(也支援關閉選項卡),這標誌著我們最高投票問題之一 microsoft/vscode#15178 的完成。這暴露了諸如有多少組、哪些選項卡開啟、哪些選項卡活動、選項卡代表什麼型別的編輯器等資訊!更多資訊可以在 vscode.d.ts
檔案中找到,API 的入口點是 window.tabGroups
。
筆記本更改和儲存事件
我們已最終確定了兩個與筆記本相關的事件
vscode.workspace.onDidSaveNotebookDocument
- 每當筆記本儲存時觸發的事件。vscode.workspace.onDidChangeNotebookDocument
- 每當筆記本更改時觸發的事件。這包括結構更改,如新增或刪除單元格,以及單元格更改,如更改輸出或元資料。
支援非遞迴工作區檔案監視器
在之前的里程碑中,我們宣佈 createFileSystemWatcher
API 可用於監視磁碟上的任何資料夾,只要該資料夾不在已開啟的工作區內。我們現在放寬了此限制,並允許在任何位置(甚至在已開啟的工作區內)使用非遞迴檔案監視器。非遞迴監視器具有優勢,即配置的排除設定 (files.watcherExclude
) 不適用,因此您可以確保檔案監視器僅針對您訂閱的路徑發出事件。
我們正在努力全面支援帶有自定義排除規則的遞迴監視器,敬請期待!
使用者體驗指南
面向擴充套件作者的UX 指南已重新整理,擁有自己的目錄,您可以在其中找到使用各種 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 日之間)
- VS Code 的 Logos (Aarnav Tale)
- 複製游標處的單詞 (Alessandro Fragnani)
- Delphi 鍵對映 (Alessandro Fragnani)
- Pascal (Alessandro Fragnani)
- 分隔符 (Alessandro Fragnani)
- 帶標籤的註釋 (Alessandro Fragnani)
- NeuroViewer (Anibal Solon)
- sb4-extension (arrow2nd)
- DeloresDevDev (bolinfest)
- VSCode 遠端伺服器 (btwiuse)
- Text Toolbox (Carlo Cardella)
- CloudStudio.common (CloudStudio)
- Vsnips (corvofeng)
- Const & Props Snippets (dein Software)
- dein Snippets Pack (dein Software)
- EVSCode Web IDE 聯結器(Web,實驗性) (Elrond)
- 字串轉換為任意大小寫 (gauseen)
- 圖片庫 (GeriYoco)
- 模袋雲-modelo (heekei zhuang)
- sigma (humpalum)
- 我的程式碼片段 (Jaedeok Kim)
- GCS 上傳器 (kb-devs)
- TEI 日語編輯器 Web (ldas)
- tal7aouy.indent-colorizer (Mhammed Talhaouy)
- minim-tools.m-web (minim-tools)
- UUID 生成器 (Motivesoft)
- TyranoScript 語法 (orukred)
- VDM VSCode (Overture)
- Excalidraw (pomdtr)
- WebGL GLSL 編輯器 (Rácz Zalán)
- Vue (Rahul Kadyan)
- VueDX (Rahul Kadyan)
- BDD Goto Step (rioj7)
- 額外上下文 (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 例項重新命名為原始碼管理 PR #146742
- @AkatQuas (Akat): fix(markdown): 避免在程式碼部分考慮連結引用/源 PR #146826
- @amanasifkhalid (Aman Khalid)
- 關閉 #143241:測試 UI 過濾器在視窗重新載入後仍然存在 PR #147344
- 修復 #146166:程式碼片段轉換保留現有駝峰/帕斯卡大小寫 PR #147422
- @ambar (ambar): 修復 unicode 突出顯示中的括號編碼 PR #146248
- @andschwa (Andy Schwartzmeyer): 刪除內建 PowerShell 程式碼片段 PR #146459
- @babakks (Babak K. Shandiz): 在派生儲存庫時要求使用者選擇 PR 模板 PR #143733
- @Balastrong (Leonardo Montini)
- 145367 新增 cwd 到終端名稱(如果存在) PR #145620
- 將 debug.inlineValues 中的 true 和 false 替換為 on 和 off PR #146543
- @bytemain (Artin): 修復
TerminalProfile
不丟擲 PR #143251 - @cdce8p (Marc Mueller): 修復
git
getBranch [v1.65.0] PR #144449 - @CGNonofr (Loïc Mangeonjean): 修復計算新摺疊塊時凍結的摺疊塊 PR #146545
- @dlech (David Lechner): 修復當上下文選單停用時編輯器吃掉 ContextMenu 鍵的問題 PR #146968
- @eamodio (Eric Amodio): 修復 #140787 正確監視工作區目錄 PR #140789
- @gabritto (Gabriela Araujo Britto): 在 TS 完成項中新增對標籤詳細資訊的支援 PR #146270
- @gjsjohnmurray (John Murray): 在調色盤中新增“在除錯控制檯中評估”和“新增到監視” PR #146775
- @heartacker: 將 git.fetch 操作新增到第一個標題選單 PR #137940
- @hello-smile6: 更新 package.json PR #146278
- @IllusionMH (Andrii Dieiev): 修復錯誤訊息中的版本 PR #147750
- @ImCa0 (ImCaO): 修復可翻譯字串中的拼寫檢查錯誤 PR #147234
- @jhgg (Jake): feat: 嵌入式提示 displayStyle PR #145470
- @jlelong (Jerome Lelong): 更新到 vscode-latex-basics 1.3.0 PR #146308
- @jsjoeio (Joe Previte)
- 重構(workbench.ts):更新過時的註釋 PR #146364
- 修復(service-worker):允許從同一域提供 webview 資源 PR #147467
- @laurentlb (Laurent Le Brun)
- 評論面板:使用上次回覆的日期 PR #147922
- 評論面板:不截斷作者姓名 PR #147924
- @luoriyuhui21 (Keming Liang): 新增一個設定,用於在 workbench.editor.limit.value 中忽略髒選項卡。 PR #144545
- @manunamz (manunam): 更新 docstring 中的 markdownRenderer.ts 路徑。 PR #146332
- @matthewjamesadam (Matt Adam): 實現 webview 和 treeview 的徽章 API PR #144775
- @mbelsky (Max Belsky): Shift+Click 停用斷點 PR #147598
- @michaelkuhn (Michael Kuhn): 統一併修復 Solarized 標記顏色 PR #142883
- @neeleshb (Neelesh Bodas): VSCode 的雜項輔助功能修復 PR #145775
- @nesk (Johann Pardanaud): 改進 Markdown 片段的 UX PR #146431
- @quanzhuo (Quan Zhuo)
- 修復問題 #145134,為已認證使用者獲取所有儲存庫 PR #145203
- 修復 #140612:當上下文行號…時切換切換按鈕 PR #147141
- @Suven-p (Suven-p): 新增隱藏所有測試的操作 PR #148003
- @tharbakim: 修復 Emmet 擴充套件中檔案開頭 CSS 預處理器註釋的檢測 PR #146121
- @thekorn (Markus Korn): git 擴充套件:如果“git.untrackedChanges”設定為“hidden”,則在執行“git status”時忽略未跟蹤的檔案(修復 microsoft/vscode#131020) PR #131030
- @yepitschunked: [Git watcher] 忽略 watchman cookies PR #127702
對 vscode-css-languageservice
的貢獻
- @romainmenke (Romain Menke): 修復
:lang
和類似偽選擇器的選擇器特異性顯示 PR #268
對 vscode-generator-code
的貢獻
- @rupeshs (Rupesh Sreeraman): 修復 ext-snippets 快速啟動文件 PR #340
對 vscode-js-debug
的貢獻
對 vscode-pull-request-github
的貢獻
- @hoontae24: 支援 Github Enterprise URL 的複製永久連結 PR #3460
對 debug-adapter-protocol
的貢獻
- @KamasamaK: 修復一些拼寫錯誤 PR #264
- @peterderivaz (Peter de Rivaz): 修復 SetBreakpointsArguments 的描述 PR #261
- @polinasok: 為 Go 除錯介面卡更新 adapters.md PR #262
- @WardenGnaw (Andrew Wang): 刪除 adapters.md 中多餘的換行符 PR #263
對 language-server-protocol
的貢獻
對 monaco-editor
的貢獻
- @DetachHead: 為 typescript 新增
out
關鍵字 PR #3066 - @Yash-Singh1 (Yash Singh): feat: 為 css grid 新增 fr 單位 PR #3078