2018 年 9 月 (版本 1.28)
更新 1.28.2:此更新解決了這些 問題。
更新 1.28.1:此更新解決了這些 問題。
下載:Windows:x64 | Mac:Intel | Linux 64 位元:deb rpm tarball | 32 位元:deb rpm tarball
歡迎使用 Visual Studio Code 2018 年 9 月發行版本。如同在 9 月迭代計畫 中宣布的,我們專注於整理我們的 GitHub 問題和提取請求。在我們所有的 VS Code 儲存庫中,我們關閉(已分類或已修正)了 3918 個問題。當我們關閉問題時,您們建立了 2187 個新問題。這導致淨減少 1731 個問題。主要的 vscode 儲存庫 現在有 2472 個未解決的功能請求和 625 個未解決的錯誤。此外,我們關閉了 212 個提取請求。
很高興看到您們有多關心我們的進度。Benjamin Lannon 發布了一個個人網站,其中包含我們 主要儲存庫 中問題編號的 即時追蹤器。它清楚地顯示了我們自 9 月 11 日以來取得的進展
它也顯示了當我們停止關注減少問題時會發生什麼。以下是上週最後三天的情況,當時我們正在為這次發行做準備。如您所見,未來將會有更多問題整理迭代。
在這個整理里程碑期間,我們解決了多個功能請求,社群 提取請求 也促成了新功能。以下是一些發行重點
- 自訂檔案圖示 - VS Code 檔案圖示反映了您作業系統檔案總管中的檔案類型。
- 專案層級程式碼片段 - 根據工作區調整您的程式碼片段集合。
- 編輯器 Tab 鍵完成 - 使用 Tab 鍵輕鬆循環瀏覽 IntelliSense 建議。
- 跳到上次編輯位置 - 新指令可前往您上次編輯的位置。
- 儲存但不格式化 - 儲存檔案而不變更現有的格式。
- Git 整合改進 - 更好的刪除衝突處理、新的同步時變基選項。
- 透過匯入路徑重新命名 - 透過其匯入路徑重新命名 JS/TS 檔案。
- 轉換為 async 重構 - 快速更新函式以使用 async 和 await。
- 更好的 Markdown 折疊 - 折疊程式碼區塊、多行清單和嵌入式 HTML。
如果您想在線上閱讀這些發行說明,請前往 Updates 上的 code.visualstudio.com。
您也可以觀看 Cloud Developer Advocate Brian Clark 製作的 1.28 發行版本 重點影片。
Insiders: 想要盡快看到新功能嗎?您可以下載每晚的 Insiders 組建版本,並在最新更新可用時立即試用。
工作台
預設在 Windows 上使用自訂標題列和功能表列
先前 發行說明 中描述的自訂標題列和可主題化的功能表現在預設在 Windows 上啟用。設定 "window.titleBarStyle"
在 Windows 上的 Insiders 版本中,上個月整個預設為 "custom"
,而我們現在準備將其設為預設體驗。
每個檔案類型的檔案圖示
在 macOS 和 Windows 上,VS Code 註冊為已知檔案類型的預設編輯器。VS Code 現在為一些常見的 VS Code 檔案類型提供自訂圖示。當圖示大小設定為中等到大型時,這些圖示將會顯示在作業系統檔案總管中。對於小型圖示大小,我們決定保留 VS Code 標誌作為圖示。
專案層級程式碼片段
程式碼片段現在可以限定在專案範圍內,並與您的團隊共用。只需使用偏好設定:設定使用者程式碼片段指令,或在 .vscode
資料夾中建立 *.code-snippets
檔案即可。專案程式碼片段的工作方式與其他程式碼片段相同,它們會顯示在 IntelliSense 和插入程式碼片段動作中,現在它們有自己的類別。
程式碼片段現在也支援多個前置詞。如果您無法決定您的著作權標頭程式碼片段應該以 header
、stub
或 copyright
作為前置詞,您可以全部擁有它們。只需使用字串陣列作為 prefix
屬性即可。
{
"prefix": ["header", "stub", "copyright"],
"body": "Copyright. Foo Corp 2028",
"description": "Adds copyright...",
"scope": "javascript,typescript"
}
開啟資料夾時支援符號連結
長期以來,VS Code 在開啟資料夾時一直會解析資料夾的符號連結。這表示即使符號連結存在是有原因的,VS Code 卻忽略它並始終開啟已解析的連結路徑。我們已決定變更此行為並保留符號連結。
注意: 當以符號連結開啟資料夾時,某些功能將會以降低的功能運作(例如 偵錯 和 Git 整合)。
記錄和搜尋鍵盤快速鍵
在鍵盤快速鍵編輯器(⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S))中,您現在可以透過輸入按鍵而不是輸入按鍵名稱(例如 'shift')來搜尋鍵盤快速鍵。開啟記錄按鍵模式,然後輸入您想要搜尋的按鍵。
您也可以使用 ⌥⌘K (Windows、Linux Alt+K) 進入記錄按鍵模式。按下 Esc
鍵以退出記錄按鍵模式。
切換面板變更
我們決定重新審視我們用於切換面板(終端機、輸出、問題、偵錯主控台)的指令行為。您可以追蹤問題 19400 以了解變更的背景資訊。
舊行為是
- 如果面板不可見則顯示面板。
- 如果面板可見則隱藏面板。
新行為是
- 如果面板不可見則顯示面板。
- 如果面板具有鍵盤焦點則隱藏面板。
- 當面板可見但未聚焦時,面板會獲得焦點。
若要恢復先前的行為,您可以設定鍵盤快速鍵,以便在相關面板處於活動狀態時關閉面板。
例如,對於輸出面板
{
"key": "cmd+shift+u",
"command": "workbench.action.closePanel",
"when": "activePanel==workbench.panel.output"
}
面板識別碼清單為
terminal
- 整合式終端機workbench.panel.markers
- 問題面板workbench.panel.output
- 輸出面板workbench.panel.repl
- 偵錯主控台面板
複製相對路徑
將檔案路徑複製為相對路徑的指令現在更顯著地顯示在檔案總管和編輯器標籤的內容功能表中。
從快速開啟中排除最近開啟的檔案
新的設定 search.quickOpen.includeHistory
允許您控制最近開啟的檔案是否應包含在快速開啟檔案選擇器中。預設情況下,最近開啟的檔案會顯示在搜尋的頂端,而工作區中的其他檔案則會顯示在下方。如果您不想在頂端看到最近開啟的檔案,您可以將此設定變更為 false
。
刪除檔案時停用垃圾桶
如果您在從檔案總管刪除檔案時看到問題,因為它們移動到作業系統垃圾桶,您現在可以將 files.enableTrash
設定為 false
,以便在刪除時永遠不要使用作業系統垃圾桶。這樣做會變更檔案總管上的刪除動作和鍵盤快速鍵,以繞過作業系統垃圾桶並永久刪除。您仍然會在刪除發生之前看到提示。
如果偵測到工作區檔案,則提示開啟
當開啟包含一個或多個根目錄中的 .code-workspace
檔案的資料夾時,VS Code 現在會顯示通知,詢問您是否要改為開啟工作區檔案。開啟工作區檔案通常會比僅開啟資料夾提供更好的體驗。您可以在我們的 文件 中了解有關多根工作區的更多資訊。
重新開啟檔案時不還原檢視狀態
即使在檔案關閉後,VS Code 始終會記住檔案的檢視狀態(游標位置、摺疊區段等)。現在有一個新的設定 workbench.editor.restoreViewState
,可以在檔案關閉時捨棄此檢視狀態。這可讓您在重新開啟檔案後始終從檔案頂端開始。
跨所有編輯器群組關閉檔案
新的指令在所有群組中關閉編輯器 (workbench.action.closeEditorInAllGroups
) 可讓您跨所有編輯器群組關閉目前活動的檔案。
問題面板
顯示錯誤代碼
問題面板現在會顯示問題的錯誤代碼(如果有的話)。
改進的鍵盤導覽
問題面板變得更加鍵盤友善
- 當面板具有焦點時,您可以開始輸入以進行篩選。
- 您可以使用 ⌘F (Windows、Linux Ctrl+F) 將焦點放在篩選方塊上,並使用 ⌘↓ (Windows、Linux Ctrl+Down) 將焦點從篩選方塊放在問題清單上。
遙測事件的輸出通道
在 7 月發行版本中,我們新增了一個功能,當您使用開發人員:設定記錄層級... 指令將記錄層級設定為 追蹤 時,VS Code 傳送的所有遙測事件也會記錄到本機檔案。您現在可以在輸出面板的 記錄 (遙測) 通道中檢視此檔案的內容。與之前一樣,您可以使用開發人員:開啟記錄檔... 指令直接檢視檔案。
將焦點放在自訂檢視上
您現在可以使用指令將焦點放在自訂檢視上。每個自訂檢視都提供一個個別的指令。
Linux URL 處理
曾經是 Windows 和 macOS 獨有的功能,現在您也可以在 Linux 上開啟 VS Code URL!這些 URL 對於許多不同的功能很有用,例如自動安裝擴充功能,例如 vscode-insiders:extension/vscodevim.vim
。
編輯器
Tab 鍵完成
編輯器 Tab 鍵完成現在可以完成所有類型的建議。在設定 "editor.tabCompletion": "on"
之後,按下 Tab 鍵將完成任何前置詞,而不僅僅是程式碼片段。此外,按下 Tab 鍵將插入下一個建議,而按下 ⇧Tab (Windows、Linux Shift+Tab) 鍵將插入上一個建議。
導覽至上次編輯位置
新增了一個新的指令前往上次編輯位置 (workbench.action.navigateToLastEditLocation
),以快速導覽至檔案中上次編輯的位置。預設鍵盤快速鍵為 ⌘K ⌘Q (Windows、Linux Ctrl+K Ctrl+Q)。
儲存但不格式化
新的指令儲存但不格式化 (workbench.action.files.saveWithoutFormatting
) 可用於儲存檔案,而不會觸發任何儲存參與者(例如,格式器、移除尾隨空格、最終換行符號)。預設鍵盤快速鍵為 ⌘K S (Windows Ctrl+K Ctrl+Shift+S, Linux Ctrl+K S)。當編輯正常專案之外的檔案時,這很有用,這些檔案可能具有不同的格式慣例。
IntelliSense 區域性獎勵
建議現在可以根據它們與游標的距離進行排序。設定 "editor.suggest.localityBonus": true
,您就會看到,例如,函式參數顯示在 IntelliSense 清單的頂端。
Emmet
我們在此迭代中對 Emmet 功能進行了一些改進
- 如果您已在 JavaScript 檔案中啟用 Emmet,那麼您現在可以在 HTML 檔案的
<script>
標籤內使用 Emmet 縮寫展開。 - Emmet:以縮寫包裝功能不再僅限於副檔名為
.html
的檔案。 - 即使沒有選取範圍,Emmet:平衡 (向內) 功能現在也適用於目前節點。
- 現在已修正將 SCSS 檔案中帶有
#
的 CSS 選取器錯誤地視為有效縮寫的 錯誤。
原始碼控制
變更 SCM 提交鍵盤快速鍵
您現在可以使用 scm.acceptInput
指令變更預設鍵盤快速鍵,以接受 SCM 檢視中的提交訊息。
SCM 狀態列追蹤活動檔案
左下角的 SCM 狀態列貢獻現在會追蹤目前活動檔案所屬的儲存庫。這減少了在跨多資料夾工作區編輯檔案時的混淆。
Git 整合
更好地處理刪除衝突
VS Code 始終會偵測到刪除衝突。現在有更好的 UI 流程來處理它們,當您開啟變更時,您將會看到未刪除的版本,並且您可以決定在暫存檔案時檔案會發生什麼情況:保留它或刪除它。
設定長提交訊息警告閾值
git.inputValidationLength
設定現在可讓您設定提交訊息必須多長才會在您編輯時顯示警告。
在 'git init' 之後將資料夾新增至工作區
在初始化 Git 儲存庫之後,VS Code 現在會詢問您是否要將其新增至目前的工作區。
設定分支驗證規則
您現在可以使用強大的 git.branchValidationRegex
和 git.branchWhitespaceChar
設定來控制分支名稱驗證的工作方式。請參閱問題 50241 以取得更多詳細資訊。
執行同步時始終變基
git.rebaseWhenSync
設定可讓您設定 同步 指令,以便在執行時始終使用變基而不是合併。
停用進度報告
透過 git.showProgress
設定,您現在可以停用在 Git 作業期間顯示進度。
Push --force
在您的日常開發中,有時您只是想冒險。執行 git push --force
就是一個很好的例子!VS Code 現在可讓您強制推送提交至遠端,而無需進入終端機。使用 git.allowForcePush
、git.useForcePushWithLease
和 git.confirmForcePush
設定來控制此行為。請參閱問題 53286 以取得更多詳細資訊。
Stash apply
以下 git stash apply
指令現在已在全域指令面板中提供:Git:套用 Stash...、Git:套用最新 Stash。
始終可見的已暫存變更區段
您現在可以使用 git.alwaysShowStagedChangesResourceGroup
設定,使 已暫存變更 區段在 SCM 檢視中始終保持可見,即使在空白時也是如此
終端機
定義鍵盤快速鍵以傳送自訂序列
已新增新的指令 workbench.action.terminal.sendSequence
,可讓您將自訂序列直接傳送至活動終端機。這允許執行諸如使用 \u
格式傳送 Unicode 字元來傳送方向鍵、Enter 等操作。
{
"key": "ctrl+u",
"command": "workbench.action.terminal.sendSequence",
"args": { "text": "\u001b[1;5D\u007f" }
}
尋找改進
終端機中的尋找功能已得到改進,現在行為更像編輯器中的尋找功能
- 支援 Regex、區分大小寫和比對單字。
- 標準的尋找下一個/上一個鍵盤快速鍵(F3、shift+F3)現在可以運作。
- 傳回跨行換行的尋找結果。
語言
TypeScript 3.1
VS Code 1.28 隨附 TypeScript 3.1.1。此版本帶來了新的語言功能,例如 可對應的元組和陣列類型,以及許多工具改進和錯誤修正。
重新命名匯入路徑
意識到匯入的檔案可以使用更好的名稱?現在您可以透過重新命名匯入來重新命名參照的檔案
轉換為 async 函式
JavaScript 和 TypeScript 的新轉換為 async 函式建議會重寫使用 .then
Promise 鏈結的函式,以使用 async
和 await
請注意,此功能需要將設定
javascript.validate.enable
設定為 true。
JS/TS 建議的新設定
我們已清理 JavaScript 和 TypeScript 建議的設定名稱,並新增了一些額外的設定,以提供更細微的控制
- 所有與建議相關的設定現在都位於
javascript.suggest.*
和typescript.suggest.*
下。 typescript.useCodeSnippetOnMethodSuggest
已重新命名為javascript.suggest.completeFunctionCalls
和typescript.suggest.completeFunctionCalls
。javascript.nameSuggestions
已重新命名為javascript.suggest.names
。typescript.autoImportSuggestions.enabled
已重新命名為javascript.suggest.autoImports
和typescriptscript.suggest.autoImports
。- 新的
javascript.suggest.enabled
和typescript.suggest.enabled
可讓您完全停用 JS 或 TS 建議。
分號作為 JS/TS 的提交字元
分號現在是 JavaScript 和 TypeScript 建議的提交字元。這表示您只需輸入 ;
即可接受目前的建議。現有的提交字元也包括 .
和 (
。
您可以透過設定 "editor.acceptSuggestionOnCommitCharacter": false
來停用提交字元。
HTML 和 CSS 路徑完成排除點檔案
以 .
開頭的檔案現在已從路徑完成結果中排除。
更好的 Markdown 折疊
多行清單、圍籬程式碼區塊和原始 HTML 現在可以在 Markdown 檔案中折疊
Markdown 預覽現在會開啟預覽中本機檔案的連結
在 Markdown 預覽中,按一下本機檔案的連結現在將會開啟該檔案的預覽
這使得瀏覽文件更加容易。使用 markdown.preview.openMarkdownLinks
設定來設定連結的處理方式。有效的設定值為
inEditor
- 在編輯器中開啟本機 Markdown 連結。inPreview
- 在目前預覽中開啟本機 Markdown 連結。這是新的預設行為。
擴充功能
搜尋篩選改進
您現在可以將 @category
篩選器與其他已安裝擴充功能的篩選器(例如 @installed
、@enabled
、@disabled
和 @outdated
)一起使用,以組合您的擴充功能搜尋查詢。例如,您可以使用查詢 @installed @category:themes
搜尋已安裝的主題,或使用 @installed @category:snippets
搜尋貢獻程式碼片段的已安裝擴充功能。
停用的擴充功能不會計為過時
活動列上用於擴充功能檢視的徽章會顯示過時擴充功能的計數,現在將排除停用的擴充功能。此徽章的目的是讓您知道有過時的擴充功能可能需要更新。由於停用的擴充功能目前未使用,因此將它們包含在計數中只會造成干擾。
擴充功能主機沒有回應
VS Code 在稱為擴充功能主機的個別程序中執行擴充功能。此程序使用訊息傳遞與轉譯器/UI 程序通訊。我們已新增對擴充功能主機訊息的更好追蹤,如果訊息在 10 秒內未確認,我們將顯示以下通知
這表示什麼:最有可能的是,擴充功能正在執行 CPU 密集型作業,最終封鎖擴充功能主機程序超過 10 秒。
該怎麼辦:一種選擇是等待作業完成,然後直接忽略通知。另一種選擇是調查哪個擴充功能導致 CPU 使用率過高,方法是前往執行中的擴充功能檢視並 開始分析擴充功能主機。然後,您可以直接針對有問題的擴充功能建立問題。最後,如果您認為擴充功能已進入無限迴圈,並且看起來不會恢復,您可以重新啟動擴充功能主機。
工程
擴充功能和 webpack
我們已繼續我們的 webpack 工作,現在大多數捆綁的擴充功能都已 webpack 化。作為複習:這有助於減少擴充功能的啟動時間,因為需要載入的檔案更少,並且需要剖析的原始碼更少。它也有助於減少安裝時間,因為需要解壓縮並寫入磁碟的檔案更少。
在這個里程碑中,我們又減少了 2803 個檔案的捆綁包。在 7 月,我們從 9000 個檔案開始,到 8 月我們減少到 4650 個,而在 9 月我們有 1847 個!
預覽功能
預覽功能尚未準備好發行,但功能已足夠使用。我們歡迎您在這些功能仍在開發中時提供早期意見反應。
持續探索 Electron 3.0
在這個里程碑中,我們繼續探索將 Electron 3.0.0 捆綁到 VS Code 中。這是 Electron 的主要發行版本,隨附 Chrome 66 和 Node.js 10.x(與我們目前的版本 Chrome 61 和 Node.js 8.x 相比,有了重大飛躍)。我們計劃在不久的將來將更新推送給我們的 Insiders 使用者,以收集更多意見反應。如果您有興趣提供協助,請務必安裝 VS Code Insiders。
其他
macOS Mojave 上的模糊
如果您已更新到 macOS 10.14 (Mojave),您可能會注意到,如果您未使用高 DPI 監視器,VS Code 中的字型看起來會模糊。
此問題的解決方法是執行
defaults write com.microsoft.VSCode.helper CGFontRenderingFontSmoothingDisabled -bool NO
從終端機,然後重新啟動電腦。
請注意,此變更對於每個應用程式都是全域性的,而不是特定於 VS Code。請參閱問題 51132 以了解相關討論。
Electron 更新
在此版本中,我們從 Electron 2.0.7 更新到 2.0.9。最值得注意的是,這允許 VS Code 再次在 ArchLinux 上執行(問題 55934)。
擴充功能撰寫
處理未安裝擴充功能的 URL
回到七月,我們發布了 URI 處理常式 API,供擴充功能處理系統範圍的 URI。在最新發行版本中,VS Code 甚至可以處理尚未安裝的擴充功能的 URI。一旦使用者開啟這樣的 URI,VS Code 將會在 Marketplace 中搜尋擴充功能,建議使用者安裝它,並啟動 VS Code,傳遞 URI。這允許擴充功能具有流暢的啟動流程,將使用者從網頁帶到執行具有特定狀態的擴充功能。
診斷錯誤代碼
由於診斷錯誤代碼現在已在 問題面板 中顯示,因此擴充功能不再需要在 Diagnostic.message
屬性中新增錯誤代碼。
更好的組態 when 子句
在撰寫鍵盤快速鍵或功能表可見性時,會使用 when 子句。在 when 子句中,您可以透過在組態(設定)值前面加上 config.
來參照它,例如 config.editor.tabCompletion
。僅支援布林組態屬性,但在此版本中,您也可以使用字串和數字值。
變更文字文件的語言
有一個新的 API 函式可以變更文件的語言模式:vscode.languages.setTextDocumentLanguage
。API 接受一個文件和您想要使用的語言 識別碼。若要了解有哪些語言識別碼可用,請使用 vscode.languages.getLanguages
。
workspaceContains
啟用
當開啟的工作區包含符合某些模式的檔案時,擴充功能可以使用 workspaceContains
啟用事件來啟用。例如,PHP 擴充功能可能會要求在開啟具有符合 **/*.php
檔案的工作區時啟用。這不是什麼新鮮事,但使用者已指出,當開啟大型工作區時,搜尋程序可能會執行很長時間並使用大量 CPU。
我們做了一些變更,以減少這些搜尋的影響。第一個是這些搜尋現在將會遵循使用者的 files.exclude
、search.exclude
和 search.useIgnoreFiles
設定。換句話說,如果使用者無法透過一般文字搜尋或透過快速開啟進行檔案搜尋來找到檔案,則 workspaceContains
模式將不會比對該檔案。這大大減少了我們必須搜尋 workspaceContains
的檔案數量,並減少了不正確的啟用,當它比對到實際上不是專案一部分的檔案時,例如,埋在 node_modules/
中的某些檔案。
第二個變更是對這些搜尋施加 7 秒的限制。如果搜尋在 7 秒後仍未完成,我們將終止搜尋程序,並在任何情況下啟用擴充功能。
總體而言,這應減少在 VS Code 中開啟大型工作區後,筆記型電腦神秘發熱的情況。
新的主題色彩
有新的主題色彩
menu.separatorBackground
:功能表分隔符號功能表項目的色彩。sideBarSectionHeader.border
:側邊欄區段標頭邊框色彩。inputValidation.infoForeground
:資訊嚴重性輸入驗證前景色彩。inputValidation.warningForeground
:警告嚴重性輸入驗證前景色彩。inputValidation.errorForeground
:錯誤嚴重性輸入驗證前景色彩。editor.snippetTabstopHighlightBackground
:程式碼片段 Tab 停駐點的醒目提示背景色彩。editor.snippetTabstopHighlightBorder
:程式碼片段 Tab 停駐點的醒目提示邊框色彩。editor.snippetFinalTabstopHighlightBackground
:程式碼片段最終 Tab 停駐點的醒目提示背景色彩。editor.snippetFinalTabstopHighlightBorder
:程式碼片段最終 Tab 停駐點的醒目提示邊框色彩。activityBar.inactiveForeground
:活動列項目在非活動狀態時的前景色彩。
偵錯 API
resolveDebugConfiguration
需要明確傳回 null
才能開啟 launch.json
先前,如果 resolveDebugConfiguration
傳回沒有 type
屬性的啟動組態,VS Code 會自動開啟基礎 launch.json
檔案。在收到擴充功能作者的意見反應後,我們決定讓擴充功能對此案例有更多的控制權。
現在 resolveDebugConfiguration
必須明確傳回值 null
,以防止偵錯會話開始並改為開啟 launch.json
。傳回值 undefined
只會阻止偵錯會話開始。與之前一樣,傳回具有 type
屬性的組態將會啟動偵錯會話。
建議的擴充功能 API
每個里程碑都隨附新的建議 API,擴充功能作者可以試用它們。與往常一樣,我們渴望您的意見反應。以下是您試用建議 API 必須執行的操作
- 您必須使用 Insiders 版本,因為建議 API 經常變更。
- 您的擴充功能的
package.json
檔案中必須有這行程式碼:"enableProposedApi": true
。 - 將最新版本的 vscode.proposed.d.ts 檔案複製到您的專案中。
請注意,您無法發布使用建議 API 的擴充功能。我們可能會在下一個發行版本中進行重大變更,而且我們永遠不想中斷現有的擴充功能。
偵錯 API
新的 DebugConfigurationProvider.provideDebugAdapter
取代 DebugConfigurationProvider.debugAdapterExecutable
指令
先前我們新增了建議 API DebugConfigurationProvider.debugAdapterExecutable
,以便擴充功能可以傳回 VS Code 即將啟動的偵錯配接器的動態計算路徑(和對應的程式引數)。在此里程碑中,我們正在根據收到的意見反應修訂初始設計(例如 #45220、#56646、#57706、#54465)。
新的 API 方法 稱為 provideDebugAdapter
,現在我們傳入偵錯會話、工作區資料夾、來自 package.json
的可執行檔資訊和已解析的啟動組態。有了這些資訊,擴充功能在被要求建立偵錯配接器時就有了「全貌」。
此外,我們現在支援更多啟動和連線到偵錯配接器實作的方式。為此,可以從 provideDebugAdapter
方法傳回描述元物件
DebugAdapterExecutable
描述元可用於將偵錯配接器作為每個會話的外部程序啟動,並透過 stdin/stdout 與其通訊。透過新的 API,現在可以指定偵錯配接器的工作目錄和環境變數。DebugAdapterServer
描述處理多個會話並透過 Socket 通訊的伺服器程序。DebugAdapterImplementation
可用於沒有通訊額外負荷的就地實作。此選項依賴於對基於 DAP 的 Node.js 型用戶端程式庫 的一小部分修改,並計劃在 10 月份進行。
請注意,這是建議 API,無法在 Marketplace 上發布的擴充功能中使用。但是,我們很感謝您對問題 45220 中 DebugConfigurationProvider.provideDebugAdapter
的意見反應。
註解編輯和刪除
在上一個迭代中,我們引入了 DocumentCommentProvider
,讓擴充功能可以在編輯器內建立和管理註解。我們已在此提供者中新增了新方法,以支援註解的編輯和刪除。註解本身現在也具有旗標,指出它們是否支援編輯或刪除。如果擴充功能設定了其中一個旗標並提供了適當的編輯或刪除方法,則當滑鼠懸停或聚焦在編輯器內的註解上時,將會顯示編輯或刪除註解的動作
新指令
快捷鍵 | 命令 | 命令 ID |
---|---|---|
⌘K ⌘Q (Windows, Linux Ctrl+K Ctrl+Q) | 導航到上次編輯的位置 | workbench.action.navigateToLastEditLocation |
⌘K S (Windows Ctrl+K Ctrl+Shift+S, Linux Ctrl+K S) | 儲存檔案但不執行儲存參與者 (格式化工具等) | workbench.action.files.saveWithoutFormatting |
關閉所有編輯器群組中的作用中檔案 | workbench.action.closeEditorInAllGroups |
|
切換差異編輯器內嵌和並排模式 (已棄用 toggle.diff.editorMode ) |
toggle.diff.renderSideBySide |
新文件
GitHub Pull Request 擴充功能部落格文章
您可以閱讀 Kenneth 最近發表的部落格文章,宣布新的 GitHub Pull Request 擴充功能,並討論 VS Code 和 GitHub 編輯器團隊之間的協作。
使用 Azure Pipelines 部落格文章
在Visual Studio Code 使用 Azure Pipelines 中,VS Code 工程師 João Moreno 描述了 VS Code 目前如何使用 Azure Pipelines 作為其建置和持續整合 (CI) 基礎架構。
新的 PowerShell 主題
Visual Studio Code 中的 PowerShell 說明了透過 Microsoft PowerShell 擴充功能整合 PowerShell。此擴充功能支援強大的語言功能,例如 IntelliSense、前往定義和尋找所有參考,以及偵錯和程式碼片段。
新的 Python Django 教學課程
有一個新的在 Visual Studio Code 中使用 Django 教學課程,示範如何快速在 VS Code 中建立、編輯和偵錯 Python Django Web 應用程式。
值得注意的修正
- 48051: 格式化後需要向左捲動
- 31619: 必須在程式碼片段中 Tab 鍵瀏覽已刪除的 Tab 停駐點
- 58327: 偵錯工具列按鈕已停用
- 35935: 「清除最近開啟的項目」也應清除編輯器快速選取歷程記錄
- 58799: 儲存時顯示未命名的檔案
- 29553: 在按下 Escape 鍵時保留快速開啟輸入
- 58222: UriDisplayService 缺少遠端共用路徑名稱
- 54213: 無需顯示 launch.json 即可中止偵錯啟動的機制
- 52511: 偵錯懸停小工具 - 針對溢位隱藏的長項目啟用小工具調整大小
- 50569: 條件式中斷點提示應在已停用中斷點時提供啟用中斷點的選項
- 42737: 擴充功能:允許按一下滑鼠右鍵以顯示齒輪選單
- 58434: 使用
--force
引數以防止從 CLI 安裝擴充功能時出現提示。
感謝
最後但同樣重要的是,非常感謝您!以下人士協助讓 VS Code 變得更好
對 vscode
的貢獻
- Sribalaji M (@1AmNegan): 使用快捷鍵為 nextChange/previousChange 置中檢視區 PR #51235
- Agustín Rodríguez (@agurodriguez): Markdown 預覽中差異的樣式 PR #59289
- Andrew Casey (@amcasey): 為 typescript-language-features/languageserviceerrorresponse 新增 GDPR 註解 PR #57182
- Andy Li (@andyli): 覆寫 Ubuntu 的預設整合式終端機字型選項 (#_35901) PR #56429
- Aliaksandr Stelmachonak (@ava1ar): 新增 ARM64 建置支援 PR #52119
- Beau Allison (@beauallison): 將 GIT 淺色檢查圖示與深色對齊 PR #50526
- Andre Wachsmuth (@blutorange): 修正 promise polyfill,鏈結 promises 可運作 PR #57723
- Bruno Finger (@brunofin): 在建立分支時也取代括號 PR #57374
- David Staheli (@DavidStaheli): 使用新的 VSTS YAML 語法 PR #57745
- Dave Williams (@davnicwil): 新組態可關閉 TypeScript 自動完成建議 PR #58011
- Dustin Campbell (@DustinCampbell): 更新 C# 文法 PR #57451
- Eric Amodio (@eamodio): 具有查詢字串的影像 URI 無法正確偵測 PR #58314
- @Git-Lior
- Guy Waldman (@guywald1)
- Jay Rodgers (@headmelted)
- Eric Gang (@Hirico): 從 git-diff 編輯器使用「開啟檔案」後,保留顯示區域 (修正 #53465) PR #54867
- Jatin Sandilya (@jats22): 移除 Python 的絕對路徑 PR #56943
- Jason Bright (@jgbright)
- Jim Hessin (@jhessin): 更新 language-configuration.json PR #44566
- JYX (@jjyyxx): 修正 tsconfig.schema.json 中的不精確描述 PR #58582
- Jonathan Perret (@jonathanperret): 修正 workbench.editor.labelFormat 中的錯字 PR #59155
- Konstantin Müller (@konstantin-mueller): #54204 新增套用 stash 的命令 PR #54300
- limerick (@limerickgds): 類別的產生器方法自動完成會導致新增星號 (*)… PR #51557
- Luis Zuniga (@luiszun): 檢查路徑中是否有空格,然後再傳送。避免檔案名稱被視為… PR #56966
- @lzmkony: 刪除重複的函式 PR #57700
- Muhammad Azeem (@manixate): 防止捲軸被視為拖放的放置目標 PR #49747
- Matt Hardcastle (@MattHardcastle): 不要以 open 結尾時自動關閉 PR #55315
- Maarten Fonville (@mfonville): 將 Electron 更新至 2.0.9 PR #58382
- Marat Abdullin (@mshoho): 將純文字複製到剪貼簿的選項。 PR #54155
- Néstor Hernández Ojeda (@nesukun): 新增強制推送和 force-with-lease 的支援 PR #53286
- Nilesh Kevlani (@njkevlani): 為將自訂序列傳送至終端機新增命令 PR #56962
- Noam Yogev (@noamyogev84): 允許程式碼片段 json 前置詞為陣列,以支援相同程式碼片段的多個前置詞 PR #59092
- Alexandre ZANNI (@noraj): 新增更多 Markdown 擴充功能 PR #58072
- Sardorbek (@oneslash)
- Karthikayan (@ParkourKarthik)
- Chi Wang (@patr0nus): 修正「無效的開始索引」錯誤 PR #57617
- Morten N.O. Nørgaard Henriksen (@raix): 新增分支名稱驗證和空格組態 PR #50712
- Rik Smeets (@rik-smeets): 為選單項目新增遺漏的存取金鑰 (助憶鍵) PR #58412
- Rodrigo Varas (@rodrigovaras): 修正當 Live Share Proxy 偵錯配接器時,讓 EH 偵錯運作的錯誤 PR #58227
- Segev Finer (@segevfiner)
- @sucicf1: 修正 #35905 PR #58380
- Thomas Basche (@tombasche): 允許空的 git commit PR #56048
- tsangint (@tsangint): 修正錯字 PR #57192
- Alexander (@usernamehw): 修正 Tab 焦點相關問題 PR #57821
- Winner Crespo (@wistcc)
對 language-server-protocol
的貢獻
- Tyson Andre (@TysonAndre): 修正更多錯字 PR #568
對 vscode-languageserver-node
的貢獻
- Mathias R. Jessen (@IISResetMe): 修正錯誤訊息中 "received" 的拼字錯誤 PR #414
對 debug-adapter-protocol
的貢獻
- Antonino Perricone (@APerricone): 由 APerricone 新增 harbour 語言 PR #6
對 vscode-recipes
的貢獻
- Daryl Knowles (@darylknowles): Debug End-To-End 應使用 ng e2e 啟動本機伺服器 PR #122
- Karuppasamy M (@karuppasamy): 為 Ruby on Rails 新增配方 PR #59
- Trivikram Kamat (@trivikr): 新增在 VS Code 中偵錯 node-tap 測試的配方 PR #128
對 vscode-chrome-debug
的貢獻
- Sasha (@stristr): 使用可為 Null 的
targetTypes
屬性進行進階偵錯。 PR #727
對 vscode-chrome-debug-core
的貢獻
對 localization
的貢獻
Transifex VS Code 專案團隊中幾乎有 1200 名成員,每月約有 100 名活躍貢獻者。我們感謝您的貢獻,無論是提供新的翻譯、對翻譯進行投票,還是建議流程改進。
以下是此版本的貢獻者快照。如需專案詳細資訊,包括貢獻者名稱清單,請造訪專案網站:https://aka.ms/vscodeloc。
- 孟加拉語: Anisuzzaman Khan, abm_prottoy, Mushiar Khan, Mehedi Hassan。
- 保加利亞語: Любомир Василев。
- 克羅埃西亞語: Nikša Mihaica。
- 捷克語: Vít Staniček。
- 丹麥語: Kenneth Greig, Johan Fagerberg, Martin Fruensgaard。
- 荷蘭語: Gerald Versluis, Marco van den Hout。
- 法語: Antoine Griffard, MayakoLyyn, Smrman, Etienne Blanc-Coquand。
- 德語: J.M., Carsten Kneip, Volkmar Rigo, SetTrend。
- 希臘語: Nikolaos Maliakkas。
- 印地語: Ashwini Gupta, Shaswat Rungta。
- 匈牙利語: Tar Dániel。
- 簡體中文: Joel Yang, 子实 王, pluwen, Chris Pan 潘冬冬, danyeh。
- 繁體中文: Duran Hsieh, Poy Chang, Alan Tsai, Han Lin, Shih-Ming Tung, Will 保哥。
- 印尼語: G-RiNe Project, Wildan Mubarok, Rizki A. Wibowo, Riwut Libinuko, Azhe-kun, rodin, Febrian Setianto (Feber)。
- 義大利語: Luigi Bruno, Luca Bruni, Alessandro Alpi, Emilie Rollandin, Pascal Brax, Andrea Dottor, Riccardo Cappello。
- 日語: Satoshi Kajiura, Shunya Tajima, Yuichi Nukiyama, yoshioms, daisuke osada (daiskeh)。
- 韓語: Kyunghee Ko, jaeyeon Kim, Junseong Jang, Jisan Oh。
- 立陶宛語: Martynas Jusys。
- 馬拉雅拉姆語: Kiren Paul。
- 挪威語: Espen Klein Nilsen。
- 波蘭語: Artur, Patryk Brejdak, Adam Borowski, Mateusz Wyczawski。
- 葡萄牙語 (巴西): Roberto Fonseca, Bruno Sonnino, Danilo Dantas, Marcelo Fernandes, Thiago Custodio, Rodrigo Crespi, Marcelo Andrade, Alessandro Fragnani, Lucas Miranda, Otacilio Saraiva Maia Neto。
- 葡萄牙語 (葡萄牙): António Santos,Diogo Barros, António Lourenço, jp2masa, Ruben Mateus, Henrique Silva, André Vala。
- 俄語: Ivan Kuzmenko, Roman Slauta。
- 西班牙語: Jorge Serrano Pérez, José M. Aguilar, Alberto Poblacion, Carlos Mendible, Alejandro Medina, Andy Gonzalez,Carlos Herrera。
- 坦米爾語: Vijay Nirmal, rajakvk, Anand AV。
- 土耳其語: Mustafa Turhan, Fırat Payalan, Selim Ata。