2022 年 3 月(版本 1.66)
更新 1.66.1:此更新解決了這些問題。
更新 1.66.2:此更新解決了這些安全問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Apple 晶片 | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2022 年 3 月版。此版本中有許多更新,希望您會喜歡,其中一些主要亮點包括
- 本地歷史記錄 - 獨立於原始碼管理跟蹤本地檔案更改。
- 設定編輯器語言篩選器 - 顯示可用的語言特定設定。
- 終端查詢改進 - 匹配項在終端面板和捲軸中高亮顯示。
- 內建 CSS/LESS/SCSS 格式化程式 - 針對 CSS、LESS 和 SCSS 的程式碼格式化。
- JavaScript 堆配置檔案 - 在除錯時收集和檢視 JS 記憶體分配。
- Web 版 VS Code - 將檔案和資料夾拖放到 vscode.dev 中。
- 遠端 - SSH 支援 Mac - 透過 SSH 連線到 Apple 晶片/M1/ARM64 機器。
- 新的 R 語言主題 - 瞭解如何在 VS Code 中使用 R 進行資料科學。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
觀看釋出派對:收聽 VS Code 團隊討論一些新功能。您可以在我們的 YouTube 頻道上找到活動錄影。
亮點速覽:如果您只有 60 秒,請檢視3 月份 VS Code 釋出亮點影片,快速瞭解新功能。
內測版:想盡快嘗試新功能?您可以下載每晚的內測版構建,並儘快嘗試最新的更新。
輔助功能
團隊努力使 VS Code 成為最易於訪問的編輯器之一。此版本包含多項改進,有助於提高可用性和輔助功能
- 減少運動模式 - 限制 VS Code UI 中使用的動畫。
- 更明顯的原始碼管理裝飾器 - 使用模式和顏色對比度提高可見性。
- 音訊提示音量控制 - 您現在可以調整編輯器音訊提示音量。
- 評論 UI 輔助功能 - 新的命令和鍵盤快捷鍵。
- 高對比度淺色主題 - 主題作者現在可以為高對比度淺色主題貢獻顏色。
工作臺
本地歷史記錄
檔案本地歷史記錄現在可在時間線檢視中檢視。根據配置的設定,每次儲存編輯器時,都會向列表中新增一個新條目
每個本地歷史記錄條目都包含建立條目時檔案的完整內容,在某些情況下,可以提供更多語義資訊(例如,指示重構)。
您可以從條目中進行以下操作
- 將更改與本地檔案或上一個條目進行比較。
- 恢復內容。
- 刪除或重新命名條目。
有新的全域性命令可用於本地歷史記錄
workbench.action.localHistory.create
- 為活動檔案建立具有自定義名稱的新歷史記錄條目。workbench.action.localHistory.deleteAll
- 刪除所有檔案的所有歷史記錄條目。workbench.action.localHistory.restoreViaPicker
- 查詢要恢復的所有檔案的歷史記錄條目。
這些命令沒有預設鍵繫結,但您可以新增自己的鍵盤快捷鍵。
還有新的設定可用於本地歷史記錄
workbench.localHistory.enabled
- 啟用或停用本地歷史記錄(預設值:true
)。workbench.localHistory.maxFileSize
- 建立本地歷史記錄條目時的檔案大小限制(預設值:256 KB
)。workbench.localHistory.maxFileEntries
- 每個檔案的本地歷史記錄條目限制(預設值:50
)。workbench.localHistory.exclude
- 用於從本地歷史記錄中排除某些檔案的 glob 模式。workbench.localHistory.mergeWindow
- 在此期間,進一步的更改將新增到本地檔案歷史記錄中的最後一個條目中的間隔(秒)(預設值10s
)。
時間線檢視工具欄中的新篩選器操作允許您啟用或停用各個提供程式
注意:本地歷史記錄條目儲存在不同的位置,具體取決於您使用 VS Code 的方式。當開啟本地檔案時,條目將儲存在本地使用者資料資料夾中;當開啟遠端檔案時,它們將儲存在遠端使用者資料資料夾中。當沒有檔案系統可用時(例如,在某些使用 Web 版 VS Code 的情況下),條目將儲存在 IndexedDB 中。
設定編輯器
語言篩選器
使用者現在可以在“設定”編輯器搜尋框中鍵入 @lang:languageId
,以檢視和編輯可為 ID 為 languageId
的語言配置的所有設定。這樣,使用者就可以檢視語言特定設定,也稱為語言覆蓋。
請注意,這些覆蓋將保持配置狀態,直到透過單擊齒輪圖示並重置設定明確重置它們。
下面的短影片將語言篩選器設定為 @lang:css
,以顯示所有可能的 CSS 語言覆蓋設定。
主題:Light Pink
工作區和資料夾設定保留
設定編輯器中的工作區和資料夾設定現在將保留,直到使用者手動重置。此更改有助於使用者明確指定一個工作區設定值等於設定的預設值,但不同於使用者設定值的情況。以前,使用者必須開啟工作區設定 JSON 檔案來設定此值。
在下面的編輯器中,在“設定編輯器”的工作區選項卡中設定了編輯器選項卡大小,它會自動新增到工作區的settings.json
檔案中。
主題:Light Pink
主要通知按鈕
通知的第一個按鈕現在以主要顏色顯示,以區別於其他按鈕。這與對話方塊遵循相同的模式。
主題:GitHub Dark
編輯器的新上下文鍵
有新的上下文鍵指示編輯器是編輯器組中的第一個還是最後一個
activeEditorIsFirstInGroup
- 活動編輯器是否是其組中的第一個。activeEditorIsLastInGroup
- 活動編輯器是否是其組中的最後一個。
這些上下文鍵可用於使用when 子句有條件地啟用鍵盤快捷鍵。
預設二進位制編輯器
新設定 workbench.editor.defaultBinaryEditor
允許您繞過二進位制檔案警告,並在檢測到二進位制檔案時自動開啟您選擇的編輯器型別。您可以從設定編輯器中的下拉選單中選擇預設二進位制編輯器 ID,或透過 settings.json
中的 IntelliSense 進行選擇。
更流暢的身份驗證體驗
您可能會注意到 GitHub 和 Microsoft 的身份驗證流程更加流暢。
- 對於 GitHub 身份驗證,我們刪除了初始的繼續頁面,因此您的登入體驗少了一個步驟。
- 對於 Microsoft 身份驗證,如果您已經使用 Microsoft 登入了設定同步或其他擴充套件,我們將盡量減少您被送出 VS Code 登入的次數。
從 CLI 同時安裝預釋出和普通擴充套件
VS Code 現在支援從命令行同時安裝預釋出和普通擴充套件。例如,以下命令列指令將安裝 GitHub.vscode-pull-request-github
擴充套件的預釋出版本和 GitHub.remotehub
擴充套件的釋出版本
code --install-extension GitHub.vscode-pull-request-github@prerelease --install-extension GitHub.remotehub
改進的平臺特定擴充套件更新
VS Code 現在支援將平臺特定擴充套件更新到更具體的特定目標平臺版本。例如,如果您在 Windows 64 位系統上安裝了 Windows 32 位的 C/C++ 擴充套件,並且 Marketplace 中有相同版本的 Windows 64 位擴充套件,VS Code 將自動將該擴充套件更新到 64 位版本。
音訊提示改進
新設定 audioCues.volume
(0-100,預設值為 50)可用於控制音訊提示的音量。此外,摺疊區域的音訊提示也已更新。
側面板和側邊欄的新名稱
兩個版本前,我們引入了側面板。當時,我們取消了將包含終端的底部面板移動到側面的功能,轉而使用新的連貫命令。在聽取使用者反饋後,我們確定此決定破壞了重要的工作流程,因此我們決定恢復該更改。
這使得我們有兩個面板,即面板和側面板,它們都可以位於工作臺的側面。為了解決這個問題並更好地反映新側面板的方向,我們決定更新側邊欄和側面板的命名。側邊欄現在在 UI 中將被稱為主側邊欄,而側面板現在將被稱為輔助側邊欄。
- 側邊欄 -> 主側邊欄
- 側面板 -> 輔助側邊欄
這些名稱將反映在整個編輯器的選單和命令中;但是,沒有更改任何命令 ID 以防止破壞現有鍵繫結。
減少運動模式
當作業系統啟用減少運動設定時,工作臺現在支援以減少動畫的方式渲染。這可以透過 workbench.reduceMotion
設定(值為 on
、off
或預設的 auto
)進行覆蓋或停用。
評論
評論 UI 被GitHub 拉取請求和問題擴充套件廣泛用於向問題和拉取請求新增評論,但任何擴充套件都可以採用它。
評論檢視可發現性
當您開啟一個包含評論的檔案時,評論檢視將顯示。這可以透過設定 comments.openView
來控制。
新增評論的可發現性
現在,當您將滑鼠懸停在可以添加註釋的行中的任何部分時,左側的空白處會顯示“+”符號。
評論輔助功能改進
有幾項評論輔助功能改進
- 一個命令 在當前行新增評論,用於在可評論範圍內建立評論。
- 評論執行緒的 aria 標籤,包括評論數量和執行緒標籤。
- 轉到下一個評論執行緒命令將焦點置於評論執行緒控制元件中。
- 一個新的轉到上一個評論執行緒命令。
- 下一個和上一個命令的鍵盤快捷鍵:
Alt+F9
和Shift+Alt+F9
。
終端
顯示所有查詢匹配項
在終端中搜索時,搜尋詞的所有例項現在都將高亮顯示。當前選定的匹配項也有一個特定的高亮,可以單獨自定義。
您可以透過以 terminal.findMatch
為字首的顏色自定義來微調高亮顏色的外觀。
捲軸註釋
現在,註釋顯示在終端的捲軸中,以指示緩衝區中的關注點。
例如,查詢結果在捲軸中具有相應的註釋。
當shell 整合的預覽功能啟用時,捲軸中會顯示一個註釋,表示每個執行的命令。
命令導航改進
一個鮮為人知的功能,存在已久,即在終端中快速導航命令的能力。最初這是基於按下 Enter
鍵的時間,但現在當 shell 整合啟用時,它將升級為使用 shell 整合知識更可靠地識別正確的行。此外,現在在命令之間跳轉時會顯示 UI 反饋。
此功能可透過以下鍵繫結訪問
- macOS:
Cmd+上/下
- Linux/Windows:
Ctrl+上/下
(新增)
可以按住 Shift
鍵在終端命令之間進行選擇。
複製文字保留 HTML 樣式
要從終端複製富文字,請執行 終端:將選擇項複製為 HTML 命令或使用終端上下文選單項 複製為 HTML。
最小對比度預設值已更改
terminal.integrated.minimumContrastRatio
設定已經存在一段時間了,它根據背景顏色動態更改終端中的前景色。此版本,我們將預設值更改為 4.5
(WCAG AA),以確保終端無論主題如何都可訪問。如果這最終導致您的顏色出現問題,您可以透過設定 "terminal.integrated.minimumContrastRatio": 1
停用此功能。
原始碼管理
原始碼管理倉庫檢視
以前,“原始碼管理倉庫”檢視中的倉庫是按照它們在開啟包含多個倉庫的資料夾/工作區時被發現的順序進行排序的。這有問題,因為發現順序可能不同,倉庫似乎是隨機排序的。在此里程碑中,“原始碼管理倉庫”檢視中的倉庫始終按名稱排序。
編輯器
快速建議作為行內補全
editor.quickSuggestions
設定現在接受 inline
作為配置值。當設定為 inline
時,快速建議 (IntelliSense) 在您鍵入時不會顯示建議小部件,而是將補全顯示為灰色文字。
主題:GitHub Light
游標索引的程式碼段變數
有新的程式碼段變數:$CURSOR_INDEX
和 $CURSOR_NUMBER
。它們計算各自游標的索引。後者從 1 開始,前者從 0 開始。這些變數的強大之處在於與多個游標結合使用。
例如,下面的程式碼段將為每個游標新增一個有序列表項
"ordered_list": {
"scope": "markdown",
"prefix": "ol",
"body": [
"$CURSOR_NUMBER. $0"
],
"description": "Add ordered list"
}
更新的原始碼管理裝飾器
為了使原始碼管理裝飾器更易於訪問,我們為修改行添加了新模式,並提高了所有裝飾器的對比度。
括號對顏色化
有一個新設定 editor.bracketPairColorization.independentColorPoolPerBracketType
。當設定為 true
時,每種括號型別({
... }
或 (
... )
)都將使用自己的顏色池進行顏色化。因此,不同型別的巢狀括號將具有相同的顏色。
改進的語言檢測
上次迭代,我們添加了設定 workbench.editor.historyBasedLanguageDetection
來配置是否使用一種新的語言檢測策略,該策略會考慮您已開啟的檔案型別。此設定現在預設啟用,並且添加了一個新設定 workbench.editor.preferHistoryBasedLanguageDetection
,以賦予此策略的結果更高的優先順序。
Web 版 VS Code
拖放資料夾
您現在可以將本地檔案和資料夾拖放到在 vscode.dev 或 insiders.vscode.dev 上開啟的瀏覽器視窗中,使用支援 Web 檔案系統訪問 API 的瀏覽器來訪問內容。這適用於拖放到編輯器區域以及檔案資源管理器。
遠端倉庫
擴充套件重構
以前,Azure Repos 擴充套件直接依賴於 GitHub Repositories 擴充套件。Azure Repos 和 GitHub Repositories 現在依賴於一個共同的擴充套件,遠端倉庫,它支援 GitHub 和 Azure Repos 之間的通用工作流。GitHub Repositories 擴充套件以前公開的所有 API 現在都由遠端倉庫公開。
同步倉庫提醒
當您重新開啟具有未提交更改的倉庫時,Remote Repositories 預設不會顯示倉庫的最新版本。我們現在顯示一個對話方塊,讓您手動同步倉庫,以便您的倉庫與 GitHub 或 Azure Repos 上的內容保持同步。您可以使用 remoteHub.uncommittedChangesOnEntry
設定控制此對話方塊。
主題:One Monokai
Azure Repos
在此里程碑中,我們正在啟用編輯和提交更改到託管在 Azure Repos 中的倉庫的功能。我們還添加了建立、更新和開啟 Azure Repos 拉取請求的基本功能。
Notebook
捲軸上的查詢裝飾
筆記本中的查詢結果現在將呈現在捲軸中
將焦點移至互動式視窗
有兩個新的命令用於將焦點置於互動式視窗中。
interactive.input.focus
- 將焦點移至互動式視窗中的輸入編輯器。interactive.history.focus
- 將焦點移至互動式視窗中的歷史記錄。
這些命令沒有預設鍵繫結,但您可以新增自己的鍵盤快捷鍵。
除錯
JavaScript 除錯
JavaScript 偵錯程式現在支援收集和視覺化堆配置檔案。堆配置檔案允許您檢視記憶體分配的位置和數量隨時間的變化。這些已作為除錯:獲取效能配置檔案命令中的一個選項新增,該命令也可以透過“呼叫堆疊”檢視中的錄製 ⏺ 按鈕訪問。
語言
CSS 格式化程式
內建的 CSS 擴充套件現在附帶了一個格式化程式。該格式化程式適用於 CSS、LESS 和 SCSS。它由 JS Beautify 庫實現,並附帶以下設定
css.format.enable
- 啟用/停用預設 CSS 格式化程式。css.format.newlineBetweenRules
- 用空行分隔規則集。css.format.newlineBetweenSelectors
- 用新行分隔選擇器。css.format.spaceAroundSelectorSeparator
- 確保選擇器分隔符“>”、“+”、“~”周圍有空格(例如,a > b
)。
less
和 scss
也存在相同的設定。
HTML 中的 JavaScript 語義高亮
我們已將 HTML 檔案中 JavaScript 原始碼的語義高亮與您在普通 .js
檔案中看到的內容對齊。
這不僅使程式碼顏色更加一致,還添加了一些以前缺失的重要語義資訊,例如高亮只讀型別。
TypeScript 4.6.3
VS Code 現在捆綁了 TypeScript 4.6.3。此小更新修復了一些重要的 bug。
Markdown 簡寫引用連結現在可點選
在連結文字與連結定義 ID 匹配的情況下,Markdown 允許您使用簡寫語法建立連結。例如,[my fancy link]
使用 my fancy link
連結定義(例如,[my fancy link]: https://example.com
)。這些簡寫連結現在在 VS Code 的編輯器中可點選
在編輯器中,單擊這些連結會導航到連結定義。在 Markdown 預覽中,這些連結會導航到連結目標。
reStructuredText 語法
現在有一個內建的擴充套件,用於 reStructuredText (rst) 檔案語法高亮。
對擴充套件的貢獻
Python
狀態列中直譯器顯示的變化
Python 擴充套件為了與其他語言保持一致,將選定的 Python 直譯器資訊移到了狀態列右側的Python語言狀態項旁邊。為了清理狀態列,現在只有在當前開啟 Python 檔案或 settings.json
檔案時才會顯示它。
新的 Python 檔案命令
現在有兩種更快的方法來建立空 Python 檔案:透過一個名為Python: 新建 Python 檔案的新命令,或者透過入門頁面上的新建檔案...項。
Pylint 擴充套件
現在有一個新的 Microsoft Pylint 擴充套件,用於使用 pylint 進行程式碼檢查。此擴充套件利用 語言伺服器協議 提供程式碼檢查支援。
Pylint 擴充套件提供了額外的配置,可以調整透過 pylint
報告的問題的嚴重性級別。
{
"convention": "Information",
"error": "Error",
"fatal": "Error",
"refactor": "Hint",
"warning": "Warning",
"info": "Information",
"W0611": "Error",
"unused-import": "Error"
}
注意:如果您在 Python 擴充套件中也啟用了 Pylint,您可能會在問題面板中看到同一問題的兩個條目。您可以透過設定 "python.linting.pylintEnabled": false
來停用內建的程式碼檢查功能。
Jupyter
在此里程碑中,Jupyter 擴充套件有幾項改進。
核心支援
核心啟動得到改進,支援
- 支援更多 conda 環境。
- 支援所有平臺上的
.env
檔案。
資料檢視器
資料檢視器現在支援 DataFrame 和 Series 的命名索引。
新建 Jupyter 筆記本
新建 Jupyter 筆記本的功能現已整合到新建檔案...選單中。
遠端開發
遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
1.66 版的功能亮點包括
- “在開發容器中開啟”徽章 - 指導您的倉庫使用者在自定義開發容器中重新開啟。
- 遠端 - SSH 擴充套件現在可以連線到遠端 Apple 晶片/M1/ARM64 機器。
您可以在遠端開發發行說明中瞭解新的擴充套件功能和錯誤修復。
GitHub 拉取請求和議題
GitHub 拉取請求和問題擴充套件的工作仍在繼續,它允許您處理、建立和管理拉取請求和問題。檢視該擴充套件的 0.40.0 版更新日誌以瞭解亮點。
預覽功能
終端 Shell 整合
本版本中,Shell 整合繼續獲得更多改進,主要體現在可靠性和上述終端部分描述的裝飾改進方面。
以下是亮點
- 命令裝飾現在顯示在捲軸中,類似於編輯器。
- 命令裝飾應在視窗重新載入(或分離/附加)後恢復。
- 在 Windows 上調整終端大小時更好地跟蹤命令。
- 改進了 VS Code 命令終端:清除和
clear
shell 命令的處理。 zsh
右側提示支援。- 處理更多格式的 bash 的
$PROMPT_COMMAND
變數。 - 當 PSReadLine 未啟用時支援
pwsh
。 - 如果存在已知問題或需要特殊處理,即使設定已啟用,Shell 初始化指令碼現在可以透過取消設定
$VSCODE_SHELL_INTEGRATION
變數來選擇退出 Shell 整合。
TypeScript 4.7 支援
此更新包括對即將釋出的 TypeScript 4.7 版本的初步支援。有關 TypeScript 團隊目前正在進行的工作的更多詳細資訊,請參閱 TypeScript 4.7 迭代計劃。
要開始使用 TypeScript 4.7 每夜構建,請安裝TypeScript Nightly 擴充套件。
檔案資源管理器檔案巢狀
本次迭代,我們繼續致力於資源管理器中檔案巢狀的支援。作為這項工作的一部分,我們完善了移動、重新命名和刪除巢狀檔案的支援,並添加了設定 explorer.experimental.fileNesting.operateAsGroup
來配置巢狀父級的編輯是否也應該應用於其子級。
此外,我們擴充套件了檔案巢狀的配置語言,以包含更多的擴充套件模式。以前,子模式中的 $(capture)
將擴充套件為父模式中 *
消耗的文字。現在,模式中額外支援 $(basename)
、$(extname)
和 $(dirname)
。這使得諸如 * -> $(basename).*.$(dirname)
之類的模式可以將所有帶有“新增段”的檔案巢狀在單個基本檔案下。
擴充套件創作
支援筆記本的文件選擇器
我們已經最終確定了對 vscode.DocumentSelector
型別的一個補充。此型別允許您將轉到定義等語言功能與特定文件關聯,它驅動 UI,並決定是否請求相應的提供程式結果。我們添加了一個新屬性,允許擴充套件縮小筆記本型別。例如,{ language: 'python', notebookType: 'jupyter-notebook'}
針對嵌入在 Jupyter 筆記本中的所有 python 文件。
內嵌提示可以有編輯
InlayHint
型別現在可以有一個可選的、延遲的 textEdits 屬性。設定了編輯的內嵌提示將在雙擊時應用它們。textEdits
應用於進行使內嵌提示過時的編輯。例如,雙擊表示推斷型別的提示應插入該型別註釋。
具有自定義語言 ID 的輸出通道
在此里程碑中,我們已最終確定 createOutputChannel API,以建立具有自定義語言 ID 的輸出通道。這將允許您透過傳遞語言 ID 為輸出通道貢獻令牌或語法著色和 CodeLens 功能。
顏色主題型別:高對比度淺色
顏色主題現在可以指定 hc-light
作為基礎主題(uiTheme
)。基礎主題用於顏色主題未定義的所有顏色。
在 VS Code API 中,ColorTheme.kind 現在也可以有值 HighContrastLight
。
用於顏色貢獻的高對比度淺色主題
顏色貢獻現在也可以定義高對比度淺色主題(highContrastLight
)。如果未指定,則將使用 light
顏色作為預設值。
NODE_MODULE_VERSION 和 Node.js API 更新
對於使用原生 Node 模組的擴充套件作者,此版本將 Node.js 版本從 14.16.0
提升到 16.13.0
,這可能會根據所使用的 API 抽象層對您的模組編譯產生影響。
桌面版 | 遠端 | |
---|---|---|
NODE_MODULE_VERSION / process.versions.modules | 101 | 93 |
Node-API / process.versions.napi | 8 | 8 |
樹形檢視拖放 API
透過新定稿的 TreeDragAndDropController API,擴充套件貢獻的樹形檢視可以支援拖放。樹形檢視示例中提供瞭如何使用此 API 的示例。
偵錯程式擴充套件創作
支援 CompletionItem.detail
上個月,除錯介面卡協議向 CompletionItem
物件添加了一個 detail
屬性。此屬性現在在 VS Code 中受支援。您將在除錯控制檯的建議小部件中看到詳細資訊。
語言伺服器協議
型別層次結構、內聯值和內嵌提示支援已從提議狀態移出,以準備 3.17 版本。新版本的庫已釋出。
此外,還有第一個版本的 LSP 元模型,以及相應的 JSON 模式 或 TypeScript 型別定義形式的模式。元模型包含以下資訊:指定的請求和通知及其引數型別、返回型別、部分返回型別和註冊選項。它還包含所有定義的結構和列舉。
除錯介面卡協議
我們已經解決了 除錯介面卡協議 的幾個文件問題
- 為了消除 終止 和 斷開連線 請求的歧義,我們改進了它們的文件。
- 已為
evaluate
請求的context
引數記錄了值variables
。當在變數檢視的上下文中呼叫evaluate
請求時,VS Code 會使用此未文件化的值。客戶端和除錯介面卡無需進行任何更改,因為context
引數的型別為string
,並且variables
值僅在文件中提及。
建議的擴充套件 API
每個里程碑都會帶來新的提議 API,擴充套件作者可以嘗試這些 API。一如既往,我們希望得到您的反饋。以下是嘗試提議 API 的步驟
- 查詢您要嘗試的提議並將其名稱新增到
package.json#enabledApiProposals
。 - 使用最新的vscode-dts並執行
vscode-dts dev
。它會將相應的d.ts
檔案下載到您的工作區中。 - 您現在可以根據該提議進行程式設計。
您不能釋出使用提議 API 的擴充套件。下個版本中可能會有破壞性更改,我們絕不希望破壞現有擴充套件。
InputBox 驗證訊息嚴重性
我們的 InputBox API(透過 window.showInputBox
和 window.createInputBox
)提供了驗證使用者輸入的機制。本次迭代,我們正在擴充套件它,提供了一個用於顯示嚴重性的提議 API。
例如,如果您想根據使用者的輸入向用戶顯示一條資訊訊息,您的驗證訊息可以返回
{
content: 'this is an info message';
severity: InputBoxValidationSeverity.Info;
}
這看起來像這樣
此提案的詳細資訊可以在 inputBoxSeverity 中找到。
筆記本文件更改事件
有一個新的筆記本文件更改事件提案:它作為 notebookDocumentEvents 提供,幷包含兩個事件
vscode.workspace.onDidSaveNotebookDocument
在筆記本儲存時觸發。vscode.workspace.onDidChangeNotebookDocument
在筆記本更改時觸發。例如,當單元格被新增或刪除、單元格本身更改或元資料更改時。
Tabs API 形狀最終確定
tabs API 正在接近下一個里程碑的最終確定,目前處於形狀將保持穩定且幾乎沒有變化的階段。2022 年 4 月的迭代將是提供有關此 API 形狀和功能的反饋的最後機會。可以透過 GitHub 問題提供反饋。tabs API 允許讀取開啟的選項卡、它們的位置以及關閉它們。
行內補全
我們繼續致力於行內補全,為未來幾個版本的最終確定做準備。行內補全現在可用於建議程式碼段或文字替換(以前只支援文字插入)。
拖放到編輯器
提議的 文字編輯器拖放 API 允許擴充套件處理拖放到文字編輯器中的操作。這些拖放事件可以來自 VS Code 內部——例如將檔案從 VS Code 的檔案資源管理器拖到文字編輯器中——也可以透過將檔案從您的作業系統拖到 VS Code 中生成。
要試用新 API,您必須設定 "workbench.experimental.editor.dragAndDropIntoEditor.enabled": true
。啟用此功能後,您可以透過按住 Shift
鍵進行拖放來拖放到編輯器中。
我們包含了對在 Markdown 檔案中拖放時生成連結的實驗性支援。您還可以檢視 Markdown 擴充套件的原始碼,瞭解 API 的使用示例。
已解決/未解決的評論
有一個新的提案,用於設定評論執行緒的已解決或未解決狀態。指定狀態的評論執行緒將獲得額外的使用者體驗處理。
工程
Electron 17 更新
在此里程碑中,我們很高興能在 VS Code 中釋出 Electron v17。這是我們之前採用 Electron v13 之後的一個重大更新,它利用了 Electron 的 程序重用架構。在過去的一年裡,我們一直在重新實現並逐步推出一些核心服務,針對它們與工作臺的互動和生命週期進行更改,以準備這個新架構
特別感謝所有參與此項工作的人員,也感謝社群在 Insiders 上進行自託管並提供反饋,使我們能夠自信地釋出此更新。
此更改對 VS Code 使用者意味著什麼?
切換工作區和重新載入工作區等操作現在應該更快。透過此更新,我們還將 Chromium 版本提升到 98.0.4758.109,Node.js 版本提升到 16.13.0。
下一步是什麼?
我們將繼續按照 Electron 新的釋出節奏採用 Electron 版本。我們還在積極努力沙箱化工作臺,下一步是改進Node.js 託管服務和沙箱化工作臺之間的通訊通道,這將使我們能夠進一步簡化新架構。
RPM 軟體包要求列表改進
我們現在根據 Chromium 中完成的工作,在 構建過程 中計算 rpm 軟體包所需的依賴項。這使我們能夠在採用較新執行時或原生模組時提供最新的依賴項列表。在即將到來的里程碑中,我們還將對 debian 軟體包引入類似的更改。
支援內建擴充套件的帶外發布
那些在 Marketplace 中可用的內建擴充套件現在可以帶外發布,VS Code 將檢測到新版本並更新擴充套件。這將使這些擴充套件也能夠支援預釋出。
文件
VS Code 中的 R
有一個新的Visual Studio Code 中的 R 主題,描述了使用R 擴充套件在 VS Code 中對 R 程式語言的支援。R 擴充套件包括豐富的語言功能,例如程式碼補全和 linting,以及整合的 R 終端和專用工作區、資料和繪圖檢視器。
開發容器部落格文章
如果您錯過了 Burke Holland 最近關於使用開發容器建立易於使用的程式設計環境的部落格文章,請檢視“教程的問題”。該部落格文章描述了 Laravel 如何使用預配置的 Docker 容器為其 PHP 框架教程提供執行時和依賴項。
值得注意的修復
- 117674 除錯控制檯內容換行時有時會自動停止滾動
- 138963 除錯啟動時,除錯控制檯無法正常工作
- 142754 VS Code 終端中的 Emacs 使用已損壞
- 143513 contributes.configuration 項僅在搜尋框為空時才遵守檢視中的“order”屬性
- 144458 Glob 模式
**/p*
錯誤地匹配/foo/ap
- 144783 未編輯的設定列表小部件項似乎沒有最大寬度
- 145243 設定目錄在小螢幕上無法調整大小
- 145572 設定框可能與設定重疊
感謝
最後但同樣重要的是,向 VS Code 的貢獻者們致以衷心的感謝。
Web 擴充套件
為啟用作為Web 擴充套件執行程式碼的擴充套件的擴充套件作者(以下列表為 2022 年 3 月 1 日至 2022 年 3 月 27 日之間)
- RTF (Alessandro Fragnani)
- Highlight - C/C++ Parameters (BLET Mickaël)
- Highlight - Regex (BLET Mickaël)
- Material Icon Theme (Dancheg97)
- Go to Character Position (davidfreer)
- Extension panel (Elio Struyf)
- Writing Style Guide (Elio Struyf)
- Bravato Icons (Florin Bratan)
- Markmap (Gerald Liu)
- GitLens — Git supercharged (GitKraken)
- YARA (infosec-intern)
- ZMK Tools (Joel Spadin)
- JSPM Generator (JSPM)
- gcs-sync-vs-ext (killerbees-devops)
- Faster paragraph/word movement (Mateusz Dudzinski)
- narumincho.definy (narumincho)
- Better Markdown & Latex Shortcuts (OrangeX4)
- Python Brackets (OrangeX4)
- Quarto (Quarto)
- Inline SQL (qufiwefefwoyn)
- React Hierarchy Explorer (React Sidekick)
- Serverless Workflow Editor (Red Hat)
- gitlab (RedstoneWizard08)
- LLVM IR 語言支援 (rev.ng Labs)
- Behave (rioj7)
- 行補全 (rioj7)
- vscode_web_extension_emulator (runthoser)
- Marquee (stateful)
- painandsufferingforjaredsstuff (Thomka)
- Tofu (Alpha) (Watware)
問題跟蹤
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Lemmingh (@Lemmingh)
- Simon Chan (@yume-chan)
拉取請求
對 vscode
的貢獻
- @a-stewart (Anthony Stewart):在瀏覽器 ts 中新增匹配媒體更改監聽器 PR #143287
- @AkatQuas (Akat):feat(jsonc): 為“path”屬性提供更具互動性的補全 PR #144136
- @babakks (Babak K. Shandiz):將 jsonc 新增到 markdown 嵌入語言 PR #144003
- @Backfighter:不要覆蓋使用者環境變數 PR #115455
- @BamBamboozled:在不存在 [] 時新增對引用的支援 PR #144781
- @cbliard (Christophe Bliard):為 editor.fold 命令的 selectionLines 屬性新增預期型別 PR #144732
- @Charles-Gagnon (Charles Gagnon):更新覆蓋資料夾位置 PR #145597
- @eltociear (Ikko Ashimine):更新 README.md PR #145132
- @gabritto (Gabriela Araujo Britto):[typescript-language-features] 新增 includeCompletionsWithObjectLiteralMethodSnippets 首選項 PR #145941
- @gjsjohnmurray (John Murray):修復新建檔案快速選擇器上的配置鍵繫結操作按鈕 (#_145422) PR #145429
- @hermannloose (Hermann Loose):引入可主題化的已解決和未解決評論顏色 PR #145230
- @jeanp413 (Jean Pierre)
- 修復 glob 模式
**/p*
錯誤匹配/foo/ap
PR #144473 - 修復無法使用遠端 cli 安裝 web 擴充套件 PR #144522
- 修復執行擴充套件編輯器中顯示的錯誤擴充套件執行位置 PR #144528
- 修復 glob 模式
- @kkakroo (Karan Kakroo)
- 僅當已處於禪模式時才透過 workbench.action.exitZenMode 退出禪模式 PR #144217
- 滾動到頂部按鈕未應用主題 PR #144224
- @kkocdko (kkocdko):修復
getDirectoryHandle
中的無限遞迴 PR #145972 - @matthewjamesadam (Matt Adam):新增徽章擴充套件 API PR #139225
- @mifopen (Slava Mostovoy):fix:懸停固定定位的懸停小部件會隱藏它們 PR #142160
- @pjknkda (Jungkook Park):刪除大檔案時跳過讀取檔案內容以進行撤銷 PR #144890
- @quanzhuo (Quan Zhuo)
- 修復問題 #144453,擴充套件的 lastUpdated 時間超過 24:00:00 PR #144454
- #144671,修復 git 擴充套件中一些未本地化的字串 PR #144712
- @rounaksingh557 (Rounak singh):這將在正確的目錄中查詢 Visual Studio。 PR #143479
- @sbresin (Sebastian Bresin):feat: gitExtension API 也暴露 repository.revert() PR #145029
- @Semphriss:更新 Seti 主題 PR #145004
- @ShafinKhadem (Nafiur Rahman Khadem):在多游標 selectAll 中尊重 searchScope 列 PR #142312
- @sumneko (最萌小汐)
- 更新 Lua 語法 PR #144544
- 更新 Lua-語法 PR #144975
- @UltiRequiem (Eliaz Bobadilla):chore: bump actions/checkout PR #145891
- @weartist (Han):修復 #143392 PR #143498
- @xisui-MSFT
- 在使用反彙編檢視時,允許不帶源的堆疊幀作為頂部堆疊幀 PR #143649
- 修復反彙編檢視中停用的斷點圖示 PR #143925
- @xmedeko (Ondrej Medek):修復 javascript.suggest.jsdoc.generateReturns 的 markdownDescription PR #144486
- @yume-chan (Simon Chan):等待
welcome.showAllWalkthroughs
中的擴充套件貢獻 PR #135632
對 vscode-css-languageservice
的貢獻
- @marknn3 (Mark Langezaal):修復 vscode #142516 [css] 支援 unicode-range 萬用字元 PR #264
對 vscode-js-debug
的貢獻
- @zjffun (JuFeng Zhang):feat: 堆分析 PR #1187
對 vscode-languageserver-node
的貢獻
- @razzeee (Kolja Lampe):修復拼寫錯誤 PR #903
對 vscode-vsce
的貢獻
- @felipecrs (Felipe Santos):docs: 在 readme 中新增配置提示 PR #704
對 debug-adapter-protocol
的貢獻
- @eshelyaron (Eshel Yaron):修復
ExceptionFilterOptions
中的小錯誤 PR #250 - @haneefdm (Haneef Mohammed):添加了曾在此列表中的 Cortex-Debug PR #257
- @renkun-ken (Kun Ren):新增 R 偵錯程式 PR #255
對 language-server-protocol
的貢獻
- @KamasamaK
- @sno2 (Carter Snook):fix(inlayHint): type reference typo PR #1425