2020 年 3 月 (版本 1.44)
更新 1.44.1:此更新解決了這個安全問題。
更新 1.44.2:此更新解決了這些問題。
下載:Windows:x64 | Mac:Intel | Linux:deb rpm tarball snap
歡迎使用 Visual Studio Code 2020 年 3 月版。此版本包含多項更新,希望您會喜歡,其中一些主要亮點包括:
- 輔助功能改進 - 更輕鬆的差異檢視導航,更清晰的 UI 控制元件角色指定。
- 時間線檢視 - 在 VS Code 中檢視時間序列事件,例如 Git 提交歷史。
- 更好的檔案快速開啟 - 從檔案平滑導航到符號,按資料夾名稱篩選檔案。
- 擴充套件包顯示 - 快速檢視擴充套件包中包含的內容。
- 持久化撤銷/重做堆疊 - 重新開啟檔案時保留撤銷/重做堆疊。
- 遠端開發 - 直接將拉取請求檢出到容器中,支援 Kubernetes。
- 設定同步預覽 - 設定同步現在允許您在多臺計算機之間共享程式碼片段和 UI 狀態。
- 新的 Python 教程 - 建立 Python 容器和構建資料科學模型的教程。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
內部人員預覽版: 想盡快試用新功能嗎?您可以下載每晚內部人員預覽版並立即試用最新更新。有關最新的 Visual Studio Code 新聞、更新和內容,請在 Twitter 上關注我們 @code!
輔助功能
在此里程碑中,我們收到了社群的寶貴反饋,這幫助我們識別並解決了許多輔助功能問題。
- 差異檢視現在更易於訪問。使用 F7 和 ⇧F7 (Windows、Linux Shift+F7) 在可訪問差異檢視器中導航更改,並使用暫存/取消暫存/還原所選範圍命令來暫存、取消暫存或還原當前更改。
- 在我們的控制元件中使用了更好的角色。
listbox
角色用於建議控制元件和快速選擇,list
用於靜態列表,document
用於只讀內容,例如歡迎檢視和 Markdown 預覽。 - 調整了 Quick Pick 控制元件的行為。
- 現在可以使用顯示當前行的 CodeLens 命令命令在 Quick Pick 中顯示當前行的 CodeLens。
時間線檢視
時間線檢視現已結束預覽並預設啟用。這是一個統一檢視,用於視覺化檔案的時間序列事件(例如,Git 提交、檔案儲存、測試執行等)。時間線檢視預設會自動更新,顯示當前活動編輯器的時間線。您可以透過切換檢視工具欄中的眼睛圖示來控制此預設行為。此外,與其他檢視類似,時間線檢視支援在您鍵入時查詢或篩選。
時間線檢視預設摺疊在檔案資源管理器的底部。選擇時間線分割線將展開時間線檢視。
在此版本中,內建的 Git 擴充套件提供了一個時間線源,該源提供指定檔案的 Git 提交歷史。選擇一個提交將開啟該提交引入的更改的差異檢視。上下文選單提供複製提交 ID和複製提交訊息命令。檔案資源管理器的上下文選單上還有一個新的開啟時間線命令,可快速顯示所選檔案的時間線。
這是時間線檢視的實際操作
擴充套件可以提供額外的時間線源(儘管 API 仍處於提議階段),這些源將顯示在統一的時間線檢視中。擴充套件還可以為時間線檢視和單個時間線項貢獻選單項。您還可以輕鬆選擇要包含在檢視中的源。
工作臺
快速開啟重寫
快速開啟 (⌘P (Windows, Linux Ctrl+P)) 控制元件使用的是我們樹形控制元件的舊版本,在此迭代中,它已遷移到使用我們最新的列表控制元件,該控制元件已在 VS Code UI 的其餘部分中使用。從功能上講,您應該無法分辨出區別,因為所有命令都將像以前一樣工作。
我們確實藉此機會添加了一些您可能會覺得有用的功能。
從檔案導航到符號
您現在只需鍵入 @
即可繼續導航到檔案結果的符號。對於當前選定的檔案,所有符號將出現,並且編輯器將在後臺開啟以顯示活動符號。下面的影片還顯示,您可以透過在 @
後跟 :
來按類別對符號進行分組。
透過用空格分隔多個查詢來篩選結果
如果檔案搜尋結果過多,您可以在鍵入空格後新增更多搜尋模式。例如,如果您依次鍵入 <檔名> <資料夾名>
,則可以透過資料夾縮小結果範圍。
注意:這對於編輯器 (⇧⌘O (Windows, Linux Ctrl+Shift+O)) 和工作區 (⌘T (Windows, Linux Ctrl+T)) 符號選擇器也有效。空格字元後的任何文字都將用於按該符號的容器進行篩選。
切換提供程式時保留輸入
如果您保持 Quick Open 可見並切換到另一個提供程式(例如,從檔案搜尋到符號搜尋),VS Code 將應用您鍵入的任何過濾器並將其用於新提供程式。這使您可以在以前用於檔案搜尋時快速重用鍵入的輸入進行符號搜尋。
按最近使用排序編輯器歷史記錄
一個新設定 "search.quickOpen.history.filterSortOrder": "recency"
允許您按最近開啟的專案對編輯器歷史記錄進行排序,即使在開始搜尋時也是如此。預設情況下,編輯器歷史記錄結果將根據使用的過濾模式按相關性排序。
新命令以開啟編輯器到側邊
一個新命令 workbench.action.alternativeAcceptSelectedQuickOpenItem
允許您新增額外的鍵盤快捷鍵,以便從 Quick Open 開啟檔案或符號到側邊。預設情況下,Ctrl+Enter
(macOS: Cmd+Enter
) 將在新編輯器組中開啟檔案到側邊,而不是在當前編輯器組中。
改進的擴充套件包顯示
為了在“擴充套件”檢視中識別擴充套件包,現在有一個數字徽章顯示擴充套件包中包含的擴充套件數量。
主題:GitHub Sharp with Customizations
擴充套件詳情頁面現在顯示擴充套件包中捆綁的所有擴充套件。
主題:GitHub Sharp with Customizations
調整編輯器選項卡捲軸的高度
一個新設定 workbench.editor.titleScrollbarSizing
允許您增加編輯器選項卡和麵包屑的捲軸大小。這使得滾動長列表的開啟編輯器變得更容易。
將其配置為 large
以獲得更大的捲軸
檔案資源管理器可以顯示隱藏檔案
如果檔案被隱藏(透過 files.exclude
設定),但它已開啟並在編輯器中可見,則該檔案將連同其父鏈一起顯示在檔案資源管理器中。只要檔案在編輯器區域中可見,這些檔案及其父項就會以暗淡的顏色顯示在檔案資源管理器中。
檢視:重新開啟方式
新的檢視:重新開啟方式命令允許您使用不同的自定義編輯器重新開啟當前活動檔案。
您可以使用此命令在 VS Code 的標準文字編輯器和自定義編輯器之間切換,或者在資源的多個自定義編輯器之間切換。
workbench.editorAssociations 設定
同樣對於自定義編輯器,新的 workbench.editorAssociations
設定允許您配置特定資源使用哪個編輯器。
下面的示例配置所有以 .catScratch
結尾的檔案都使用我們擴充套件示例中的示例自定義文字編輯器開啟。
"workbench.editorAssociations": [
{
"viewType": "catCustoms.catScratch",
"filenamePattern": "*.catScratch"
}
]
檢視進度現在顯示在檢視上
我們已將自定義檢視的進度指示更改為現在顯示在每個檢視本身上,而不是檢視容器的頂部。這使得長時間執行的操作與其進度之間建立了更直接的連線。還有一個新的 API 選項,供擴充套件在檢視上顯示自定義進度。
在這裡您可以看到 GitLens 擴充套件檢視上的進度顯示
新的預設等寬字型
我們已將 VS Code UI 中使用的等寬字型更新為
.mac { --monaco-monospace-font: "SF Mono", Monaco, Menlo, Courier, monospace; }
.windows { --monaco-monospace-font: Consolas, "Courier New", monospace; }
.linux { --monaco-monospace-font: "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace; }
此更改不影響編輯器中的字型選擇。
編輯器
重新開啟檔案時保留撤銷堆疊
當檔案關閉時,VS Code 現在將保留檔案的撤銷/重做堆疊。當檔案重新開啟時,如果其內容自關閉以來未更改,則撤銷/重做堆疊將被恢復。
如果您使用 workbench.editor.limit.value
設定限制開啟編輯器的數量,或者您意外關閉正在處理的檔案,這將非常有用。
儲存時程式碼操作的顯式順序
您現在可以將 editor.codeActionsOnSave
設定為按順序執行的程式碼運算元組。您可以使用此功能來確保特定的程式碼操作始終在可能與其衝突的另一個程式碼操作之前或之後執行。
以下 editor.codeActionsOnSave
將始終執行組織匯入,然後在組織匯入完成後執行全部修復
"editor.codeActionsOnSave": [
"source.organizeImports",
"source.fixAll"
]
使用 editor.wordSeparators 進行下一個查詢匹配
新增選擇到下一個查詢匹配命令 (⌘D (Windows, Linux Ctrl+D)) 現在遵循 editor.wordSeparators
設定。以前,該命令會使用當前檔案語言定義的單詞定義。
除錯
呼叫堆疊檢視改進
CALL STACK 檢視是一個複雜的檢視,因為它顯示不同型別的物件(會話、程序、執行緒、堆疊幀和分隔符元素),併為不同型別提供不同的操作。為了更容易區分物件型別並理解它們支援的互動,我們已經開始進行一些視覺改進。
- 除錯會話現在用圖示裝飾。
- 可點選元素使用連結顏色。
- 更小的分隔符和演示元素。
新的除錯控制檯圖示
我們為除錯控制檯引入了一個新圖示,並在除錯控制檯檢視從面板移出時在活動欄中使用它。
除錯擴充套件的進度反饋 UI
VS Code 現在支援上一個里程碑中為除錯介面卡協議 (DAP) 提議的“進度事件”。透過進度事件,除錯擴充套件可以為長時間執行的操作向用戶提供反饋。
VS Code 除錯 UI 在兩個位置顯示進度反饋
- 作為除錯檢視頂部的進度條。
- 作為“靜默通知”,這意味著進度在狀態列中“靜默”顯示(不中斷使用者),並且可以透過單擊開啟為通知。該通知顯示更詳細的資訊,並允許取消底層長時間執行的操作(如果該操作支援取消)。
為了避免短操作的閃爍,進度 UI 僅在延遲 0.5 秒後才開始。
以下影片顯示了 Mock Debug 中(模擬的)長時間執行操作的新進度 UI(目前唯一支援的除錯擴充套件)。我們預計其他除錯擴充套件將很快採用進度支援。
除錯控制檯中的程式碼完成選擇
在上一個里程碑中,我們為除錯介面卡協議的“完成”請求添加了選擇控制。在此版本中,VS Code 現在完全支援協議新增,並且除錯擴充套件可以在插入完成項後調整選擇(或插入點)。
整合終端
允許選單欄助記符跳過終端
當新的設定 terminal.integrated.allowMenubarMnemonics
啟用時,所有使用 Alt
的按鍵都將跳過終端,以便它們由 VS Code 的鍵繫結管理器處理,使所有選單助記符工作,但代價是終端內的 Alt
熱鍵。此設定預設停用。
語言
JavaScript 中的自動匯入樣式
新的 javascript.preferences.importModuleSpecifierEnding
設定允許您控制 VS Code 自動匯入使用的匯入樣式。如果您正在為支援原生 ES6 模組的平臺(例如瀏覽器)編寫程式碼,這會很有用。
可能的值為:
auto
- 預設值。使用專案的 jsconfig 來確定要使用的匯入樣式。minimal
- 使用 Node.js 樣式匯入。這會將src/component/index.js
的匯入縮短為src/component
。index
- 也包含路徑的index
部分。這會將src/component/index.js
縮短為src/component/index
。js
- 使用完整路徑,包括副檔名 (.js
)。
任務
更快的任務快速選擇
任務快速選擇過去會在顯示任務列表供選擇之前從所有提供任務的擴充套件中獲取所有任務。現在,VS Code 在顯示快速選擇下拉選單之前不會獲取任何額外的擴充套件任務,使其速度更快。擴充套件貢獻的任務也只會在您請求時才獲取,這釋放了擴充套件主機。
在使用者選擇 typescript 擴充套件後,才獲取 TypeScript 貢獻的 tsc
任務。
主題:One Dark Pro
預覽功能
預覽功能尚未準備好釋出,但已足夠實用。我們歡迎您在這些功能開發期間提供早期反饋。
設定同步
我們過去幾個月一直在努力支援在多臺機器之間同步 VS Code 設定、擴充套件和鍵盤快捷鍵,此功能已在Insiders 版本中提供預覽。
在此里程碑中,我們添加了使用者程式碼片段和更多 UI 狀態的同步功能。
主題:GitHub Sharp with Customizations
目前以下 UI 狀態已同步:
- 顯示語言
- 活動欄條目
- 面板條目
- 檢視佈局和可見性
- 最近使用的命令
- “不再顯示”通知
注意:目前,只同步使用者語言程式碼片段。對全域性程式碼片段的支援將在下一個里程碑中新增。
我們還添加了遠端和本地同步備份檢視,用於恢復資料和幫助解決問題。您可以使用命令首選項同步:顯示遠端備份和首選項同步:顯示本地備份訪問這些檢視。
主題:GitHub Sharp with Customizations
要了解更多資訊,您可以訪問設定同步文件。
賬戶管理
提供身份驗證提供程式的擴充套件現在其賬戶將顯示在設定齒輪上方新的賬戶上下文選單中。您可以檢視當前登入的所有賬戶,從中登出,並管理受信任的擴充套件。從這裡登入 Microsoft 賬戶是啟動設定同步的另一種方式。
主題:流行淺色(帶自定義)
新的 JavaScript 偵錯程式
本月,我們在新的 JavaScript 偵錯程式方面繼續取得進展。它在 Insiders 版本中預設安裝,也可以在 VS Code Stable 中從 Marketplace 安裝。您可以透過啟用 debug.javascript.usePreview
設定來使用它與現有啟動配置。以下是本月新增的一些新功能:
除錯終端中的連結處理
您可以使用除錯終端 (除錯:建立 JavaScript 除錯終端) 自動除錯任何 Node.js 程序。現在,偵錯程式還可以在您 Cmd/Ctrl+單擊
連結時處理連結以啟動除錯您的瀏覽器,無需配置。
主題:Earthsong,字型:Fira Code
在“監視”和“除錯控制檯”中引用 $returnValue
當在呼叫堆疊中可用時,您現在可以在除錯控制檯和監視表示式中引用函式的 $returnValue
。
TypeScript 3.9 Beta 支援
此迭代中我們添加了對新的TypeScript 3.9 Beta 功能的支援。TypeScript 3.9 的一些亮點包括
// @ts-expect-error
指令的建議。- 更好地保留換行符和格式的重構。
- JavaScript 中的自動匯入現在可以新增常見的 JS 樣式匯入 (
require(...)
)。
您今天可以透過安裝 TypeScript Nightly 擴充套件來嘗試新的 TypeScript 3.9 功能。請分享反饋,並讓我們知道您是否遇到 TypeScript 3.9 beta 的任何 bug!
增加了檢視放置的靈活性
我們已經迭代了幾次,透過允許單個檢視移動來提高我們佈局的靈活性。在此迭代中,我們不僅增加了功能,還完善了體驗。
新的拖放體驗
在側邊欄中拖放活動欄圖示、面板和檢視一直很簡單,但含糊不清。很難確切知道當您實際放下這些專案時會發生什麼。新體驗旨在提高畫質晰度並突出我們在此過程中啟用的新功能。
下面,使用者首先在側邊欄中重新排列檢視,然後重新排列面板中的選項卡和活動欄中的圖示
單個面板中的多個檢視
您現在可以在單個面板中擁有多個檢視,以更好地利用水平空間。一個常見的請求是同時檢視終端和“問題”檢視。現在可以透過將終端拖到“問題”檢視中來完成,如下所示。
建立新的側邊欄組並移動面板
現在可以將檢視移動到新的側邊欄組,從而在活動欄中建立一個新的圖示條目。內建面板也不例外,現在可以移動到現有側邊欄條目或其自己的條目中。
下一個影片顯示使用者將終端拖到活動欄中,這會在活動欄中建立終端圖示併為終端留出空間。接下來,使用者將輸出放到終端側邊欄中。最後,大綱從資源管理器移動到活動欄中,建立自己的側邊欄區域。
向面板貢獻檢視容器
我們現在擁有一切必要的功能,允許擴充套件直接向面板貢獻檢視,就像您今天使用活動欄一樣,這在樹檢視 API 指南中有所說明。請注意,此功能仍在預覽中,並且樹檢視文件在被視為穩定之前不會反映這些更改。但是,要試用它,您可以將文件中的程式碼片段更新為:
"contributes": {
"viewsContainers": {
"panel": [
{
"id": "package-explorer",
"title": "Package Explorer",
"icon": "media/dep.svg"
}
]
}
}
用於檢視移動的命令
最後,有新的命令可以透過鍵盤移動檢視並重置您的佈局。檢視:移動焦點檢視 (workbench.action.moveFocusedView
) 命令已更新以支援迭代的新功能。添加了檢視:重置焦點檢視位置 (workbench.action.resetFocusedViewLocation
) 命令,用於將單個檢視放回其預設位置。
面板和自定義檢視的活動欄圖示
隨著靈活佈局的引入,當預設面板檢視移動到活動欄時,現在有專用的圖示。當合並多個檢視時,自定義檢視也有一個(預設)圖示。
同步區域
我們改進了去年 11 月推出的映象游標功能,採用了名為“同步區域”的新實現。目前此功能適用於 HTML,您可以透過以下方式之一試用:
- 在 HTML 標籤上執行命令鍵入時重新命名符號(預設繫結到 )。
- 開啟
editor.renameOnType
設定並將游標移動到 HTML 標籤。
紅色區域是同步區域。顧名思義,一個區域的任何更改都將同步到其他區域。您可以透過將游標移出區域或按 ESC
來退出此模式。此外,在任何區域鍵入或貼上以空格開頭的任何內容都會退出此模式。
我們期待提供一個 API,使這種“鍵入時重新命名”體驗可用於 JSX、XML 等其他語言,甚至 TypeScript 中的區域性變數。
對擴充套件的貢獻
遠端開發
遠端開發擴充套件的工作仍在繼續,它允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
1.44 版的亮點包括
- 開發容器:直接將 PR 檢出到容器中。
- 開發容器:Kubernetes 容器附加支援。
- 開發容器:實驗性 WSL 2 Docker 引擎支援。
您可以在遠端開發發行說明中瞭解新的擴充套件功能和 bug 修復。
擴充套件創作
歡迎檢視內容 API
某些檢視現在支援擴充套件貢獻的歡迎內容。有關更多資訊,請參閱原始問題。有關如何將此 API 與擴充套件提供的檢視一起使用的詳細資訊,您可以閱讀樹檢視文件。
此 API 在上一個里程碑中作為提議新增,我們現在已將其最終確定。
語義令牌提供程式 API
語義令牌提供程式 API 現已最終確定。
語義令牌的主題支援
顏色主題現在可以編寫規則來為語言擴充套件(如 TypeScript)報告的語義令牌著色。
"semanticHighlighting": true,
"semanticTokenColors": {
"variable.declaration.readonly:java": { "foreground": "#00ff00" "fontStyle": "bold" }
}
上面的規則定義了 Java 中所有隻讀變數的宣告都應以綠色粗體顯示。
語義高亮 Wiki 頁面有更多資訊。
TypeScript 語義令牌改進
TypeScript 語言伺服器返回更多語義令牌型別。顏色主題可以利用這些新的令牌型別進行樣式設定。
- JavaScript 預設庫中的所有符號都獲得
defaultLibrary
修飾符。 - 作為回撥的函式引數被歸類為
function
。
閱讀 TypeScript 語義高亮外掛 README 以獲取 TypeScript 語言伺服器返回的所有語義令牌型別和修飾符的概述。
檔案系統錯誤程式碼
我們添加了FileSystemError#code,它是一個標識錯誤的字串。當透過其任何工廠函式建立檔案系統錯誤時,code
是該函式的名稱,例如 FileSystemError.FileNotFound(msg).code === 'FileNotFound'
。
StatusBarItem.command 的引數
StatusBarItem.command
現在接受完整的 Command
物件,而不僅僅是命令 ID。這允許擴充套件在啟用狀態列項時向命令傳遞引數。
自定義文字編輯器
藉助自定義文字編輯器,擴充套件現在可以用自定義的基於 webview 的檢視替換 VS Code 的標準編輯器,以處理特定的基於文字的資源。潛在的用例包括:
- 預覽資產,例如著色器或
.obj
檔案。 - 為 XAML 等標記語言建立所見即所得編輯器。
- 提供 JSON 或 CSV 等資料檔案的替代互動式檢視。
自定義編輯器文件介紹瞭如何使用新的自定義文字編輯器 API 以及如何確保您的新編輯器與 VS Code 良好協作。另外,請務必檢視自定義編輯器擴充套件示例。
下一個迭代中,我們希望最終確定完整的自定義編輯器提案,該提案將自定義編輯器擴充套件到也支援二進位制檔案。
檢視級別進度指示
我們已向 window.withProgress
API 的 ProgressOptions.location
添加了一個新選項,允許在特定檢視上顯示進度。要使用,請設定 ProgressOptions.location = { viewId: <view-id> };
,其中 <view-id>
指定您希望顯示進度的檢視的 ID。在上面的檢視進度部分中有一個簡短的影片展示了此功能。
擴充套件檢視上下文選單 when-clause 上下文
我們為擴充套件檢視的上下文選單添加了一個新的 extension
when-clause 上下文,其中包含擴充套件的識別符號。
示例
"extension/context": [
{
"command": "gitlens.showSettingsPage",
"group": "2_configure",
"when": "extension == eamodio.gitlens && extensionStatus == installed",
}
]
新 Codicons
我們已將以下圖示新增到 Codicon 庫中
- 帳戶
- 鈴鐺點
- 除錯控制檯
- 庫
- 輸出
- run-all
- 同步忽略
編寫嵌入式語言伺服器的文件
為嵌入式程式語言編寫語言伺服器比編寫純語言伺服器更復雜。鑑於嵌入式語言在今天的流行程度,我們在語言擴充套件部分添加了一個嵌入式語言主題。該文件包含兩個示例,以說明構建嵌入式語言伺服器的兩種方法:語言服務和請求轉發。首先檢視嵌入式語言文件或直接訪問這兩個示例
除錯介面卡協議
新的進度事件
我們已最終確定對除錯介面卡協議中報告進度的支援。除錯介面卡現在可以向前端客戶端傳送進度事件(progressStart
、progressUpdate
和 progressEnd
),以便顯示長時間執行的除錯介面卡操作的進度。progressStart
事件可以標記為可取消,以使客戶端呈現取消 UI 併發送 cancel
請求。為了在支援的除錯介面卡中啟用進度事件,前端客戶端需要在 initialize
請求中包含新的客戶端能力 supportsProgressReporting
。
更多詳情可以在相應的 DAP 功能請求中找到。VS Code 從此里程碑開始支援進度事件。
“評估”請求的剪貼簿上下文值
DAP 客戶端(前端)在將變數和表示式值複製到剪貼簿時使用 evaluate
請求。為了幫助除錯介面卡檢測此場景,已將新值 clipboard
新增到傳遞給 evaluate
請求的 context
引數的值集中。為了確保向後相容性,只有當除錯介面卡返回 supportsClipboardContext
能力時,客戶端才允許傳遞新值。
語言伺服器協議
語言伺服器索引格式 規範 的新版本 (0.5.0) 已釋出。該版本支援使用綽號在專案轉儲之間連結引用結果。此外,LSP 客戶端 (6.2.0-next.2) 和伺服器 (6.2.0-next.2) 庫的新版本也已釋出。
建議的擴充套件 API
每個里程碑都會帶來新的提議 API,擴充套件作者可以進行嘗試。一如既往,我們渴望您的反饋。以下是試用提議 API 的方法:
- 您必須使用 Insiders 版本,因為提議的 API 經常更改。
- 您的擴充套件的
package.json
檔案中必須包含以下行:"enableProposedApi": true
。 - 將最新版本的 vscode.proposed.d.ts 檔案複製到您專案的源位置。
請注意,您不能釋出使用提議 API 的擴充套件。下一個版本中可能會有重大更改,我們絕不希望破壞現有擴充套件。
終端連結處理程式
這個新的 API 允許擴充套件攔截和處理在終端中點選的連結。
window.registerTerminalLinkHandler({
handleLink((terminal, link) => {
if (link === 'https://vscode.com.tw') {
window.showInformationMessage('Handled');
return true;
}
return false;
});
});
為終端環境做貢獻
這個新的 API 允許擴充套件在終端啟動時更改環境變數。
const collection = window.getEnvironmentVariableCollection(true);
const separator = process.platform === 'win32' ? ';' : ':';
collection.prepend('PATH', `/foo${separator}`);
collection.replace('JAVA_HOME', '/bar');
這些集合是擴充套件和工作區特定的,VS Code 處理如何解決多個擴充套件之間的衝突。它們可以選擇在視窗重新載入後持久化,並已採取措施確保以這種方式完成,即在視窗載入後立即建立的終端不會阻塞擴充套件主機的啟動,而是使用上次已知版本。這些持久化集合可以透過處理集合或建立新的非持久化集合,或者在解除安裝擴充套件時刪除。
計劃是透過某種指示向用戶顯示這些環境修改,該指示允許更新“過時”的終端環境,但這仍在進行中。您可以在問題 #46696 中關注討論。
瀏覽器支援
遠端指示器
在瀏覽器中使用 VS Code 時,現在有一個遠端指示器。這讓您知道您連線到的遠端環境,並允許擴充套件新增與遠端相關的額外命令。透過此更改,“在桌面中開啟”連結已從狀態列中刪除,並將移動到遠端選擇器中。
注意:VS Code 目前不支援從瀏覽器連線到不同的遠端環境,例如 SSH、容器或 WSL。
導航連結
新的選單位置允許在瀏覽器中執行的擴充套件向左上角的漢堡選單貢獻連結。
工程
VS Code 編譯為 ES6
VS Code 已經完全採用了 ES6。感謝 TypeScript,我們已經使用 ES6 語法很長時間了,但我們現在假定目標執行時也支援 ES6。這使我們能夠使用 ES6“全域性”變數,例如 Strings#endsWith
,並允許使用新的語言特性,例如生成器函式和符號。
使用 GitHub Actions 自動處理問題
此迭代中,我們將現有的分類自動化從使用 GitHub Apps 遷移到 GitHub Actions。這帶來了一些好處,例如在 vscode 儲存庫中獲取日誌,以及開發速度的提高。我們還添加了幾個新的自動化,例如一個 Action,當修復程式被拉入 VS Code Insiders 時,它會通知問題作者,允許作者快速驗證修復程式是否有效。
我們使用的所有 Actions 都已在 GitHub 上釋出,並採用 MIT 許可證。
文件和擴充套件
Python
有兩個新的 Python 教程
- 容器中的 Python - 瞭解如何在 Docker 容器中構建 Python 應用程式。
- 用於資料科學的 Python - 使用 Python 資料科學庫建立機器學習模型。
C++
C++ 擴充套件教程已重寫,並且有一個新的教程專門針對在 Linux 上使用 C++。
Docker 擴充套件
Microsoft Docker 擴充套件的 1.0 版本現已可用。該擴充套件可以將 Docker 檔案新增到您的專案,構建和除錯 Docker 映象,幷包含一個資源管理器,可以輕鬆啟動、停止、檢查和刪除容器和映象。
Azure 擴充套件
有兩個新的擴充套件,用於直接在 VS Code 中處理 Azure 資產。
-
Azure 虛擬機器 - 建立配置了 SSH 訪問的 Ubuntu 虛擬機器,以便您可以使用 Remote-SSH 擴充套件連線它們。
-
Azure 資源組 - 檢視所有 Azure 資源並在 Azure 檢視中快速導航到它們。
值得注意的修復
- 75932: 除錯載入失敗:程序選擇器失敗(您的 131072x1 螢幕尺寸是假的,預計會有麻煩)
- 84271: 新增“x”以從最近開啟的檔案中刪除檔案(快速選擇)
- 89658: 未找到除錯介面卡
- 92381: 如果反覆新增然後刪除工作區中的資料夾,“將資料夾新增到工作區”提示會重複出現
- 93344: 歡迎檢視應該滾動
- 93634: 進度:讓視窗進度變為靜默通知進度
感謝
最後但同樣重要的是,衷心感謝!以下幫助使 VS Code 變得更好的各位:
對我們問題跟蹤的貢獻
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- ArturoDent (@ArturoDent)
- José Vilmar Estácio de Souza (@jvesouza)
- joanmarie (@joanmarie)
對 vscode
的貢獻
- Andrew Branch (@andrewbranch): [typescript-language-features] 新增 importModuleSpecifierEnding 首選項 PR #90405
- Andy Barron (@AndyBarron): editor.codeActionsOnSave: 支援物件和陣列配置 PR #92681
- Benny Neugebauer (@bennyn): 修復代理身份驗證視窗選項的型別 PR #91954
- Benno (@blueworrybear): 更新 #91296 允許多個工作區根目錄 PR #92082
- Charles Gagnon (@Charles-Gagnon): 隨時顯示警報輸入框訊息 PR #92531
- Gustavo Sampaio (@GustavoKatel): 使用鍵盤快捷鍵輕鬆選擇 CodeLens PR #91232
- Huachao Mao (@Huachao): 修復單詞 extension 的拼寫錯誤 PR #93178
- Hyun Sick Moon (@hyun6): 修復拼寫錯誤 PR #93291
- Ilia Pozdnyakov (@iliazeus)
- @jaqra: 修復搜尋檢視“切換搜尋詳情”的內邊距 PR #91429
- Jean Pierre (@jeanp413)
- Jonas Dellinger (@JohnnyCrazy): 允許使用者增大標題區域的捲軸 PR #92720
- @nrayburn-tech: 為 monaco 編輯器 automaticLayout 使用 ResizeObserver PR #93630
- Raul Piraces Alastuey (@piraces): 修復除錯控制檯中歷史條目導航導致額外導航的問題 PR #93125
- Robert Rossmann (@robertrossmann): 在設定編輯器的部分標題中繼承主題文字顏色 PR #93605
- Sharak (@SharakPL): WebView 寬度修復 PR #93085
- Tobias Hernstig (@thernstig): 新增 .npmrc 檔案關聯為 ini 檔案 PR #92397
- Matej Urbas (@urbas)
- Alvaro Videla (@videlalvaro)
- David Teller (@Yoric): 修復 #91913:從檔案監視器中排除 /.hg/store/ PR #91941
我們的無障礙社群提供了持續的反饋!在此列舉幾位:
- Florian Bejers (@zersiax)
- José Vilmar Estácio de Souza (@jvesouza)
- Andy Borka (@ajborka)
- Dickson Tan (@Neurrone)
- Joan Marie (@joanmarie)
- Pawel Lurbanski (@pawelurbanski)
- Bryan Duarte (@RedEyeDragon)
- Alex Hall (@mehgcap)
- Michał Zegan (@webczat)
- Nolan Darilek (@ndarilek)
- Alexander Epaneshnikov (@alex19EP)
- Marco Zehe (@MarcoZehe)
- Leonard de Ruijter (@leonardder)
- Ivan Fetch (@ivanfetch)
對 vscode-vsce
的貢獻
- Bob Brown (@bobbrow): 將 console.warn 更改為 console.log 以顯示資訊性訊息 PR #434
- James George (@jamesgeorge007)
對 language-server-protocol
的貢獻
- Aleksey Kladov (@matklad): 新增到章節的連結 PR #942
對 vscode-languageserver-node
的貢獻
- Remy Suen (@rcjsuen): 重寫型別和修飾符描述 PR #588
- Tom Raviv (@tomrav): 修復 text-document 包 readme 中的 npm 徽章 PR #592
- Heejae Chang (@heejaechang):
對 vscode-generator-code
的貢獻
- Sibiraj (@sibiraj-s): 移除已棄用的
useColors
mocha api PR #196
對 vscode-loader
的貢獻
- Roberto Araujo (@Roberto-Araujo): 使用 head 而不是 document.head PR #26
對 localization
的貢獻
有超過 800 名 雲 + AI 本地化 社群成員使用 Microsoft 本地化社群平臺 (MLCP),其中約 170 名活躍貢獻者為 Visual Studio Code 做出貢獻。我們感謝您的貢獻,無論是提供新的翻譯、對翻譯進行投票還是提出流程改進建議。
這是貢獻者的快照。有關專案詳細資訊,包括貢獻者姓名列表,請訪問專案網站:https://aka.ms/vscodeloc。
- 中文 (簡體, 中國) 易婷婷, 顧怡之, 董查爾斯, 劉賈斯汀, 楊喬爾, 夏託尼, 朱知陽, 邵萌, 普魯文, 保羅張, 張銳, 朱怡婷, 農智超, 利亞姆肯尼迪, 武健, 趙立國, 寧倬, 王伯辰, 一斤瓜子, 譚順, 何雲, 劉雲, 範永基。
- 中文 (繁體, 臺灣) 船長, 林韋妮, 予恆。
- 捷克語 David Knieradl。
- 丹麥語 (丹麥) Javad Shafique, Lasse Stilvang。
- 英語 (英國) Martin Littlecott, Oren Recht, Faris Ansari。
- 芬蘭語 (芬蘭) Teemu Sirkiä。
- 法語 (法國) Antoine Griffard, Thierry DEMAN-BARCELÒ, Rodolphe NOEL, Nathan Bonnemains。
- 希伯來語 (以色列) Chayim Refael Friedman, Asaf Amitai。
- 印度尼西亞語 (印度尼西亞) Gerry Surya, Laurensius Dede Suhardiman。
- 義大利語 (義大利) Alessandro Alpi, Riccardo Cappello。
- 日語 (日本) 葦嶺生子, 戶倉綾, 傅和隆之, 如月醬, 住吉貴志, 牧野耕一, 尾崎義久, 天明正一。
- 韓語 (韓國) 高慶熙, 許俊。
- 挪威語 (挪威) Torbjørn Viem Ness。
- 波蘭語 (波蘭) Makabeus Orban, Kacper Łakomski。
- 葡萄牙語 (巴西) Alessandro Trovato, Marcelo Fernandes, Arthur Lima, Luciana de Melo, Luiz Gustavo Nunes。
- 葡萄牙語 (葡萄牙) Pedro Filipe。
- 俄語 (俄羅斯) Andrey Veselov, Vadim Svitkin, 米納科夫·安東。
- 西班牙語 (西班牙, 國際排序) 西弗雷多·達席爾瓦, 阿列爾·科斯塔斯·格雷羅, 大衛·羅阿, 阿布頓·羅德里格斯·P., 路易斯·曼努埃爾, 卡洛斯·A·埃切韋裡·V。
- 瑞典語 (瑞典) 佩爾·拉格納·埃丁。
- 泰米爾語 (印度) krishna koumari c。
- 土耳其語 (土耳其) Umut Can Alparslan, Mehmet Yönügül。
- 烏克蘭語 (烏克蘭) Nikita Potapenko。
- 越南語 (越南) Hieu Nguyen Trung。