🚀 在 VS Code 中取得

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 日以來取得的進展

Burn down of issues

它也顯示了當我們停止關注減少問題時會發生什麼。以下是上週最後三天的情況,當時我們正在為這次發行做準備。如您所見,未來將會有更多問題整理迭代。

Increase of issues

在這個整理里程碑期間,我們解決了多個功能請求,社群 提取請求 也促成了新功能。以下是一些發行重點

如果您想在線上閱讀這些發行說明,請前往 Updates 上的 code.visualstudio.com
您也可以觀看 Cloud Developer Advocate Brian Clark 製作的 1.28 發行版本 重點影片

Insiders: 想要盡快看到新功能嗎?您可以下載每晚的 Insiders 組建版本,並在最新更新可用時立即試用。

工作台

預設在 Windows 上使用自訂標題列和功能表列

先前 發行說明 中描述的自訂標題列和可主題化的功能表現在預設在 Windows 上啟用。設定 "window.titleBarStyle" 在 Windows 上的 Insiders 版本中,上個月整個預設為 "custom",而我們現在準備將其設為預設體驗。

Custom title and menu bar with a dark theme on Windows

每個檔案類型的檔案圖示

在 macOS 和 Windows 上,VS Code 註冊為已知檔案類型的預設編輯器。VS Code 現在為一些常見的 VS Code 檔案類型提供自訂圖示。當圖示大小設定為中等到大型時,這些圖示將會顯示在作業系統檔案總管中。對於小型圖示大小,我們決定保留 VS Code 標誌作為圖示。

File Icons

專案層級程式碼片段

程式碼片段現在可以限定在專案範圍內,並與您的團隊共用。只需使用偏好設定:設定使用者程式碼片段指令,或在 .vscode 資料夾中建立 *.code-snippets 檔案即可。專案程式碼片段的工作方式與其他程式碼片段相同,它們會顯示在 IntelliSense 和插入程式碼片段動作中,現在它們有自己的類別。

Project Level Snippet

程式碼片段現在也支援多個前置詞。如果您無法決定您的著作權標頭程式碼片段應該以 headerstubcopyright 作為前置詞,您可以全部擁有它們。只需使用字串陣列作為 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')來搜尋鍵盤快速鍵。開啟記錄按鍵模式,然後輸入您想要搜尋的按鍵。

Record Keys

您也可以使用 ⌥⌘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 - 偵錯主控台面板

複製相對路徑

將檔案路徑複製為相對路徑的指令現在更顯著地顯示在檔案總管和編輯器標籤的內容功能表中。

Copy Relative Path

從快速開啟中排除最近開啟的檔案

新的設定 search.quickOpen.includeHistory 允許您控制最近開啟的檔案是否應包含在快速開啟檔案選擇器中。預設情況下,最近開啟的檔案會顯示在搜尋的頂端,而工作區中的其他檔案則會顯示在下方。如果您不想在頂端看到最近開啟的檔案,您可以將此設定變更為 false

刪除檔案時停用垃圾桶

如果您在從檔案總管刪除檔案時看到問題,因為它們移動到作業系統垃圾桶,您現在可以將 files.enableTrash 設定為 false,以便在刪除時永遠不要使用作業系統垃圾桶。這樣做會變更檔案總管上的刪除動作和鍵盤快速鍵,以繞過作業系統垃圾桶並永久刪除。您仍然會在刪除發生之前看到提示。

如果偵測到工作區檔案,則提示開啟

當開啟包含一個或多個根目錄中的 .code-workspace 檔案的資料夾時,VS Code 現在會顯示通知,詢問您是否要改為開啟工作區檔案。開啟工作區檔案通常會比僅開啟資料夾提供更好的體驗。您可以在我們的 文件 中了解有關多根工作區的更多資訊。

Workspace file prompt

重新開啟檔案時不還原檢視狀態

即使在檔案關閉後,VS Code 始終會記住檔案的檢視狀態(游標位置、摺疊區段等)。現在有一個新的設定 workbench.editor.restoreViewState,可以在檔案關閉時捨棄此檢視狀態。這可讓您在重新開啟檔案後始終從檔案頂端開始。

跨所有編輯器群組關閉檔案

新的指令在所有群組中關閉編輯器 (workbench.action.closeEditorInAllGroups) 可讓您跨所有編輯器群組關閉目前活動的檔案。

問題面板

顯示錯誤代碼

問題面板現在會顯示問題的錯誤代碼(如果有的話)。

Problems panel shows error codes

改進的鍵盤導覽

問題面板變得更加鍵盤友善

  • 當面板具有焦點時,您可以開始輸入以進行篩選。
  • 您可以使用 ⌘F (Windows、Linux Ctrl+F) 將焦點放在篩選方塊上,並使用 ⌘↓ (Windows、Linux Ctrl+Down) 將焦點從篩選方塊放在問題清單上。

遙測事件的輸出通道

在 7 月發行版本中,我們新增了一個功能,當您使用開發人員:設定記錄層級... 指令將記錄層級設定為 追蹤 時,VS Code 傳送的所有遙測事件也會記錄到本機檔案。您現在可以在輸出面板的 記錄 (遙測) 通道中檢視此檔案的內容。與之前一樣,您可以使用開發人員:開啟記錄檔... 指令直接檢視檔案。

將焦點放在自訂檢視上

您現在可以使用指令將焦點放在自訂檢視上。每個自訂檢視都提供一個個別的指令。

Custom view focus commands

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) 鍵將插入上一個建議。

Tab completion

導覽至上次編輯位置

新增了一個新的指令前往上次編輯位置 (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 清單的頂端。

Locality bonus

Emmet

我們在此迭代中對 Emmet 功能進行了一些改進

  • 如果您已在 JavaScript 檔案中啟用 Emmet,那麼您現在可以在 HTML 檔案的 <script> 標籤內使用 Emmet 縮寫展開。
  • Emmet:以縮寫包裝功能不再僅限於副檔名為 .html 的檔案。
  • 即使沒有選取範圍,Emmet:平衡 (向內) 功能現在也適用於目前節點。
  • 現在已修正將 SCSS 檔案中帶有 # 的 CSS 選取器錯誤地視為有效縮寫的 錯誤

原始碼控制

變更 SCM 提交鍵盤快速鍵

您現在可以使用 scm.acceptInput 指令變更預設鍵盤快速鍵,以接受 SCM 檢視中的提交訊息。

SCM 狀態列追蹤活動檔案

左下角的 SCM 狀態列貢獻現在會追蹤目前活動檔案所屬的儲存庫。這減少了在跨多資料夾工作區編輯檔案時的混淆。

Git 整合

更好地處理刪除衝突

VS Code 始終會偵測到刪除衝突。現在有更好的 UI 流程來處理它們,當您開啟變更時,您將會看到未刪除的版本,並且您可以決定在暫存檔案時檔案會發生什麼情況:保留它或刪除它。

Keep or delete deletion conflicts

設定長提交訊息警告閾值

git.inputValidationLength 設定現在可讓您設定提交訊息必須多長才會在您編輯時顯示警告。

在 'git init' 之後將資料夾新增至工作區

在初始化 Git 儲存庫之後,VS Code 現在會詢問您是否要將其新增至目前的工作區。

設定分支驗證規則

您現在可以使用強大的 git.branchValidationRegexgit.branchWhitespaceChar 設定來控制分支名稱驗證的工作方式。請參閱問題 50241 以取得更多詳細資訊。

執行同步時始終變基

git.rebaseWhenSync 設定可讓您設定 同步 指令,以便在執行時始終使用變基而不是合併。

停用進度報告

透過 git.showProgress 設定,您現在可以停用在 Git 作業期間顯示進度。

Push --force

在您的日常開發中,有時您只是想冒險。執行 git push --force 就是一個很好的例子!VS Code 現在可讓您強制推送提交至遠端,而無需進入終端機。使用 git.allowForcePushgit.useForcePushWithLeasegit.confirmForcePush 設定來控制此行為。請參閱問題 53286 以取得更多詳細資訊。

Stash apply

以下 git stash apply 指令現在已在全域指令面板中提供:Git:套用 Stash...Git:套用最新 Stash

始終可見的已暫存變更區段

您現在可以使用 git.alwaysShowStagedChangesResourceGroup 設定,使 已暫存變更 區段在 SCM 檢視中始終保持可見,即使在空白時也是如此

Staged changes visible

終端機

定義鍵盤快速鍵以傳送自訂序列

已新增新的指令 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。此版本帶來了新的語言功能,例如 可對應的元組和陣列類型,以及許多工具改進和錯誤修正。

重新命名匯入路徑

意識到匯入的檔案可以使用更好的名稱?現在您可以透過重新命名匯入來重新命名參照的檔案

Renaming an JavaScript import to rename a file

轉換為 async 函式

JavaScript 和 TypeScript 的新轉換為 async 函式建議會重寫使用 .then Promise 鏈結的函式,以使用 asyncawait

Converting a promise chain to an async function

請注意,此功能需要將設定 javascript.validate.enable 設定為 true。

JS/TS 建議的新設定

我們已清理 JavaScript 和 TypeScript 建議的設定名稱,並新增了一些額外的設定,以提供更細微的控制

  • 所有與建議相關的設定現在都位於 javascript.suggest.*typescript.suggest.* 下。
  • typescript.useCodeSnippetOnMethodSuggest 已重新命名為 javascript.suggest.completeFunctionCallstypescript.suggest.completeFunctionCalls
  • javascript.nameSuggestions 已重新命名為 javascript.suggest.names
  • typescript.autoImportSuggestions.enabled 已重新命名為 javascript.suggest.autoImportstypescriptscript.suggest.autoImports
  • 新的 javascript.suggest.enabledtypescript.suggest.enabled 可讓您完全停用 JS 或 TS 建議。

分號作為 JS/TS 的提交字元

分號現在是 JavaScript 和 TypeScript 建議的提交字元。這表示您只需輸入 ; 即可接受目前的建議。現有的提交字元也包括 .(

您可以透過設定 "editor.acceptSuggestionOnCommitCharacter": false 來停用提交字元。

HTML 和 CSS 路徑完成排除點檔案

. 開頭的檔案現在已從路徑完成結果中排除。

更好的 Markdown 折疊

多行清單、圍籬程式碼區塊和原始 HTML 現在可以在 Markdown 檔案中折疊

Folding Markdown code blocks and lists

在 Markdown 預覽中,按一下本機檔案的連結現在將會開啟該檔案的預覽

Local file link open in preview

這使得瀏覽文件更加容易。使用 markdown.preview.openMarkdownLinks 設定來設定連結的處理方式。有效的設定值為

  • inEditor - 在編輯器中開啟本機 Markdown 連結。
  • inPreview - 在目前預覽中開啟本機 Markdown 連結。這是新的預設行為。

擴充功能

搜尋篩選改進

您現在可以將 @category 篩選器與其他已安裝擴充功能的篩選器(例如 @installed@enabled@disabled@outdated)一起使用,以組合您的擴充功能搜尋查詢。例如,您可以使用查詢 @installed @category:themes 搜尋已安裝的主題,或使用 @installed @category:snippets 搜尋貢獻程式碼片段的已安裝擴充功能。

停用的擴充功能不會計為過時

活動列上用於擴充功能檢視的徽章會顯示過時擴充功能的計數,現在將排除停用的擴充功能。此徽章的目的是讓您知道有過時的擴充功能可能需要更新。由於停用的擴充功能目前未使用,因此將它們包含在計數中只會造成干擾。

擴充功能主機沒有回應

VS Code 在稱為擴充功能主機的個別程序中執行擴充功能。此程序使用訊息傳遞與轉譯器/UI 程序通訊。我們已新增對擴充功能主機訊息的更好追蹤,如果訊息在 10 秒內未確認,我們將顯示以下通知

Extension Host Unresponsive

這表示什麼:最有可能的是,擴充功能正在執行 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.excludesearch.excludesearch.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 上發布的擴充功能中使用。但是,我們很感謝您對問題 45220DebugConfigurationProvider.provideDebugAdapter 的意見反應。

註解編輯和刪除

在上一個迭代中,我們引入了 DocumentCommentProvider,讓擴充功能可以在編輯器內建立和管理註解。我們已在此提供者中新增了新方法,以支援註解的編輯和刪除。註解本身現在也具有旗標,指出它們是否支援編輯或刪除。如果擴充功能設定了其中一個旗標並提供了適當的編輯或刪除方法,則當滑鼠懸停或聚焦在編輯器內的註解上時,將會顯示編輯或刪除註解的動作

Comment editing

新指令

快捷鍵 命令 命令 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 的貢獻

language-server-protocol 的貢獻

vscode-languageserver-node 的貢獻

debug-adapter-protocol 的貢獻

vscode-recipes 的貢獻

vscode-chrome-debug 的貢獻

vscode-chrome-debug-core 的貢獻

  • @digeff
    • 更新記錄機制以不記錄來源 PR #355
    • 修正第一行 bp chrome 69 PR #352
    • 修正 break-on-load 以讓附加時的中斷點運作 PR #332

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。