🚀 在 VS Code 中

2018 年 3 月 (版本 1.22)

更新 1.22.2:此更新修正了這些 問題

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


歡迎使用 2018 年 3 月發行的 Visual Studio Code。此版本包含許多重大更新,我們希望您會喜歡,以下是一些重點摘要

如果您想在線上閱讀這些版本資訊,請前往 更新,網址為 code.visualstudio.com
您也可以觀看 Cloud Developer Advocate Brian Clark 提供的 1.22 版重點影片

版本資訊依據 VS Code 的重點領域安排在以下各節中。以下是一些進一步的更新

  • 編輯器 - Emmet 效能和智慧型比對改進、新的程式碼片段日期變數。
  • 工作台 - Windows 上更流暢的捲動、搜尋和取代期間自動儲存。
  • 偵錯 - 改良的 Node.js 處理程序選取器、launch.json 中的 postDebugTask。
  • 工作 - 更佳的命令和引數引號和逸出支援。
  • 語言 - JSDoc 中更輕鬆的 IntelliSense、CSS 路徑完成。
  • 擴充功能撰寫 - 長時間執行的可取消作業、將相關資訊新增至診斷。

Insiders:想盡快看到新功能嗎?您可以下載 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 現在支援將相關資訊新增至診斷,這會顯示在顯示診斷的所有位置:在 hover、錯誤預覽視窗和 [問題] 面板中。

在以下範例中,您可以看到相關資訊指出首次使用兩次指派變數的位置

Related Diagnostics Information

更輕鬆開啟大型檔案的方式

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

Large File Notification

語法醒目提示最佳化

在此版本中,我們會在檔案開啟後立即針對 viewport 執行語法醒目提示,根據 viewport 中內容的範圍。這會產生更快的色彩化效果,如下所示,當使用者使用 [移至定義] 命令開啟新檔案時。

: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,可為工作台中多個樹狀結構 widget 啟用水平捲動。使用它來為寬樹狀結構元素提供更好的可讀性,例如檔案總管中的深層檔案系統階層。

整合式終端機

跨越多行的路徑和 URL 現在將可作為連結運作。

Multiline terminal links

實作中仍有一些問題,尤其是在您調整視窗大小時。當我們實作 reflow 時,這些問題將會修正。

命令追蹤

終端機現在具有「命令追蹤」功能,此功能會嘗試猜測命令何時執行,並允許在命令之間輕鬆導覽和選取。

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" },

更自然的捲動

終端機應用程式內部的捲動現在會感覺更自然,因為現在會考量定義是否依像素、行或頁面捲動的 OS 捲動設定。

將 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 處理程序。

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

Node.js Process Picker

選取器中列出的個別處理程序項目會顯示偵錯連接埠和偵測到的通訊協定,以及處理程序識別碼。

工作

改良的引數引號

工作已更新,讓使用者可以更佳地控制在 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 folding

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

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

TypeScript 2.8

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

JSDoc 中改良的快速建議

JSDoc suggestions

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

JavaScript 和 TypeScript 的建議程式碼動作

我們也改進了 JavaScript 和 TypeScript 建議程式碼動作的可探索性。這些是建議的變更,可協助您快速改進或清理原始程式碼。它們是使用燈泡 widget 顯示的,但與快速修正不同,它們不會解決原始程式碼中的特定錯誤或警告。範例建議程式碼動作包括:將 ES5 類別轉換為 ES6 類別,以及將 CommonJS 模組轉換為 ES6 模組。

Triple dots in the editor indicate a suggested Code Action

建議程式碼動作現在以編輯器中的 ... 指示

Hovering over a suggestion indicator

Clicking on the lightbulb

After applying the Code Action

將游標移至 ... 上方,然後按一下燈泡或按下 ⌘. (Windows、Linux Ctrl+.) 以顯示可用的程式碼動作

我們計劃繼續新增其他建議。如果您有任何想要看到的建議,請告訴我們。

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

CSS 路徑完成

CSS Path Completion

擴充功能撰寫

除了 HTML 之外,路徑完成現在也適用於 CSS

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

  • 我們新增了一個新的 API,可在通知中心顯示長時間執行的作業,並具有選擇性的取消支援。在此處顯示長時間執行的作業的好處是
  • 多個作業可以同時回報進度。
  • 您可以顯示作業進度。

long running task

使用者可以選擇取消作業。

支援相關診斷資訊

我們新增了一個 API,以提供診斷的相關資訊 - DiagnosticRelatedInformation。想像一下,由於變數名稱在範圍內重複使用而導致編譯器錯誤的情況。實際錯誤可能是「不允許符號 'Foo' 的重複定義」,而且它會指向非法宣告。透過在診斷中包含相關資訊,您也可以指向符號 'Foo' 的第一個宣告,讓錯誤更容易理解和修正。

處置 CancellationTokenSource 不再將權杖設定為已取消狀態

先前在 CancellationTokenSource 上呼叫 dispose() 會將權杖設定為已取消,並觸發取消事件。我們變更了行為,以便能夠處置權杖而不取消它們。如果您依賴權杖的取消,請呼叫 cancel() 方法。

簡單的編輯器不會傳遞至擴充功能

使用編輯器的輸入 (例如偵錯 REPL 輸入) 不再作為編輯器傳遞至擴充功能。這表示當使用者專注於偵錯 REPL 時,onDidChangeActiveTextEditor 不會觸發,而且 onDidChangeTextDocument 也不會觸發。此變更背後的原因是 REPL 輸入使用編輯器作為實作細節,而且擴充功能不應收到此通知,因為它不是「真正的編輯器」。

自訂檢視

TreeView

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

您現在可以使用新的 TreeView API 在您的自訂檢視上執行作業。這可以使用新的 API createTreeView 透過提供 viewIdTreeDataProvider 來存取。

注意:現有的 registerTreeDataProvider API 仍然支援將資料貢獻給檢視。您可以使用 registerTreeDataProvidercreateTreeView 來貢獻 TreeDataProvider,但不能兩者都使用。

顯示

customView.reveal('element');

目前,TreeView 公開 reveal 方法,以顯示和選取檢視中的項目。

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

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

您可以在這裡找到更多 TreeView 範例。

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

新的佈景主題色彩

  • 新的「提示」診斷有兩種色彩
  • editorHint.foreground:編輯器中提示的前景色彩。

editorHint.border:編輯器中提示的邊框色彩。

編輯器可見範圍

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>;
}

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

偵錯配接器通訊協定

記錄點支援

新推出的記錄點在偵錯配接器通訊協定中作為 SourceBreakpoint 上的新屬性 logMessage 和新功能 supportsLogPoints 呈現。支援記錄點的偵錯配接器會針對 supportsLogPoints 功能傳回 true,且不會針對非空白的 logMessage 屬性「中斷」(停止),而是記錄訊息。大括號 ('{...}') 內的運算式會經過評估,結果會取代記錄訊息中的 '{...}'。

initialize 要求的新的 clientName 屬性

前端可以使用 initialize 要求上的新選擇性屬性 clientName,將前端的人類可讀名稱傳遞至偵錯配接器。

新的 terminateThreads 要求

前端可以使用新的 terminateThreads 要求來終止一個或多個執行緒。對應的 supportsTerminateThreadsRequest 功能表示偵錯配接器支援要求。

新的 setExpression 要求

新的 setExpression 要求可用於將值指派給可指派的運算式 (又稱為「左值」)。對應的 supportsSetExpression 功能表示偵錯配接器支援要求。

stopped 事件上的新 preserveFocusHint

stopped 事件上的 true-ish preserveFocusHint 建議前端 stopped 事件不應變更焦點。

多重選取 QuickPick

Multi-select QuickPick

我們已在 QuickPick API 中新增選項,此選項會傳回已選取項目的清單,並具有新的 UI,讓使用者可以選取任意數量的項目。請參閱 QuickPickOptions.canPickMany 選項和 QuickPickItem.picked 旗標,以瞭解如何將這些選項與現有的 window.showQuickPick API 函式搭配使用。

建議的擴充功能 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 相比,是一大躍進)。我們計劃在四月初將更新推送給我們的 Insiders 使用者,以收集更多意見回饋。如果您有興趣協助我們,請務必安裝 VS Code Insiders 版本。

重大變更

  • 13905:Windows:在工作列圖示上按一下滑鼠中鍵不會開啟新視窗
  • 35675:字型在 Linux 上渲染時看起來很難看
  • 36307:實驗性檔案監看器 - 在「循環」符號連結上 CPU 使用率偏高
  • 42401:更智慧的輸出通道分組
  • 42402:新增從通道內顯示記錄的選項
  • 43813:擴充功能在更新後不完整
  • 44411:針對無法解析的變數從啟動中退出
  • 44554:允許拖放多個根資料夾
  • 45872:在安裝本地化套件後提示使用者變更 UI 語言
  • 45972:Explorer:減少 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。
  • 日文: 田島俊哉、貫山裕一、森博之、竹林隆弘、百本清司、yoshioms、植田雄貴、小島 富治雄、梶浦 智史。
  • 簡體中文: 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。