現已釋出!閱讀關於 11 月新增功能和修復的內容。

2018 年 3 月(版本 1.22)

更新 1.22.2:本次更新修復了這些 問題

下載:Windows | Mac | Linux 64 位:.tar.gz .deb .rpm | Linux 32 位:.tar.gz .deb .rpm


歡迎使用 Visual Studio Code 2018 年 3 月版本。此版本有許多重要更新,我們希望你會喜歡,其中一些主要亮點包括

如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
您還可以觀看 Cloud Developer Advocate Brian Clark 製作的 1.22 版本亮點影片

釋出說明按以下與 VS Code 重點領域相關的部分進行排列。以下是一些進一步的更新

  • 編輯器 - Emmet 效能和智慧匹配改進,新的程式碼片段日期變數。
  • 工作臺 - Windows 上更平滑的滾動,搜尋和替換期間自動儲存。
  • 除錯 - 改進的 Node.js 程序選擇器,launch.json 中的 postDebugTask。
  • 任務 - 更好的命令和引數引用和轉義支援。
  • 語言 - JSDoc 中更輕鬆的 IntelliSense,CSS 路徑完成。
  • 擴充套件創作 - 帶有取消功能的長時間執行操作,向診斷新增相關資訊。

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

編輯器

語法感知摺疊

現在,HTML、JSON、Markdown、CSS、LESS 和 SCSS 中的摺疊範圍預設基於語言的語法計算,不再依賴於格式正確的縮排。

Syntax folding

還提供了對 TypeScript 和 JavaScript 的支援,可以透過設定 "typescript.experimental.syntaxFolding": true 啟用。

如果您希望切換回基於縮排的摺疊(適用於上述一種或所有語言),請使用

  "[html]": {
    "editor.foldingStrategy": "indentation"
  },

提示:瞭解此功能如何用於摺疊 Markdown 檔案中的標題區域

我們提出了一個新的擴充套件 API,以便其他語言也可以提供其語法感知摺疊提供程式。

跨檔案錯誤和引用導航

在此版本中,透過 F8轉到下一問題)導航錯誤和警告時會考慮到所有報告的錯誤。它不會僅在一個檔案中迴圈,而是會將您帶到下一個有錯誤的檔案並返回。

Visit All Diagnostics

同樣,有一個新命令可導航到引用搜索結果。對符號觸發查詢所有引用,現在使用 F4⇧F4(Windows、Linux Shift+F4來訪問每個引用。這對於在引用符號的所有位置進行編輯非常有用,因為您的手指無需離開鍵盤。

Visit All References

編輯器中的提示

擴充套件 API 現在支援建立“提示”診斷。它們不是錯誤或警告,而是關於如何使某些內容變得更好的建議,例如透過執行特定重構。

我們使用省略號 ... 在相關單詞的開頭下方呈現提示診斷。

Hint Diagnostics

對於擴充套件作者來說,最佳實踐是始終在程式碼操作中包含提示,因為提示診斷有助於宣傳程式碼操作。但是,某些使用者可能不希望在編輯器中顯示提示,因此也應支援停用它們。

提示:在此版本中,我們為 JavaScript/TypeScript 重構添加了幾個提示。

擴充套件 API 現在支援向診斷新增相關資訊,這會在顯示診斷的所有位置顯示:懸停、錯誤“預覽”視窗和問題面板

在下面的示例中,您可以看到相關資訊指出了兩次賦值的變數首次使用位置

Related Diagnostics Information

更輕鬆地開啟大檔案

以前,在編輯器中開啟大檔案(約 2GB+)時,會提示您使用標誌 --max-memory=NEWSIZE 從命令列重新啟動。為了減少這種摩擦,當您嘗試開啟一個需要比應用程式當前允許使用的記憶體更多記憶體的檔案時,將出現一個新的通知,讓您快速重新啟動併為應用程式提供更多可用記憶體。重新啟動後可用的最大記憶體可透過新設定 files.maxMemoryForLargeFilesMB 配置,預設值為 4096 (4GB)。

Large File Notification

語法高亮顯示最佳化

在此版本中,我們將在檔案開啟後立即根據視口中內容的範圍對視口進行語法高亮顯示。這會使著色速度快得多,如下所示,當用戶使用轉到定義命令開啟新檔案時。

:VS Code 1.21 :VS Code 1.22

Syntax highlighting optimization

大檔案查詢和替換改進

我們在上一個版本中釋出了一個新的文字緩衝區實現(閱讀我們的部落格文章瞭解更多資訊),我們繼續對大檔案查詢和替換進行最佳化。

可配置的儲存時格式化超時

VS Code 可以在將檔案儲存到磁碟之前執行格式化程式,因此速度很重要,因為慢速擴充套件可能會減慢儲存速度。因此,VS Code 對儲存非常嚴格,並在 750ms 後取消儲存時格式化請求。對於某些擴充套件,尤其是在處理大檔案時,這不夠時間,因此我們添加了一個新設定 "editor.formatOnSaveTimeout" 來配置超時。如果語言擴充套件知道它需要更多時間進行格式化,它可以將超時修改為預設的特定語言設定

為了監控儲存,狀態列上現在有一個進度指示器。

Save Participant

更多程式碼片段變數

有用於引用當前日期和時間的新程式碼片段變數。除了數字(例如 2018 年 3 月 28 日)之外,您現在可以使用“三月二十八日”之類的名稱。新變數是

  • ${CURRENT_DAY_NAME} - 日期名稱(“Monday”)。
  • ${CURRENT_DAY_NAME_SHORT} - 日期短名稱(“Mon”)。
  • ${CURRENT_MONTH_NAME} - 月份全名稱(“July”)。
  • ${CURRENT_MONTH_NAME_SHORT} - 月份短名稱(“Jul”)。

Emmet

使用縮寫環繞預覽

使用Emmet:使用縮寫環繞Emmet:使用縮寫環繞單行命令時,您現在可以看到環繞文字的預覽效果。

Wrap text with abbreviation preview

更快的縮寫展開

現在,在大型 CSS/SCSS/Less 檔案中展開 Emmet 縮寫要快得多。這是透過在嘗試確定當前位置是否對展開 Emmet 縮寫有效時僅解析游標周圍的小區域而不是完整檔案來實現的。

更智慧的程式碼片段匹配

樣式表中的 Emmet 縮寫與預定義程式碼片段進行模糊匹配,為您提供最匹配的結果。您可以透過更改 emmet.preferences 中的 css.fuzzySearchMinScore 設定來控制模糊匹配精度。css.fuzzySearchMinScore 設定了程式碼片段被視為匹配所需的最低分數。增加分數將導致匹配較少但更準確。預設值為 0.3,您可以提供 0 到 1 之間的任何值。

"emmet.preferences": {
    "css.fuzzySearchMinScore": 0.3
}

工作臺

Windows 上的自動後臺更新

我們已經為 Windows 上的 Insider 使用者推出了自動後臺更新很長時間了。我們決定在 3 月版本中為所有人啟用此功能。

執行時間最長的更新過程現在可以在後臺執行,同時您繼續工作。準備就緒後,它會通知您應用最終更新,這是一個更短的步驟。這意味著在更新到最新的 VS Code 時,您可以繼續工作更長時間!

如果您希望恢復舊行為,或者新更新過程在您的機器上出現問題,可以使用 update.enableWindowsBackgroundUpdates 配置設定停用此功能。

Windows:滾動滯後解決方法

我們收到了報告稱 Windows 上某些裝置上的滾動非常滯後且移動不順暢(詳見問題 13612)。作為平滑滾動的解決方法,可以將新設定 window.smoothScrollingWorkaround 設定為 true。由於這是一個解決方法,並且在從工作列恢復視窗時可能會導致閃爍,因此此設定預設未啟用。如果啟用此設定,您應該不會看到其他副作用。

啟動 VS Code 時不帶引數開啟空視窗

引入了一個新設定 window.openWithoutArgumentsInNewWindow 來控制在不帶引數啟動 VS Code 時是應聚焦上一個活動例項還是開啟一個新空視窗。在 Windows 和 Linux 上,此設定預設啟用以更好地匹配平臺行為。啟用後,從桌面雙擊 VS Code 圖示或從命令列執行不帶引數的 VS Code 將開啟一個新空視窗。在 Windows 上,當在工作列圖示上中鍵單擊或 Shift+單擊時也是如此。透過將 window.openWithoutArgumentsInNewWindow 顯式設定為 off 來停用此行為。

搜尋和替換時自動儲存

替換所有搜尋結果時,您不再需要全部儲存全部關閉。替換操作現在將替換並儲存更改。

搜尋包含/排除模式

搜尋檢視中用於包含和排除模式的框已合併為一個框。功能完全相同,只是排除模式必須以 ! 為字首。例如,!*.js 將跳過搜尋具有 .js 副檔名的檔案。

Combined search patterns inputs

樹:水平滾動支援

有一個新的全域性設定 workbench.tree.horizontalScrolling,它為工作臺中的幾個樹小部件啟用了水平滾動。使用它可以為寬樹元素(例如檔案資源管理器中的深層檔案系統層次結構)提供更好的可讀性。

整合終端

現在跨多行的路徑和 URL 將作為連結起作用。

Multiline terminal links

此實現仍有一些問題,尤其是當您調整視窗大小時。當我們實現重排時,這些問題將得到修復。

命令跟蹤

終端現在具有“命令跟蹤”功能,它會嘗試猜測何時執行命令,並允許在它們之間輕鬆導航和選擇。

Terminal command tracking

此功能在 macOS 上具有以下預設鍵繫結

  • 滾動到上一個命令:Cmd+Up*
  • 滾動到下一個命令:Cmd+Down*
  • 選擇到上一個命令:Cmd+Shift+Up
  • 選擇到下一個命令:Cmd+Shift+Down

* 注意:向上/向下滾動一行已移至 Cmd+Alt+PgUp/Cmd+Alt+PgDown

在 Windows 和 Linux 上,您可以透過將以下內容新增到 keybindings.json 檔案來自定義這些命令的自定義鍵繫結

{ "key": "ctrl+down",       "command": "workbench.action.terminal.scrollToNextCommand",
                               "when": "terminalFocus" },
{ "key": "ctrl+up",         "command": "workbench.action.terminal.scrollToPreviousCommand",
                               "when": "terminalFocus" },
{ "key": "ctrl+shift+down", "command": "workbench.action.terminal.selectToNextCommand",
                               "when": "terminalFocus" },
{ "key": "ctrl+shift+up",   "command": "workbench.action.terminal.selectToPreviousCommand",
                               "when": "terminalFocus" },

更自然的滾動

現在,終端應用程式內的滾動會感覺更自然,因為現在會考慮定義是按畫素、行還是頁滾動的作業系統滾動設定。

使用 VS Code 作為 Git 編輯器後重新聚焦終端

當使用 VS Code 作為 Git 編輯器並且從整合終端觸發 Git 時,完成訊息後,焦點現在將返回到終端。

除錯

日誌點

此里程碑包括我們對日誌點的首次工作。日誌點是斷點的一種變體,它不會“中斷”到偵錯程式中,而是將訊息記錄到控制檯。日誌點對於在無法停止的生產伺服器上除錯時注入日誌記錄特別有用。

日誌點由“菱形”圖標表示。日誌訊息是純文字,但可以包含在花括號('{}')內求值的表示式。

Logpoints

就像常規斷點一樣,日誌點可以啟用或停用,也可以由條件和/或命中計數控制。

日誌點目前受 VS Code 內建的 Node.js 偵錯程式支援,但我們預計其他除錯擴充套件也將很快跟進。

launch.json 中的 postDebugTask

我們在 launch.json 中添加了 postDebugTask 支援。此任務在除錯會話完成後執行。與 preLaunchTask 類似,您可以透過名稱引用 tasks.json 中的任務。這是一個使用 postDebugTask 的啟動配置示例

{
  "name": "Attach to node server",
  "type": "node",
  "request": "attach",
  "port": 8008,
  "preLaunchTask": "Start Server",
  "postDebugTask": "Stop Server"
}

Node 除錯

自動附加到 Node.js 程序

VS Code 的 Node.js 偵錯程式中添加了新自動附加功能的第一版。如果啟用,Node 偵錯程式會自動附加到從 VS Code 整合終端以除錯模式啟動的 Node.js 程序。

Auto Attach

要啟用此功能,請使用切換自動附加操作,或者如果 Node 偵錯程式已啟用,請使用自動附加狀態列項。

程序是否處於“除錯模式”是透過分析程式引數確定的。目前,我們檢測模式 --inspect--inspect-brk--inspect-port--debug--debug-brk--debug-port(所有這些模式後都可以選擇跟一個“=”和一個埠號)。

請注意,此功能尚不適用於 'tmux' 等終端多路複用器(其中啟動的程序不是 VS Code 整合終端的子程序)。

改進的程序選擇器

在以前的版本中,Node.js 程序的程序選擇器僅作為可在啟動配置中使用的“互動式變數”提供。

在此版本中,我們使選擇器可作為附加到 Node 程序操作使用,無需啟動配置即可使用。

為了使選擇器和新操作更有用,我們現在支援透過除錯埠附加到 Node.js 程序(除了透過程序 ID 附加之外)。

除了 Node.js 程序之外,選擇器現在還顯示使用各種形式的 --debug--inspect 引數啟動的所有程式。這使得可以附加到 Electron 或 VS Code 的幫助程式程序。

Node.js Process Picker

選擇器中列出的單個程序項除了程序 ID 外,還顯示除錯埠和檢測到的協議。

任務

改進的引數引用

任務已更新,以便使用者更好地控制在 bash 或 PowerShell 等 shell 中執行時如何引用引數和命令本身。shell 型別的任務現在支援分別提供命令及其引數。下面是一個任務示例,該任務列出名為 folder with spaces 的資料夾的目錄(注意名稱中的空格)。

{
  "label": "dir",
  "type": "shell",
  "command": "dir",
  "args": ["folder with spaces"]
}

由於 shell 任務分別指定了引數,VS Code 知道應將其作為單個引數傳遞給 'dir' 命令,並根據使用的 shell 引用引數。對於 cmd.exe,VS Code 使用 ",對於 PowerShell 使用 ',對於 Linux 和 macOS 下的 shell 也使用 '。如果您想控制如何引用引數,引數可以是指定值和引用樣式的字面量。例如

{
  "label": "dir",
  "type": "shell",
  "command": "dir",
  "args": [
    {
      "value": "folder with spaces",
      "quoting": "escape"
    }
  ]
}

這將使用 shell 的跳脫字元轉義引數中的空格,在 PowerShell 下是反引號,在 bash 下是 \。如果使用的 shell 不支援字元轉義,則使用強引用。

除了轉義之外,還支援以下值

  • strong:使用 shell 的強引用機制,該機制會抑制字串內部的所有求值。在 PowerShell 和 Linux 和 macOS 下的 shell 中,使用單引號(')。對於 cmd.exe,使用 "
  • weak:使用 shell 的弱引用機制,該機制仍會對字串內部的表示式(例如,環境變數)進行求值。在 PowerShell 和 Linux 和 macOS 下的 shell 中,使用雙引號(")。cmd.exe 不支援弱引用,因此 VS Code 也使用 "

如果命令本身包含空格,VS Code 預設也會強引用命令。與引數一樣,使用者可以使用相同的字面量樣式控制命令的引用。

請注意,仍然支援在 command 屬性中包含整個命令列舊樣式。

相同的支援已新增到任務 API,因此任務提供程式也可以完全控制引用和轉義。

語言

按標題級別摺疊 Markdown

您現在可以按標題摺疊 Markdown 文件

Markdown folding

摺疊標題會摺疊該標題下的所有內容和子標題。

TypeScript 2.8

VS Code 現在附帶 TypeScript 2.8。此更新帶來了對一些很棒的新語言功能的支援,以及許多重要的錯誤修復和工具改進。

JSDoc 中改進的快速建議

您知道 VS Code 為 JSDoc 型別提供 IntelliSense 嗎?此功能是在幾個版本前新增的,但您可能沒有意識到,因為 IntelliSense 只有在您手動呼叫時才會出現。在 VS Code 1.22 中,JSDoc 型別中的快速建議現在預設啟用。只需開始輸入即可啟動 IntelliSense

JSDoc suggestions

JavaScript 和 TypeScript 的建議程式碼操作

我們還改進了 JavaScript 和 TypeScript 建議程式碼操作的可發現性。這些是建議的更改,可以幫助您快速改進或清理原始碼。它們使用燈泡小部件顯示,但與快速修復不同,它們不解決原始碼中的特定錯誤或警告。建議程式碼操作示例包括:將 ES5 類轉換為 ES6 類以及將 CommonJS 模組轉換為 ES6 模組。

建議程式碼操作現在在編輯器中由 ... 指示

Triple dots in the editor indicate a suggested Code Action

將游標移到 ... 上,然後單擊燈泡或按 ⌘.(Windows、Linux Ctrl+.以顯示可用的程式碼操作

Hovering over a suggestion indicator

Clicking on the lightbulb

After applying the Code Action

我們計劃繼續新增更多建議。如果您有任何希望看到的建議,請告訴我們。

建議程式碼操作在 JavaScript 和 TypeScript 中預設啟用。您可以透過設定停用它們:"typescript.suggestionActions.enabled": false"javascript.suggestionActions.enabled": false

CSS 路徑完成

除了 HTML,路徑完成現在也可用於 CSS

CSS Path Completion

擴充套件開發

將長時間執行的操作顯示為帶有取消支援的通知

我們添加了一個新 API,用於在通知中心顯示長時間執行的操作,並提供可選的取消支援。在此處顯示長時間執行的操作的好處是

  • 多個操作可以同時報告進度。
  • 您可以顯示操作進度。
  • 使用者可以選擇取消操作。

long running task

使用新進度位置 ProgressLocation.Notification 呼叫 window.withProgress。將 cancellable 設定為 true 以顯示取消按鈕,並在回撥中檢查提供的 CancellationToken 上的取消。要顯示進度,請在報告進度時利用 increment 值。請參閱進度示例以獲取使用此新 API 的擴充套件。

我們添加了一個 API 來為診斷提供相關資訊 - DiagnosticRelatedInformation。想象一下編譯器錯誤的情況,因為變數名在範圍內被重用。實際錯誤可能是“不允許重複定義符號 'Foo'”,並且它會指向非法宣告。透過在診斷中包含相關資訊,您還可以指向符號 'Foo' 的第一次宣告,使錯誤更容易理解和修復。

處置 CancellationTokenSource 不再將標記設定為已取消狀態

以前,在 CancellationTokenSource 上呼叫 dispose() 會將標記設定為已取消並觸發取消事件。我們更改了行為,以便能夠在不取消標記的情況下處置它們。如果您依賴於標記的取消,請呼叫 cancel() 方法。

簡單編輯器未傳遞給擴充套件

使用編輯器的輸入(例如除錯 REPL 輸入)不再作為編輯器傳遞給擴充套件。這意味著當用戶聚焦除錯 REPL 時,onDidChangeActiveTextEditor 不會觸發,並且 onDidChangeTextDocument 也不會觸發。此更改背後的原因是 REPL 輸入將編輯器用作實現細節,並且不應通知擴充套件,因為它不是“真正的編輯器”。

自定義檢視

TreeView

您現在可以使用新的 TreeView API 對自定義檢視執行操作。可以透過提供 viewIdTreeDataProvider 使用新的 API createTreeView 訪問它。

const customView = vscode.window.createTreeView<string>('customView', {
  treeDataProvider: new CustomViewDataProvider<string>()
});

注意:現有的 registerTreeDataProvider API 仍受支援以向檢視提供資料。您可以使用 registerTreeDataProvidercreateTreeView 來提供 TreeDataProvider,但不能同時使用兩者。

顯示

目前,TreeView 公開了 reveal 方法以在檢視中顯示和選擇項。

customView.reveal('element');

預設情況下,要顯示的項會被選中。為了不選擇該項,請將 select 選項設定為 false。例如

customView.reveal('element', { select: false });

您可以在此處找到更多 TreeView 示例。

注意:要啟用 reveal API,貢獻的 TreeDataProvider 必須實現 getParent 方法。

新主題顏色

有兩個用於新“提示”診斷的顏色

  • editorHint.foreground:編輯器中提示的前景色。
  • editorHint.border:編輯器中提示的邊框顏色。

編輯器可見範圍

編輯器可見範圍 API 現已升級為穩定版。

export interface TextEditor {
  /**
   * The current visible ranges in the editor (vertically).
   * This accounts only for vertical scrolling, and not for horizontal scrolling.
   */
  readonly visibleRanges: Range[];
}

export namespace window {
  /**
   * An [event](#_Event) which fires when the selection in an editor has changed.
   */
  export const onDidChangeTextEditorVisibleRanges: Event<TextEditorVisibleRangesChangeEvent>;
}

除錯介面卡協議

日誌點支援

新引入的日誌點在除錯介面卡協議中作為 SourceBreakpoint 上的新屬性 logMessage 和新功能 supportsLogPoints 公開。支援日誌點的除錯介面卡返回 supportsLogPoints 功能的 true,並且不會為非空 logMessage 屬性“中斷”(停止),而是記錄訊息。花括號 ('{...}') 中的表示式會被求值,結果替換日誌訊息中的 '{...}'。

initialize 請求的新 clientName 屬性

前端可以使用 initialize 請求上的新可選屬性 clientName 將前端的人類可讀名稱傳遞給除錯介面卡。

terminateThreads 請求

前端可以使用新的 terminateThreads 請求來終止一個或多個執行緒。相應的 supportsTerminateThreadsRequest 功能表示除錯介面卡支援該請求。

setExpression 請求

新的 setExpression 請求可用於將值分配給可賦值表示式(又名“左值”)。相應的 supportsSetExpression 功能表示除錯介面卡支援該請求。

stopped 事件上的新 preserveFocusHint

stopped 事件上的 true-ish preserveFocusHint 向前端建議停止事件不應更改焦點。

多選 QuickPick

我們為 QuickPick API 添加了一個選項,該選項透過新的 UI 返回選定項列表,允許使用者選擇任意數量的項

Multi-select QuickPick

請參閱 QuickPickOptions.canPickMany 選項和 QuickPickItem.picked 標誌,瞭解如何將它們與現有的 window.showQuickPick API 函式一起使用。

提議的擴充套件 API

在此里程碑中,我們添加了幾個新的擬議擴充套件 API。一旦我們對這些 API 足夠自信,我們計劃在未來的里程碑中將它們新增到穩定版中。我們歡迎對它們如何用於您的擴充套件提供任何反饋。

注意:這些 API 仍處於擬議階段,因此要使用它,您必須透過向 package.json 新增 "enableProposedApi": true 來選擇加入,並且必須將 vscode.proposed.d.ts 複製到您的擴充套件專案中。另請注意,您不能將使用 enableProposedApi 屬性的擴充套件釋出到 Marketplace。

摺疊提供程式 API

為了使擴充套件能夠提供語言感知摺疊範圍,提出了一個新的提供程式 API

export namespace languages {
  /**
   * Register a folding provider.
   *
   * Multiple folding can be registered for a language. In that case providers are sorted
   * by their [score](#_languages.match) and the best-matching provider is used. Failure
   * of the selected provider will cause a failure of the whole operation.
   *
   * @param selector A selector that defines the documents this provider is applicable to.
   * @param provider A folding provider.
   * @return A [disposable](#_Disposable) that unregisters this provider when being disposed.
   */
  export function registerFoldingProvider(
    selector: DocumentSelector,
    provider: FoldingProvider
  ): Disposable;
}

在此處檢視完整的 API:此處

相應的 API 此處作為語言伺服器協議的協議擴充套件提出。歡迎提供反饋!

任務 API

現在有一個新的任務 API 支援

  • 查詢系統中所有現有任務。
  • 以程式設計方式執行任務。
  • 終止正在執行的任務。
  • 監聽任務開始和結束事件。

擬議的 API 可以在此處找到

新 API 還支援在不透過任務提供程式返回任務的情況下執行任務。下面的示例執行一個簡單的 echo 任務。

let task = new vscode.Task(
  {
    type: 'myCustomTask'
  },
  'echo',
  'myExtension',
  new vscode.ShellExecution('echo', ['Hello World'])
);
vscode.workspace.executeTask(task);

可維護性

您現在可以在 VS Code 中報告擴充套件問題。問題報告器現在包含一個下拉選單,用於選擇您是在報告 VS Code 本身的問題還是擴充套件問題。如果擴充套件在 GitHub 上有一個倉庫,則類似的搜尋問題和在 GitHub 上預覽提交按鈕將使用該倉庫。

report on extensions

預覽功能

預覽功能尚未準備好釋出,但已足夠實用。我們歡迎您在這些功能開發期間提供早期反饋。

組織 JavaScript 和 TypeScript 匯入

新的組織匯入命令 () 刪除未使用的匯入並對剩餘的匯入進行排序

Organize Imports

該命令適用於 JavaScript 和 TypeScript 的 ES6 模組。

Electron 2.0 探索

在此里程碑中,我們探索了將 Electron 2.0.0 打包到 VS Code 中。這是一個主要的 Electron 版本,附帶 Chrome 61 和 Node.js 8.x(與我們目前擁有 Chrome 58 和 Node.js 7.x 的版本相比,這是一個巨大的飛躍)。我們計劃在 4 月初向 Insiders 使用者推出更新,以收集更多反饋。如果您有興趣提供幫助,請務必安裝 VS Code Insiders

顯著變化

  • 13905:Windows:中鍵單擊工作列圖示不會開啟新視窗
  • 35675:Linux 上的字型渲染看起來很醜
  • 36307:實驗性檔案觀察器 - “迴圈”符號連結上的高 CPU
  • 42401:更智慧地分組輸出通道
  • 42402:新增選項以從通道內顯示日誌
  • 43813:更新後擴充套件不完整
  • 44411:無法解析的變數啟動失敗
  • 44554:允許拖放多個根資料夾
  • 45872:在安裝本地化包後提示使用者更改 UI 語言
  • 45972:資源管理器:減少 isEqualOrParent 的呼叫次數

感謝

最後但同樣重要的是,衷心感謝!以下幫助使 VS Code 變得更好的各位:

vscode 的貢獻

vscode-extension-vscode 的貢獻

  • Danny Tuppeny (@DanTup):
    • 檢查 code 可執行檔案是否存在而不是僅僅檢查資料夾 (#_95) PR #95
    • 將 VS Code 放置在 .vs-test 的 insiders/stable 子資料夾中 (#_97) PR #97
    • 在 Windows 上不要每次都下載 Code (#_102) PR #102
    • 新增對 Mocha 的 forbidOnly 的支援 (#_103) PR #103

vscode-nls 的貢獻

language-server-protocol 的貢獻

vscode-css-languageservice 的貢獻

vscode-html-languageservice 的貢獻

node-jsonc-parser 的貢獻

vscode-generator-code 的貢獻

vscode-languageserver-node 的貢獻

vscode-loader 的貢獻

vscode-azurecli 的貢獻

vscode-azure-account 的貢獻

vscode-chrome-debug 的貢獻

vscode-chrome-debug-core 的貢獻

  • Chance An (@changsi-an)
    • 引入遙測收集器。 PR #314
    • 引入一種批次傳送遙測事件的機制。 PR #292
    • 更改錯誤訊息浮出到 UI 的方式。 PR #303
    • 批次傳送一些事件通知的遙測。 PR #300
  • @digeff
    • 新增缺少的 await PR #306
    • 在傳送遙測之前不要等待全域性遙測屬性準備就緒 PR #310
    • 向遙測新增版本 PR #307
    • 現在啟動計時事件可以包含失敗原因 PR #316
    • 現在我們傳送有關某些錯誤的更多遙測資訊 PR #319
    • 報告直到我們啟動並向用戶顯示頁面所發生的不同任務的時間 PR #301
    • 以句子大小寫傳送啟動計時事件的所有遙測屬性 PR #313
    • 修復一些無法解釋的斷點行為 PR #296
    • 在使用 break on load 時,在 onScriptParsed 而不是 onScriptPaused 上解析掛起斷點 PR #290
  • Raghav Katyal (@rakatyal):清除上下文以避免傳送多個 remove eve… PR #318

vscode-node-debug2 的貢獻

vscode-recipes 的貢獻

localization 的貢獻

本月是自 2017 年 4 月 10 日我們在 Transifex 上開放 VS Code 社群本地化以來的一週年紀念日。

  • Transifex VS Code 專案團隊中有 800 多名成員,每月有大約 100 名活躍貢獻者。
  • 透過社群貢獻,我們已成功為國際使用者釋出了 9 種核心語言的每月更新。
  • 此外,還有 4 種語言完全由社群成員本地化並作為語言包 VS Code 擴充套件釋出。更多語言即將推出。
  • 向 VS Code 社群本地化貢獻者致敬!

以下是此版本的貢獻者快照。有關專案(包括貢獻者名單)的詳細資訊,請訪問專案網站:https://aka.ms/vscodeloc

  • 法語: Antoine Griffard、Adrien Clerbois、Smrman。
  • 義大利語: Alessandro Alpi、Piero Azi、Aldo Donetti、Simone Chiaretta、Emilie Rollandin、Francesco Mugnai。
  • 德語: Dejan Dinic、Jakob von der Haar、Carsten Kneip、Jakob、Ettore Atalan。
  • 西班牙語: Alberto Poblacion、José M. Aguilar、David Silva、Alejandro M、Andy Gonzalez、AlanThinks、David Triana、Santiago Porras Rodríguez、Carlos Mendible、Jorge Serrano Pérez。
  • 日語: Shunya Tajima、Yuichi Nukiyama、Hiroyuki Mori、Takashi Takebayashi、Seiji Momoto、yoshioms、Yuki Ueda、小島 富治雄、Satoshi Kajiura。
  • 簡體中文: Joel Yang。
  • 繁體中文: Duran Hsieh、Winnie Lin、Poy Chang、balduran、Will 保哥。
  • 韓語: ChangJoon Lee、Ian Y. Choi。
  • 俄語: Ivan、Andrei Makarov。
  • 保加利亞語:Любомир Василев。
  • 匈牙利語: Tar Dániel.
  • 葡萄牙語(巴西): Roberto Fonseca、Matheus Palu、Rodrigo Crespi、Danilo Dantas、Douglas Ivatiuk Martim、Alessandro Fragnani、Kayky de Brito dos Santos。
  • 葡萄牙語(葡萄牙): Diogo Barros、Ruben Mateus、António Lourenço、João Mata、Gustavo Silva。
  • 土耳其語: Adem Coşkuner、Ömer Büyükçelik、Mustafa Turhan、Tuğrul Kaşıkcı。
  • 波斯尼亞語: Bahrudin Hrnjica、Muharem Basanovic、Ismar Bašanović、Almir Vuk。
  • 捷克語: Michal Vondracek、Vít Staniček、Filip Vlček、Vojtěch Habarta、Ferdinand Prantl。
  • 荷蘭語: Maurits Kammer、Gerald Versluis、Marco van den Hout。
  • 芬蘭語: Feetu Nyrhinen、Petri Niinimäki。
  • 希臘語: Dimitris Trachiotis。
  • 印尼語: Joseph Aditya P G、Najih Azkalhaq、Adrian M. R.、Wildan Mubarok、G-RiNe Project、Lundy Orlando、Azhe-kun、Febrian Setianto、Riwut Libinuko、Laurensius Dede Suhardiman、Mulia Arifandi Nasution、Herman Prawiro。
  • 拉脫維亞語: Pēteris Kļaviņš、Simone Chiaretta、kozete、Lafriks。
  • 立陶宛語:Martynas Jusys。
  • 波蘭語: Patryk Brejdak、Joanna Skurzyńska、Paweł Sołtysiak、KarbonKitty。
  • 塞爾維亞語: Марко М. Костић、Nikola Radovanović。
  • 瑞典語: Joakim Olsson、Kalle Wallin、Johan Hedén。
  • 泰語: Sirisak Lueangsaksri、Phongphan Bunlom、ภูมิไผท จันทรศรีวงศ์。
  • 烏克蘭語: Андрій Іванченко、R.M.、Max Plotitsyn、Svitlana Galianova。
  • 越南語: Hung Nguyen。
© . This site is unofficial and not affiliated with Microsoft.