2022 年 11 月 (版本 1.74)
更新 1.74.1:此更新解決了這些問題。
更新 1.74.2:此更新解決了這些問題。
更新 1.74.3:此更新解決了此安全性問題。
下載:Windows:x64 Arm64 | Mac:通用 Intel Silicon | Linux:deb rpm tarball Arm snap
歡迎使用 Visual Studio Code 2022 年 11 月版。此版本包含許多更新,我們希望您會喜歡,其中一些主要重點包括
- 自訂 Explorer 自動顯示邏輯 - 決定哪些檔案會在 Explorer 中捲動到檢視畫面。
- 隱藏活動列和面板徽章 - 透過切換狀態徽章來簡化編輯器 UI。
- 筆記本和差異檢視的音訊提示 - 單元格執行結果、新增或移除行的聲音。
- 合併編輯器還原/取消還原 - 快速還原或重新套用合併衝突動作。
- 管理不安全的 Git 儲存庫 - 防止在非您擁有的資料夾上執行 Git 作業。
- JavaScript console.profile 集合 - 輕鬆建立 CPU 效能分析檔案,以便在 VS Code 中檢視。
- 從 return 跳到定義 - 跳到 JavaScript/TypeScript 函式的頂端。
- 遠端通道 - 建立與任何機器的連線,無需 SSH。
- Jupyter 筆記本「僅我的程式碼」偵錯 - 避免逐步執行 Python 程式庫程式碼。
- 開發容器 GPU 支援 - 建立開發容器時請求 GPU。
如果您想在線上閱讀這些版本資訊,請前往 code.visualstudio.com 上的更新。
Insiders: 想要盡快試用新功能嗎?您可以下載每晚組建的 Insiders 組建,並在最新更新可用時立即試用。
協助工具
筆記本執行的音訊提示
現在,當筆記本單元格完成執行時,會有音訊提示。提示音有所不同,以指示單元格執行成功或失敗。
差異檢閱模式的音訊提示
在差異編輯器中,當觸發前往下一個差異時,會播放特定的音訊提示,以指示游標是否位於插入或刪除的行上。
如果您對可用的音訊提示感到好奇,可以透過說明:列出音訊提示下拉式選單來收聽。
可透過鍵盤導覽的設定編輯器指示器、浮動提示和連結
設定編輯器中的指示器、浮動提示和連結現在可以透過鍵盤導覽。也調整了一些連結的樣式,以在整個設定編輯器中獲得更好的一致性。
設定編輯器指示器浮動提示在跳位停靠點和維持鍵盤焦點方面,現在表現得更好。此改良的行為仍處於實驗階段,目前僅針對設定編輯器指示器浮動提示啟用,而不是針對 VS Code 中的所有浮動提示。
佈景主題:淡粉色(在 vscode.dev 上預覽)
工作台
自訂 Explorer 自動顯示邏輯
高票的 問題 #87956(「允許針對特定資料夾設定 explorer.autoReveal」)已透過引入新的設定 explorer.autoRevealExclude
修正。此設定可讓您設定在啟用自動顯示時(explorer.autoReveal
,預設為 true
),哪些檔案會在 Explorer 中自動顯示。autoRevealExclude
設定使用 glob 模式排除檔案,並且類似於 files.exclude
,也支援透過 when 子句進行同層級比對。
預設值會排除 node 和 bower 模組
{
"explorer.autoRevealExclude": {
"**/node_modules": true,
"**/bower_components": true
}
}
隱藏每個檢視容器的徽章
類似於您可以透過右鍵按一下檢視容器來隱藏檢視容器的方式,您現在可以隱藏容器上的徽章(顯示在活動列、面板和輔助側邊欄中)。徽章通常會顯示特定檢視容器的數字、圖示或進度指示器,例如,原始檔控制檢視的待定變更數。
合併編輯器
此版本發佈了一些針對合併編輯器的改進和錯誤修正。重點包括
- 還原/取消還原現在會追蹤衝突的處理狀態。
- 輸入檢視中的忽略動作可用於接受基本版本,而不是結果檢視中的標記為已處理動作。
- 兩側相等的變更現在會自動解決。
- 提供
git blame
功能的擴充功能現在可在傳入、目前和基本編輯器中使用。
安裝位於磁碟上的擴充功能
您現在可以使用開發人員:從位置安裝擴充功能... 命令來安裝位於本機磁碟機上的擴充功能。此命令將開啟平台資料夾對話方塊,以選取擴充功能的 .vsix
檔案位置。
編輯器
CJK 字元的新斷字選項
現在可以使用名為 editor.wordBreak
的設定來避免在 CJK 字元後插入換行點。當設定為 keepAll
時,換行演算法會嘗試將 CJK 字元後的文字保留在同一行上。此設定對其他腳本的字元沒有任何影響。
OpenType 字型的新字型設定
一些較新的字型支援 OpenType 字型變體,支援調整某些軸,例如字型粗細軸,以達到無法透過 font-weight
CSS 屬性設定的字型粗細。在 CSS 中,這是透過 font-variation-settings
屬性實現的。如果您使用此類字型,您現在可以將 editor.fontVariations
設定為 true
,這將導致 VS Code 使用 "wght"
顯示軸來設定字型粗細。如果您的字型支援其他軸,也可以直接設定它們,例如透過設定 "editor.fontVariations": "'ital' 0.5"
。
新的縮排大小設定
有一個名為 editor.indentSize
的新設定,允許將縮排大小(組成縮排的空格數)與 Tab 大小(用於呈現 Tab 字元的空格數)分開。這在處理使用混合 Tab 和空格縮排的檔案時很有用,並且只能在使用手動縮排設定時使用。
以下是範例設定
"editor.detectIndentation": false,
"editor.insertSpaces": true,
"editor.tabSize": 8,
"editor.indentSize": 2
部分接受內嵌完成的命令
接受下一個內嵌建議單字 (editor.action.inlineSuggest.acceptNextWord
) 命令可用於接受目前內嵌建議的下一個單字/非單字區段。目前,它只能接受內嵌建議的第一行部分。此命令仍在開發中,我們正在探索鍵盤快速鍵以及未來版本的替代分割規則。
原始檔控制
管理不安全的 Git 儲存庫
VS Code 使用 git.exe
執行所有 Git 作業。從 Git 2.35.2 開始,使用者將無法在位於非目前使用者擁有的資料夾中的儲存庫中執行 Git 作業,因為該儲存庫被視為可能不安全。
從此版本開始,如果您嘗試開啟此類可能不安全的儲存庫,VS Code 將在原始檔控制檢視中顯示歡迎檢視,以及錯誤通知。歡迎檢視和通知都會公開管理不安全的儲存庫命令,可讓您檢閱可能不安全的儲存庫清單,將它們標記為安全並開啟它們。管理不安全的儲存庫命令也可在命令選取區中使用。將儲存庫標記為安全會將儲存庫位置新增至 safe.directory
git 設定。
樂觀的使用者介面更新
執行 Git 作業後,會執行一組 git
命令(例如,git status
)以更新資料模型,然後再更新原始檔控制檢視。在某些情況下,執行這些命令可能需要幾秒鐘才能完成(例如,使用大型單一儲存庫時),導致原始檔控制檢視的重新整理延遲。
在此里程碑中,我們進行了變更,以便在 git status
完成之前,針對某些 Git 作業(暫存、取消暫存、捨棄變更和提交)樂觀地更新原始檔控制檢視,從而使原始檔控制檢視更快速。
新功能預設為啟用,但可以使用 git.optimisticUpdate: false
停用。
提交動作按鈕潤飾
當提交動作按鈕正在執行次要提交命令時(例如,提交並同步),按鈕標籤現在會正確反映正在執行的命令。提交按鈕也會顯示動畫以指示進度。
終端機
終端機快速修正改進
終端機快速修復現在顯示在程式碼動作控制項中,以與編輯器中的體驗保持一致。
終端機下拉式選單中的工作動作
執行工作和設定工作命令會顯示在終端機下拉式選單中,以提高可探索性和易於存取性。
遠端開發
遠端通道現在以預覽功能的形式在 VS Code Stable 上提供。遠端通道可讓您從任何地方的任何裝置安全地存取您的機器上的 VS Code。若要啟用遠端通道存取,您可以擇一
- 從帳戶選單或命令選取區中選擇開啟遠端通道存取。
- 從安裝了 VS Code 且位於 PATH 上的機器執行
code tunnel
。 - 下載新的 VS Code CLI 並執行
./code tunnel
。
開啟通道存取後,您可以使用 vscode.dev 從任何裝置連線到機器,或使用 VS Code Desktop 內的 Remote - Tunnels 擴充功能。
若要瞭解更多資訊,請查看我們發佈此功能的部落格文章或 遠端通道 文件。
佈景主題:Codesong(在 vscode.dev 上預覽)
注意: 如果您正在使用獨立的
code-server
CLI,您現在應該改用 VS Code CLI(透過最新的 VS Code Desktop 或上述獨立下載)。
偵錯
JavaScript 偵錯
支援 console.profile
JavaScript 偵錯工具現在支援 console.profile。在偵錯工具下執行時,將會為 console.profile()
和 console.profileEnd()
之間的程式碼收集 CPU 效能分析檔案。
console.profile();
doSomeExpensiveWork();
console.profileEnd();
產生的 .cpuprofile
檔案將儲存在您的工作區資料夾中,並且可以使用 VS Code 的內建 效能分析檢視器 開啟和檢視。
支援巢狀來源地圖
有時,尤其是在單一儲存庫設定中,原始程式碼可能會編譯一次,然後再次重新編譯或捆綁。在許多情況下,這會導致結果捆綁的來源地圖參考在第一步中建立的已編譯檔案。
JavaScript 偵錯工具現在會自動遞迴解析來源地圖,以便可以偵錯原始原始檔,而無需額外步驟。
killOnServerStop 屬性已新增至 serverReadyAction
serverReadyAction launch.json
功能可讓使用者啟動啟動 Web 伺服器的偵錯工作階段,然後在伺服器啟動後,自動開始偵錯導覽至該伺服器 URL 的瀏覽器。有一個新的屬性 killOnServerStop
,當設定為 true
時,將導致新的瀏覽器偵錯工作階段在伺服器偵錯工作階段停止時自動停止。
例如
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js",
"serverReadyAction": {
"pattern": "listening on port ([0-9]+)",
"uriFormat": "https://127.0.0.1:%s",
"action": "debugWithEdge",
"killOnServerStop": true
}
}
在上述範例中,當原始 Launch Program
偵錯工作階段停止時,自動啟動的 Edge 偵錯工作階段也會停止。
針對焦點偵錯工作階段顯示例外狀況中斷點
當執行兩種不同類型的偵錯工作階段時,管理例外狀況中斷點之前效果不佳。現在,當偵錯工作階段在呼叫堆疊檢視中成為焦點時,將會顯示該工作階段偵錯類型的正確中斷點集。
註解
comments.visible
新的設定 comments.visible
可用於關閉編輯器註解(註解列和編輯器內註解 Peek 檢視)。註解:切換編輯器註解命令仍然可用於在工作階段期間開啟和關閉編輯器註解。在註解檢視中選取註解將始終開啟註解。
註解檢視徽章
註解檢視會顯示未解決註解計數的徽章。
工作
問題比對器「搜尋」檔案位置方法
先前,問題比對器需要透過 fileLocation
屬性確切知道在哪裡尋找有問題的檔案。支援的方法為 absolute
、relative
或 autoDetect
(先檢查相對路徑,然後在失敗時尋找絕對路徑)。
但是,在使用位於巢狀子目錄中的腳本的工作區中,很難設定工作,因為不同的腳本很少以統一的方式報告檔案路徑(例如,相對於工作區的基底目錄)。
為了協助解決此問題,有一個名為 search
的新檔案位置方法。使用此方法,將執行遞迴檔案系統搜尋,以尋找任何擷取的路徑。
以下範例顯示如何設定 search
檔案位置方法(儘管所有參數都是選用的)
"problemMatcher": {
// ...
"fileLocation": [
"search",
{
"include": [ // Optional; defaults to ["${workspaceFolder}"]
"${workspaceFolder}/src",
"${workspaceFolder}/extensions"
],
"exclude": [ // Optional
"${workspaceFolder}/extensions/node_modules"
]
}
],
// ...
}
注意,使用者應注意造成耗時的檔案系統搜尋(例如,在 node_modules
目錄內尋找),並適當地設定 exclude
屬性。
語言
TypeScript 4.9
VS Code 現在隨附 TypeScript 4.9。此主要更新帶來了新的 TypeScript 語言功能,例如 satisfies
運算子 和 自動存取子。在工具方面,我們對 檔案監看 進行了改進,並進行了許多其他修正和改進。
查看 TypeScript 4.9 公告,以瞭解有關此更新的更多資訊。
從 return 跳到定義
JavaScript 和 TypeScript 現在支援在 return
關鍵字上執行跳到定義,以快速跳到要從中傳回的函式頂端。這在處理冗長、複雜或高度巢狀的函式時很有用。您可以將跳到定義命令/鍵盤快速鍵用於此目的 (F12) 或僅需在 return
關鍵字上按一下 Cmd/Alt + Click
。
筆記本
核心選取器實驗:最近使用的核心
有一個新的筆記本核心選取器,會在選取器的頂端顯示最近使用的核心。這是一個選擇加入實驗,可以透過將 notebook.kernelPicker.type
設定設定為 mru
來啟用。
未使用的核心將移至輔助選取器選取另一個核心...。當您安裝最新的 Jupyter 擴充功能 時,此選取器會依其來源(例如:Jupyter 核心、Python 環境等)對所有核心進行分組。
我們很樂意聽取您的意見反應,您可以在 VS Code 儲存庫 中建立問題。
適用於 Web 的 VS Code
原始檔控制
適用於 Web 的 VS Code 現在在編輯 GitHub 和 Azure Repos 儲存庫時支援以下設定
"git.branchRandomName.enabled"
- 在適用於 Web 的 VS Code 中建立分支時,產生隨機分支名稱。"git.branchRandomName.dictionary"
- 在適用於 Web 的 VS Code 中建立分支時,指定用於產生隨機分支名稱的單字字典。"git.closeDiffOnOperation"
- 在執行原始檔控制作業(例如提交、暫存、取消暫存變更)後關閉差異編輯器。
此外,適用於 Web 的 VS Code 會在狀態列和受保護分支的分支選取器中顯示鎖定圖示,與 VS Code Desktop 上的體驗保持一致。
最後,您現在可以在適用於 Web 的 VS Code 中使用原始檔控制動作按鈕來提交變更並直接推送至儲存庫遠端
如果您希望在提交之前驗證變更,您也可以在動作按鈕下拉式選單中使用次要繼續在...上工作動作,將您的工作變更帶到另一個開發環境。
「繼續在...上工作」的改進
當您在 GitHub 或 Azure Repos 儲存庫中時,命令選取區中現在提供了方便的一步命令,可將您的工作變更帶到特定的開發環境
- 繼續在新的 Codespace 中工作
- 繼續在本機複製中工作
- 繼續在 VS Code Desktop 上的遠端儲存庫中工作
我們也將編輯工作階段重新命名為雲端變更,以闡明它與在雲端儲存工作變更有關。
擴充功能貢獻
Jupyter
筆記本單元格偵錯的「僅我的程式碼」
「僅我的程式碼」偵錯功能可讓您決定偵錯工具是否會逐步執行 Python 程式庫中的程式碼,或僅逐步執行您的原始程式碼。在偵錯筆記本單元格時,預設已啟用此功能,但您可以設定 "jupyter.debugJustMyCode": false
以停用它,並讓您逐步執行程式庫程式碼。為了獲得最佳體驗,請將您環境中的 debugpy 升級到 >=1.6.3
。先前,debugJustMyCode
設定僅在互動式視窗中偵錯時才受到尊重,現在它也適用於筆記本編輯器。
支援重新啟動筆記本單元格偵錯工作階段
偵錯工具列中的重新啟動命令會重新啟動目前的偵錯工作階段。先前,這會在筆記本偵錯工作階段中擲回錯誤,但現在已支援。不幸的是,在互動式視窗中無法正確支援它。
當您偵錯、編輯單元格,然後重新啟動偵錯工作階段以使用您套用的編輯再次偵錯單元格的工作流程中,此功能特別有用。
遠端開發擴充功能
遠端開發擴充功能可讓您使用容器、遠端機器或 Windows Subsystem for Linux (WSL) 作為功能完整的開發環境。此版本的重點包括
- 開發容器 GPU 支援
- 開發容器 Cygwin / Git Bash Socket 轉發
- Remote - Tunnels 擴充功能 - 連線到遠端機器,無需 SSH。
您可以在 遠端開發版本資訊 中瞭解新的擴充功能功能和錯誤修正。
GitHub Pull Requests and Issues
在 GitHub Pull Requests and Issues 擴充功能方面取得了更多進展,可讓您處理、建立和管理提取要求和問題。重點包括
- 筆記本支援永久連結命令。
- 提取要求檢查狀態(例如持續整合 (CI) 進行中、需要檢閱、CI 失敗等)顯示在提取要求樹狀檢視中。
- 可以從提取要求概觀複製 PR 的 vscode.dev 連結。
- 前往提取要求中的下一個差異命令會導覽至跨檔案的已簽出 PR 中的下一個差異。
查看擴充功能 0.56.0 版本的變更記錄,以查看其他重點。
預覽功能
設定檔
在過去幾個月中,我們一直致力於在 VS Code 中支援設定檔,這是社群最受歡迎的要求之一。此功能可透過 workbench.experimental.settingsProfiles.enabled
設定進行預覽。試用一下,並在 vscode 儲存庫 中建立問題或在 問題 #116740 中留言,向我們提供您的意見反應。
共用設定檔
您現在可以透過將設定檔匯出到 GitHub 作為 gist 來共用設定檔。VS Code 將使用您的 GitHub 帳戶建立秘密 gist,並提供您連結以與他人共用。當您開啟該連結時,VS Code 將要求您安裝共用的設定檔。在匯出或匯入設定檔期間,VS Code 將顯示預覽,以便您可以檢閱並選擇要分別匯出或匯入的資料。
以下是將設定檔匯出到 GitHub,然後複製連結以與他人共用的影片
此影片顯示透過開啟共用連結匯入設定檔
擴充功能簽署和驗證
從 11 月中旬開始,所有上傳到 Visual Studio Marketplace 的 VS Code 擴充功能都由 VS Marketplace 簽署 - 此流程稱為儲存庫簽署。在每次擴充功能安裝和更新時,VS Code 都會驗證擴充功能套件簽章。透過簽署和簽章驗證,我們可以保證擴充功能套件的完整性和真實性。
簽章驗證目前僅在 VS Code Insiders 中完成。如果您發現任何問題,可以透過在 vscode 儲存庫 中建立問題來告知我們,您可以透過將 extensions.verifySignature
設定為 false
來選擇退出簽章驗證。我們正在努力在未來幾個月內在 VS Code Stable 中啟用簽章驗證。
除了儲存庫簽署外,我們也開始著手 擴充功能發行者簽署。
Web 中的 Python 執行
我們為 Experimental - Python for the Web 擴充功能新增了偵錯支援。偵錯工具支援以下功能
- 設定中斷點
- 逐步執行和跳出函式
- 跨模組偵錯
- 在偵錯主控台中評估變數
- 在整合式終端機中偵錯程式
以下螢幕擷取畫面顯示偵錯 Hello World
程式
注意,使用擴充功能仍需要您將以下查詢參數新增至瀏覽器 URL ?vscode-coi=
。
擴充功能撰寫
宣告的擴充功能貢獻的隱含啟動事件
在此里程碑中,如果您的擴充功能在其 package.json
中宣告了某些擴充功能貢獻,我們取消了明確列出啟動事件的要求。
先前,如果擴充功能宣告它在其 package.json
檔案中貢獻了一個命令 mycommand
,它也需要在 package.json
的 activationEvents
欄位中列出對應的 onCommand:mycommand
啟動事件,命令才能成功執行。這既繁瑣又容易出錯,並且可能導致 package.json
檔案變得很大。
VS Code 現在將自動為以下擴充功能貢獻點填入啟動事件
貢獻點 | 推斷的啟動事件 |
---|---|
commands |
onCommand |
authentication |
onAuthenticationRequest |
languages |
onLanguage |
customEditors |
onCustomEditor |
views |
onView |
擴充功能作者現在可以安全地從您的擴充功能中移除這些推斷的啟動事件。如果您這樣做,請更新您的 VS Code 引擎需求,以確保您的擴充功能不會被視為與舊版 VS Code 相容
"engines": {
"vscode": "^1.74.0"
},
記錄輸出通道
在此里程碑中,我們最終確定了 LogOutputChannel API。您現在可以使用此 API 建立記錄輸出通道,該通道將用於記錄來自您擴充功能的訊息。
我們也最終確定了 env
命名空間中的 logLevel 屬性和 onDidChangeLogLevel 事件,以指示應用程式的目前記錄層級,並在應用程式的記錄層級變更時觸發事件。
所有 Webview 的一致來源
繼承 我們上次迭代的工作,VS Code 中的所有 Webview 現在都嘗試維護自訂來源。在 1.74 中,這也延伸到自訂編輯器使用的 Webview。
這透過允許在更多情況下快取 Webview 內容來提高效能。請參閱 先前的版本資訊,以瞭解更多詳細資訊以及作為擴充功能作者需要注意的事項。
擴充功能 README 中支援影片標籤
擴充功能現在可以在其 README 中使用 <video>
標籤。VS Code Marketplace 和 VS Code 中的擴充功能檢視頁面都支援影片。與 .gif
相比,影片檔案品質更高,而且通常也更小。您甚至可以包含音訊!
請記住,僅 VS Code 本身支援特定的影片和音訊格式。目前,您還必須使用 <video>
src
和 poster
的完整路徑,而不是相對路徑。
註解執行緒其他動作
新的選單位置 comments/commentThread/additionalActions
允許擴充功能為註解執行緒貢獻始終可見的按鈕。
將 vsce 重新命名為 @vscode/vsce
vsce 工具,VS Code 的擴充功能管理員,已重新命名為 @vscode/vsce。對於任何將該工具用作程式庫的人來說,這是一個重大變更。CLI 工具仍然稱為 vsce
,並且可以透過 npm install -g @vscode/vsce
安裝。
偵錯配接器協定
對 偵錯配接器協定 新增了一些說明和一個新屬性。
DataBreakpointInfo
要求有一個新的選用frameId
屬性。用戶端可以使用此旗標來指定哪個堆疊框架包含name
變數。- 現在為
readMemory
要求指定了檔案結尾行為。
工程
屬性和方法的名稱混淆
在本次產品建置中,我們修改了屬性和方法的名稱。這減少了主要 bundle 約 13% 的大小(-1.5 MB),並縮短了約 5% 的程式碼載入時間。
GitHub & Microsoft Authentication 擴充功能 bundle 大小改善
考量到 GitHub Authentication 和 Microsoft Authentication 這兩個擴充功能提供的功能,以及它們在許多情況下(例如 vscode.dev)對於啟動的重要性,它們的 bundle 大小超出我們的預期。在這個里程碑中,我們專注於縮減這些擴充功能的大小,以下是成果
- GitHub Authentication:93 KB -> 64.9 KB
- Microsoft Authentication:97 KB -> 57.7 KB
達成此目標的方式如下:
- 不再依賴(以及捆綁)在 Node.js 和 Web 中已可輕易取得功能的 node 模組(例如,移除
uuid
,改用 Crypto.randomUUID())。 - 僅在 Node.js 中使用
node-fetch
,而不是同時用於 Node.js 和 Web。 - 採用最新版本的
@vscode/extension-telemetry
,其大小已大幅縮減。
在此過程中,功能並未減少,且由於這些擴充功能的大小縮減,現在載入速度更快。
Electron 沙箱旅程
您可以在最近發布的「將 VS Code 遷移至程序沙箱」部落格文章中,了解我們在啟用 Electron 沙箱方面的進展。這篇詳細的文章介紹了技術時程,並描述了為支援 VS Code 沙箱所做的漸進式變更。
如果您想試用 VS Code 沙箱模式,可以在設定中設定 "window.experimental.useSandbox": true
。希望您不會注意到任何功能上的差異,但如果您發現任何問題,請回報給我們。
在 Windows 上重新預設啟用視窗控制項覆疊
視窗控制項覆疊 (WCO) 已重新預設啟用。它先前在八月時已啟用,但之後又再次停用,因為對於使用由右至左系統語言的使用者而言,它渲染在錯誤的側邊,遮蓋了檔案和編輯選單項目。
主要問題在於 VS Code 沒有將應用程式地區設定傳遞給 Electron,因此 Electron 使用系統地區設定來判斷 WCO 的放置位置。然而,VS Code 依賴 Electron 的 app.getLocale()
API 來取得系統語言,並判斷要建議哪個語言套件,而將應用程式地區設定傳遞給 Electron 會導致 app.getLocale()
傳回相同的地區設定,而不是系統語言。
為了修正此問題,我們在 Electron 中新增了一個新的 app.getPreferredSystemLanguages()
API,如此一來,即使在將地區設定傳遞給 Electron 之後,我們仍然可以取得系統語言,以用於 VS Code 的語言套件推薦工具,同時讓 WCO 保持在正確的側邊。
內建擴充功能現在使用新的 l10n API 而非 vscode-nls
上個月,我們穩定了新的本地化 (l10n) API。本月,我們已在 Microsoft/vscode 儲存庫中找到的每個擴充功能中採用了該 API。我們仍然需要將語言伺服器遷移到使用 @vscode/l10n
而非 vscode-nls
,以及團隊擁有的其他一些擴充功能(JS Debug、Python、Jupyter Notebooks 等),但我們正朝著正確的方向前進,為我們所有的擴充功能提供單一的本地化方案。
值得注意的修正
- 166171 移除擴充功能提示模式中的預設捲軸。
- microsoft/vscode-jupyter#11745 變數檢視器造成速度變慢和不穩定
感謝您
最後但同樣重要的是,衷心感謝 VS Code 的貢獻者。
問題追蹤
對我們的問題追蹤的貢獻
提取請求
對 vscode
的貢獻
- @Albert-cord:feat: 新增 wordBreak editorOption 並用於 lineBreakComputer 函數 PR #156242
- @andschwa (Andy Jordan):支援 Windows PowerShell 中的 shell 整合 PR #167023
- @babakks (Babak K. Shandiz)
- 🐛 修正於多根工作區中建立新終端機時重複的 CWD 項目 PR #153204
- 🎁 將
killOnServerStop
新增至偵錯設定 PR #163779 - 🎁 將
search
新增至任務中的檔案位置方法 PR #165156 - 💄 在偵錯模式的 URI/連結 hover 中包含檔案系統路徑 PR #165709
- 🔨 將「Focus Breadcrumb」新增至命令面板 PR #166461
- @CGNonofr (Loïc Mangeonjean):獨立組態:使用資源和語言 PR #146522
- @chengluyu (Luyu Cheng):支援可變字型 (#_153291) PR #153968
- @cmarincia (Catalin Marincia):將字串清單選項新增至 editor.fontFamily PR #164289
- @d0ggie (Pekka Seppänen):還原括號比對 CSS 語法 (#_166109) PR #166141
- @dmartzol (Daniel Martinez Olivas)
- 將 css 規則從 links.ts 移動到 links.css PR #166258
- 移動 css 規則 PR #166532
- @ecstrema (Rémi Marche):編輯器狀態變更,比對後中斷 PR #166283
- @felixlheureux (Felix L'Heureux):當未定義或 null 時,將值重設為空字串 PR #165721
- @g1eny0ung (Yue Yang):fix: 修正在取代輸入中的文字覆蓋問題 PR #162036
- @GauravB159 (Gaurav Bhagchandani)
- 將 css 變數用於編輯器捲軸 PR #165464
- 註冊主題參與者重構 PR #165576
- @gjsjohnmurray (John Murray):修正 IW 命令面板項目的文字 (#_164860) PR #164863
- @guttyon:暫時停用輸入法攔截。 PR #159699
- @HiDeoo:修復 QuickPickItem JSDoc 連結在 vscode.d.ts 中的問題 PR #164474
- @hughlilly (Hugh Lilly)
- Markdown 語言預覽設定描述 PR #165109
- 新增至
files.exclude
描述關於explorer.excludeGitIgnore
PR #165111
- @jasonwilliams (Jason Williams):修正 #154064,該問題會執行錯誤的 taskgroup PR #164983
- @JayBazuzi (Jay Bazuzi):變更啟動第二個管理員執行個體時的錯誤訊息 PR #166146
- @Jaykul (Joel Bennett):修正 PowerShell 整合腳本 #165022 PR #165023
- @jeanp413 (Jean Pierre)
- 修正
Terminal: Focus Terminal Tabs view
命令無法運作的問題 PR #164408 - 修正工作重新連線狀態不適用於預設建置工作 PR #165110
- 修正終端機尋找小工具未顯示結果計數 PR #166902
- 修正
- @jkei0:將 css 規則從 selections.ts 移動到 selections.css PR #166407
- @jzyrobert (Robert Jin):新增 explorer.autorevealExclude 設定 PR #136905
- @laurentlb (Laurent Le Brun)
- 註解檢視:新增帶有未解決註解數量的徽章 PR #164743
- 遙測:記錄命令執行時間 PR #165599
- @LoopThrough-i-j (Debayan Ganguly):修正:新的 md 檔案會捲動到頂端。 PR #164999
- @MarkZuber (Mark Zuber):更新 bootstrap-node.js 以檢查 Array.isArray PR #165289
- @marrej (Marcus Revaj):將其他動作新增至 CommentThread PR #162750
- @Mingpan:修正並排差異檢視中的箭頭 PR #165423
- @miyaokamarina (Marina Miyaoka):請勿在 Markdown 預覽中預先處理 Unicode 換行符號 PR #166026
- @MonadChains (MonadChains)
- 實作儲存格執行完成時的音訊提示 PR #165442
- 修正自訂 zsh_history 遭忽略的問題 PR #166813
- @mustard-mh (Huiwen):修正工作狀態不正確的問題 #163393 PR #163952
- @n-gist (n-gist):修正程式碼片段 overtyping 功能 PR #165871
- @najmiehsa
- 使用 CSS 變數而非 registerThemingParticipant - 迷你地圖檢視區塊 PR #165465
- 使用 CSS 變數而非 registerThemingParticipant - 尺規檢視區塊 PR #165466
- @nisargjhaveri (Nisarg Jhaveri):允許同時顯示來自多個偵錯工具的不同例外狀況中斷點 PR #158355
- @Okeanos (Nikolas Grottendieck):改善 Windows 上的 Git Bash 整合 (#_151105) PR #165428
- @pafernandez-oesia:修正 #165480 PR #165486
- @pingren (Ping):修正筆記本預覽中的 KaTeX 方程式編號 PR #156276
- @prashantvc (Prashant Cholachagudda):將擴充功能搜尋遙測的 sessionId 變更為 machineId PR #166355
- @QaidVoid:減少 registerThemingParticipant PR #165575
- @r3m0t (Tomer Chachamu)
- 修正 autoLockGroups 設定 UI 上的核取方塊 (修正 #164367) PR #164369
- 修正 TestItem.error 和 TestItem.sortText 的正確更新 (修正 #166190) PR #166191
- @ramoncorominas (Ramón Corominas):更新 messages.es.isl 以新增內容選單快速鍵 PR #166010
- @rwe (Robert Estelle)
- shellIntegrationAddon.ts:僅解碼 VSCodeOScPt 的訊息,而非 iTerm2 PR #165579
- shellIntegration.fish:在 "E" (已執行命令) 和 "P" (屬性 KV) 代碼中逸出值 PR #165631
- shellIntegration-bash.sh:在 "E" (已執行命令) 和 "P" (屬性 KV) 代碼中逸出值 PR #165632
- shellIntegration-rc.zsh:在 "E" (已執行命令) 和 "P" (屬性 KV) 代碼中逸出值 PR #165633
- shellIntegration.ps1:在 "E" (已執行命令) 和 "P" (屬性 KV) 代碼中逸出值 PR #165634
- shellIntegrationAddon:修正損壞的
deserializeMessage()
實作 + 新增測試 PR #165635
- @sandersn (Nathan Shively-Sanders):將 webServer 從 Typescript 複製到 VS Code PR #165771
- @SethFalco (Seth Falco):feat: 新增多重游標限制的設定 PR #149703
- @SphinxKnight (SphinxKnight):Nit: 修正 Tip 區塊案例 PR #165223
- @ssigwart (Stephen Sigwart):修正貼上含有 JSDoc 的程式碼時出現不必要的額外空格 PR #136579
- @Timmmm (Tim):修正 sticky tabs 選項 PR #157543
- @weartist (Han)
- 移動 #165169 的 css 規則 PR #165595
- #165169 將 css 規則從 hover.ts 移動到 hover.css PR #166095
- 將 css 規則從 inPlaceReplace.ts 移動到 inPlaceReplace.css PR #166098
- Adapter css 變數 PR #166279
- 移動 diffEditor 的 css 變數 PR #166467
- @yiliang114 (易良):僅使用
remote/web/package.json
browser
欄位的字串 PR #165163 - @zeroimpl (Daniel Fiori):分離 tab size 和 indent size PR #155450
- @zhuowei:webview:在 webview 中忽略 PWA 的 Ctrl+W 和 Ctrl+N PR #164981
對 vscode-css-languageservice
的貢獻
- @babakks (Babak K. Shandiz):✋ 忽略具有供應商特定偽元素之內容中遺失的標準屬性 PR #303
- @johnsoncodehk (Johnson Chu)
對 vscode-eslint
的貢獻
- @aleclarson (Alec Larson):引入選項以防止多行底線 PR #1528
- @MariaSolOs (Maria José Solano):停用規則時檢查 -- PR #1506
- @uhyo (uhyo):新增 Flat Config 的實驗性支援 PR #1522
對 vscode-js-debug
的貢獻
- @xai (Olaf Lessenich):fix: 在啟動器中使用平台慣用的大小寫 PR #1449
對 vscode-json-languageservice
的貢獻
對 vscode-pull-request-github
的貢獻
- @joshuaobrien (Joshua O'Brien):縮小 TimelineEvent 中的類型,使其可視為標記聯集 PR #4160
對 debug-adapter-protocol
的貢獻
- @sztomi (Tamás Szelei):更新 sdks.md - 包含 dap-rs PR #349
- @WardenGnaw (Andrew Wang):將 EvaluateArguments 內容變數移至列舉結尾 PR #346
對 devcontainers/cli
的貢獻
- @amurzeau (Alexis Murzeau):處理 Windows 上的 Cygwin / Git Bash socket 轉送 PR #82
- @natescherer (Nate Scherer):將 --output 選項新增至 devcontainer build PR #166
- @stuartleeks (Stuart Leeks):新增 --additional-features 選項 PR #171
- @chris-major-improbable (Chris Major):GPU 需求和自動偵測 NVIDIA 擴充功能 PR #173
- @davidwallacejackson (David Jackson):標準化功能權限 PR #233