參加你附近的 ,瞭解 VS Code 中的 AI 輔助開發。

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 開發人員倡導者 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 對儲存非常嚴格,並在 750 毫秒後取消儲存時格式化請求。對於某些擴充套件,特別是處理大檔案時,這時間不夠,因此我們添加了一個新設定 "editor.formatOnSaveTimeout" 來配置超時。如果語言擴充套件知道它需要更多時間進行格式化,它可以將超時修改為預設的語言特定設定

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

Save Participant

更多程式碼片段變數

有新的程式碼片段變數用於引用當前日期和時間。除了數字,例如 2018 年 3 月 28 日,您現在還可以使用“3 月 28 日”這樣的名稱。新變數是

  • ${CURRENT_DAY_NAME} - 日期名稱(“星期一”)。
  • ${CURRENT_DAY_NAME_SHORT} - 日期簡稱(“週一”)。
  • ${CURRENT_MONTH_NAME} - 月份全稱(“七月”)。
  • ${CURRENT_MONTH_NAME_SHORT} - 月份簡稱(“七月”)。

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 不支援字元轉義,則使用強引用。

除了轉義,還支援以下值

  • :使用 shell 的強引用機制,該機制會抑制字串中的所有評估。在 PowerShell 以及 Linux 和 macOS 下的 shell 中,使用單引號 (')。對於 cmd.exe,使用 "
  • :使用 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 的 preserveFocusHint 提示前端,停止事件不應更改焦點。

多選快速選擇

我們為 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 月初向我們的 Insider 使用者推出更新,以收集更多反饋。如果您有興趣提供幫助,請務必安裝 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):
    • 檢查程式碼可執行檔案的存在,而不僅僅是資料夾 (#_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
    • 當使用載入時中斷時,在 onScriptParsed 而不是 onScriptPaused 上解析掛起的斷點 PR #290
  • Raghav Katyal (@rakatyal):清除上下文以避免傳送多個刪除事件... 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。