2022 年 4 月 (版本 1.67)
更新 1.67.1:此更新解決了這個安全性問題。
更新 1.67.2:此更新解決了這些問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel silicon | 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 發行重點影片,快速了解新功能。
Insiders: 想要盡快試用新功能嗎?您可以下載每晚的 Insiders 組建,並在最新更新可用時立即試用。
工作台
檔案總管檔案巢狀結構
檔案總管現在支援根據相關檔案的名稱將其巢狀化。有幾個設定可以控制此行為
explorer.fileNesting.enabled
- 控制是否全面啟用檔案巢狀結構。可以全域設定或針對特定工作區設定。explorer.fileNesting.expand
- 控制是否預設展開巢狀檔案。explorer.fileNesting.patterns
- 控制檔案的巢狀方式。預設組態為 TypeScript 和 JavaScript 專案提供巢狀結構智慧功能,但建議您修改此組態以符合您自己的專案結構。一些範例
預設組態
當檔案符合目錄名稱時,巢狀於 index.ts
下 ("index.ts": "${dirname}.ts"
)
巢狀名稱與不同檔案相同但新增區段的檔案 ("*": "${basename}.*.${extname}"
)
佈景主題: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
的擴充功能,則它會以不相容的錯誤狀態顯示在清單中。
退出前確認
可以設定新的設定 window.confirmBeforeClose
,以便在退出應用程式之前顯示確認對話方塊。
您可以選擇 keyboardOnly
,以便在使用按鍵繫結時顯示確認對話方塊,或選擇 always
,即使使用滑鼠退出也是如此。
注意:此設定並非完全是新的設定,在 適用於網頁的 VS Code 中已提供一段時間。
comments.openView 預設值
comments.openView
的舊預設值為 file
,這會導致每次開啟包含註解的檔案時都開啟「註解」檢視。為了讓「註解」檢視更不吵雜,新的預設值為 firstFile
,這會導致「註解」檢視僅在工作階段期間第一次開啟包含註解的檔案時開啟。
多行註解
在幕後,自註解 UX 定案以來,VS Code 一直支援多行註解,但多行註解從未在 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 現在允許註冊或顯示遠端原始碼提供者的擴充功能,以提供有關遠端原始碼的更豐富資訊。
遠端原始碼提供者現在可以設定個別遠端原始碼的描述和圖示。此外,提供者可以選擇性地指定最近的遠端原始碼。這些遠端原始碼會顯示在選擇器的最上層,以便於存取,並依時間戳記排序 (如果已提供時間戳記)。
內建 GitHub 擴充功能,以及 GitHub 存放庫和 Azure 存放庫 擴充功能已在 github.dev 和 vscode.dev 中採用擴充的 API。
使用 SSH 從 GitHub 複製
新的設定 github.gitProtocol
可讓您在從 GitHub 複製存放庫時變更預設協定。值預設為 https
,但可以變更為 ssh
。
偵錯
自動展開延遲變數
幾個月前,我們新增了按一下按鈕以展開偵錯工具「變數」檢視中的「延遲」變數的支援。有一個新的設定 debug.autoExpandLazyVariables
,可自動展開延遲變數,而無需按一下。
延遲變數的新按鈕
我們已將文字連結按鈕更新為具有「眼睛」codicon 的實際按鈕。「眼睛」codicon 也已更新,看起來更像眼睛。
Shift+按一下以停用中斷點
您現在可以 Shift+按一下
中斷點 (或條件式中斷點,或記錄點) 以停用它,然後重新啟用它。
語言
Markdown:拖放到編輯器中以建立連結
您現在可以透過將檔案從 VS Code 的檔案總管拖放到 Markdown 編輯器中,快速建立 Markdown 連結。在將檔案拖曳到 Markdown 編輯器上方時按住 Shift
,即可將檔案拖放到編輯器中,並建立其連結
如果檔案看起來像是圖片,VS Code 會自動插入 Markdown 圖片。否則,會新增一般 Markdown 連結。
當從其他應用程式拖曳某些類型的檔案時,這也適用,例如從網頁瀏覽器拖放圖片
您可以透過設定 "markdown.editor.drop.enabled": false
來停用此拖放行為。
Markdown:尋找所有標題參考
VS Code 現在支援在 Markdown 檔案中針對標題執行尋找所有參考。這可讓您查看在目前工作區內使用給定標題的所有位置,包括從其他 Markdown 檔案連結到該標題的連結。
若要開始使用,請將游標放在標題本身,或放在標題連結的片段部分 (例如,[連結文字](#_some-header)
或 [連結文字](/path/to/file#some-header)
中的 #some-header
),然後執行尋找所有參考。
這將在「參考」檢視中顯示所有參考。如果您偏好不同的檢視,也可以使用查看參考或移至參考命令。
Markdown:尋找所有參考連結的參考
VS Code 也支援尋找目前檔案中所有參考連結的參考。這適用於
[一些文字][ref]
中的ref
。- 速記連結
[ref]
中的ref
。 - 連結定義
[ref]: http://example.com
中的ref
。
Markdown:尋找所有檔案參考
您現在也可以在目前工作區中尋找給定 Markdown 檔案的所有參考。同樣地,這包括跨檔案的連結。
這可以透過幾種方式觸發
- 若要尋找目前 Markdown 檔案的參考,請使用Markdown:尋找檔案參考命令。
- 若要在檔案總管中尋找 Markdown 檔案的參考,請在其上按一下滑鼠右鍵,然後執行尋找檔案參考命令。
- 在 Markdown 檔案連結的檔案部分 (例如
[文字](/link/to/file.md)
) 上執行尋找所有參考。
這將列出參考給定檔案的所有位置,包括參考該檔案中標題的參考。
Markdown:尋找所有 URL 參考
最後,我們也支援尋找目前工作區中使用給定 URL 的所有位置。
Markdown:重新命名標題
是否曾經變更 Markdown 檔案中的標題,才發現您也意外地中斷了所有連結到該標題的連結?這就是我們新的 Markdown 重新命名支援可以派上用場的地方。
若要開始使用,請將游標放在標題上,然後按下 F2
以開始重新命名。輸入標題的新文字,然後按下 Enter
以接受。這將同時更新目前的標題,以及更新目前工作區中所有已知的連結到該標題的連結。
您可以在標題本身上,或在標題連結的標題元件上觸發重新命名。例如,[連結文字](#_some-header)
或 [連結文字](/path/to/file#some-header)
中的 some-header
。
Markdown:重新命名參考連結
您也可以在 Markdown 中重新命名參考連結。這將更新目前 Markdown 檔案中的所有參考連結
Markdown:重新命名檔案
為了完善我們新的 Markdown 重新命名支援,您現在可以在 Markdown 連結中的檔案路徑上使用 F2
,以重新命名磁碟上的檔案,並更新所有 Markdown 參考到該檔案的參考
目前僅支援在文字編輯器中針對檔案連結使用 F2
來重新命名檔案。在即將到來的反覆運算中,我們也計劃在檔案總管中觸發重新命名時支援更新連結。
JSON
新的設定 json.validate.enable
可讓您關閉 JSON 驗證。
適用於網頁的 VS Code
開啟遠端存放庫選擇器
當您使用開啟遠端存放庫選擇器時,適用於網頁的 VS Code 現在會遵循 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。
網頁擴充功能
Jupyter 擴充功能現在可以安裝為網頁擴充功能,以便與 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 討論論壇也可以是取得協助的絕佳資源。
Python
變更語言伺服器時無需重新載入
Python 擴充功能現在支援更新 python.languageServer
設定的值,並自動重新啟動語言伺服器,而無需重新載入 VS Code。
Black 格式器擴充功能
現在有一個 Black Formatter 擴充功能,它使用 black 格式器為 Python 提供格式化支援。擴充功能的預先發行版本可供安裝。
使用 isort 組織匯入
新的 isort 擴充功能,它使用 isort 程式庫提供匯入組織。擴充功能的預先發行版本可供使用。
遠端開發
持續進行 Remote Development 擴充功能的工作,這些擴充功能可讓您使用容器、遠端電腦或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能完整的開發環境。
您可以在遠端開發版本資訊中了解新的擴充功能功能和錯誤修正。
GitHub Pull Requests and Issues
持續進行 GitHub Pull Requests and Issues 擴充功能的工作,此擴充功能可讓您處理、建立和管理提取要求和問題。此版本的重點包括
- 多行註解
- 在樹狀結構中顯示提交變更
查看擴充功能 0.42.0 版本的變更記錄,以查看其他重點。
預覽功能
設定設定檔
在此里程碑中,我們推出了設定設定檔,它是您的設定、擴充功能和 UI 自訂的集合。如果您自訂了 VS Code,您現在可以將您的自訂項目匯出到設定設定檔檔案 (mysetup.code-profile
),並將其儲存到您的電腦並與其他人共用。
以下簡短影片顯示從 VS Code 匯出設定設定檔
您也可以匯入設定設定檔檔案以還原您的自訂項目。
以下顯示將設定設定檔匯入到 VS Code 中
您可以在雲端託管您的設定檔,例如將其儲存為公開的 GitHub gist,並與他人分享網址。其他人可以透過提供網址來匯入設定檔。
注意: 目前,設定檔中僅包含以下 UI 自訂項目。未來將會加入更多項目。
- 狀態列項目可見性
- 活動列、底部面板和側邊面板項目可見性和順序
- 檢視畫面可見性、位置和順序
TypeScript 4.7 支援
此更新包含對即將推出的 TypeScript 4.7 版本的支援。請參閱 TypeScript 4.7 迭代計畫,以瞭解 TypeScript 團隊目前正在進行的工作的更多詳細資訊。以下是一些重點
- 使用新的前往原始碼定義命令,直接跳轉到程式庫函式的 JavaScript 實作。您可以在 TypeScript issue #49003 中瞭解更多關於此功能的資訊並分享您的意見回饋。
- 用於完成物件成員方法的程式碼片段。
- 群組感知的整理匯入.
若要開始使用 TypeScript 4.7 nightly build,請安裝 TypeScript Nightly 擴充功能。
擴充功能撰寫
Tab API
我們已完成 tabs API 的唯讀端(也支援關閉 tab),標誌著我們最受歡迎的問題之一 microsoft/vscode#15178 的完成。這公開了諸如群組數量、已開啟的 tab、作用中的 tab、tab 代表的編輯器類型等等資訊!更多資訊可以在 vscode.d.ts
檔案中找到,API 的進入點為 window.tabGroups
。
Notebook 變更和儲存事件
我們已完成兩個與 notebook 相關的事件
vscode.workspace.onDidSaveNotebookDocument
- 在 notebook 儲存時觸發的事件。vscode.workspace.onDidChangeNotebookDocument
- 在 notebook 變更時觸發的事件。這包括結構性變更,例如新增或移除儲存格,以及儲存格變更,例如變更輸出或中繼資料。
支援非遞迴工作區檔案監看器
在之前的里程碑中,我們 宣布 createFileSystemWatcher
API 可以用來監看磁碟上的任何資料夾,只要該資料夾不在已開啟的工作區內即可。我們現在放寬了此限制,允許在任何地方使用非遞迴檔案監看器,即使在已開啟的工作區內也可以。非遞迴監看器的優點是,針對排除項目 (files.watcherExclude
) 設定的設定不會套用,因此您可以確保檔案監看器只會針對您訂閱的路徑發出事件。
我們正在努力為擴充功能提供具有自訂排除規則的完整遞迴監看器支援,敬請期待更多資訊!
UX 指南
擴充功能作者的 UX 指南已重新製作,具有自己的目錄,您可以在其中找到使用各種 VS Code 使用者介面元素的最佳實務。特定主題討論了為您的擴充功能建立 UI 時建議的「應做事項」和「不應做事項」,以便它們能無縫地整合到 VS Code 中。
執行擴充功能測試
之前,VS Code 會在測試執行完成後立即結束擴充功能主機程序。現在,當執行擴充功能測試時,VS Code 會先完成常規的 deactivate
流程,然後才會結束。這讓產生程序的擴充功能能夠更好地在結束後清理自身。
將檔案拖放到自訂樹狀結構
基於最近完成的樹狀結構拖放 API,我們現在已基本支援使用 text/uri-list
MIME 類型,將檔案從作業系統拖放到擴充功能樹狀檢視中。
偵錯工具擴充功能撰寫
支援 supportSuspendDebuggee 和 supportTerminateDebuggee 的 UI
disconnect
請求有兩個額外的選項,讓用戶端可以控制在斷線時 debuggee 會發生什麼事
suspendDebuggee
指出 debuggee 在斷線後是否應保持暫停狀態。terminateDebuggee
指出 debuggee 在偵錯工具斷線時是否應終止。
偵錯配接器可以使用功能 supportSuspendDebuggee
和 supportTerminateDebuggee
來表示它支援這些選項。在支援的情況下,偵錯工具列中的停止按鈕旁邊會出現一個下拉式選單,其中包含額外的斷線命令。
例如,在「啟動」類型的偵錯工作階段中,對於支援這兩種功能的偵錯配接器,預設工具列按鈕將是正常的停止按鈕,但下拉式選單將包含斷線 (terminateDebuggee: false
) 和斷線並暫停 (terminateDebuggee: false, suspendDebuggee: true
)。
語言伺服器協定
對 notebook 和提取診斷的支援已從建議狀態移出,準備發布 3.17 版本。相應的用戶端和伺服器程式庫的新版本已發布到 npm。
建議的 API
每個里程碑都帶有新的建議 API,擴充功能作者可以試用它們。與往常一樣,我們希望收到您的意見回饋。以下是試用建議 API 的步驟
- 尋找您想試用的建議,並將其名稱新增到
package.json#enabledApiProposals
。 - 使用最新的 vscode-dts 並執行
vscode-dts dev
。它會將相應的d.ts
檔案下載到您的工作區中。 - 您現在可以針對該建議進行程式設計。
您不能發布使用建議 API 的擴充功能。下一個版本中可能會出現重大變更,而我們絕不希望破壞現有的擴充功能。
拖放到編輯器
建議的 文字編輯器拖放 API 讓擴充功能可以處理拖放到文字編輯器中的操作。這些拖放事件可能來自 VS Code 內部 — 例如從 VS Code 的 Explorer 將檔案拖曳到文字編輯器中 — 或者可能是從您的作業系統將檔案拖放到 VS Code 中而產生的。
在這個迭代中,我們已將此 API 切換為基於提供者的模型。我們也建立了一個 新的擴充功能範例,示範如何使用此 API。
檢視畫面的徽章
用於 將徽章新增到檢視畫面 的新建議現已可供試用。與 VS Code 核心提供的檢視畫面上徽章的運作方式類似,擴充功能可以使用此 API 建議將數字徽章新增到檢視畫面。
工程
Playwright for Electron 冒煙測試
長期以來,我們一直使用 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
有一個新的 Rust in Visual Studio Code 主題,描述了 VS Code 中對 Rust 程式設計語言 的支援,以及 rust-analyzer 擴充功能。 rust-analyzer 擴充功能包含豐富的語言功能,例如程式碼完成、程式碼檢查、重構、偵錯等等。
值得注意的修正
- 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)
Issue tracking
對我們的 issue tracking 的貢獻
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Simon Chan (@yume-chan)
- Lemmingh (@Lemmingh)
Pull requests
對 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: 程式碼片段轉換保留現有的 camel/Pascal case PR #147422
- @ambar (ambar): 修復 Unicode 醒目提示中的括號編碼 PR #146248
- @andschwa (Andy Schwartzmeyer): 刪除內建的 PowerShell 程式碼片段 PR #146459
- @babakks (Babak K. Shandiz): 在 fork 儲存庫時,要求使用者選取 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 監看正確的 worktree 目錄 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)
- refactor(workbench.ts): 更新過時的註解 PR #146364
- fix(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 和樹狀檢視的徽章 API PR #144775
- @mbelsky (Max Belsky): 在 shift+click 時停用斷點 PR #147598
- @michaelkuhn (Michael Kuhn): 統一並修復 Solarized 語法符號顏色 PR #142883
- @neeleshb (Neelesh Bodas): VSCode 的其他 A11y 修復 PR #145775
- @nesk (Johann Pardanaud): 改善 markdown 程式碼片段的 UX PR #146431
- @quanzhuo (Quan Zhuo)
- 修復 issue #145134,為已驗證的使用者提取所有儲存庫 PR #145203
- 修復 #140612: 當內容行號 la… 時,切換切換按鈕 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: 將
out
關鍵字新增到 typescript PR #3066 - @Yash-Singh1 (Yash Singh): feat: 為 css grid 新增 fr 單位 PR #3078