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 月版本。此版本有許多重要更新,我們希望你會喜歡,其中一些主要亮點包括
- 語法感知程式碼摺疊 - 改進了 CSS、HTML、JSON 和 Markdown 檔案的摺疊功能。
- 跨檔案錯誤、警告和引用導航 - 在工作區中快速移動。
- 新提示建議 - 使在編輯器中發現建議的修復或重構變得容易。
- 轉換為 ES6 重構 - 用於轉換為 ES6 類和模組的新程式碼操作。
- 自動附加到程序 - 自動將偵錯程式附加到正在執行的 Node.js 程序。
- 日誌點 - 在不更改原始碼或重新啟動除錯會話的情況下注入日誌記錄。
- 更好的大檔案支援 - 更快的語法高亮顯示,並且可以輕鬆增加非常大的檔案的記憶體。
- 終端中的多行連結 - 整合終端中的路徑和 URL 可以跨多行。
- Emmet 環繞預覽 - Emmet 環繞縮寫功能的即時預覽。
- Windows 上的改進更新 - 自動在後臺更新,減少停機時間。
- 預覽:組織 JS/TS 匯入 - 刪除未使用的匯入並對剩餘的匯入進行排序。
如果您想線上閱讀這些發行說明,請訪問 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 中的摺疊範圍預設基於語言的語法計算,不再依賴於格式正確的縮排。

還提供了對 TypeScript 和 JavaScript 的支援,可以透過設定 "typescript.experimental.syntaxFolding": true 啟用。
如果您希望切換回基於縮排的摺疊(適用於上述一種或所有語言),請使用
"[html]": {
"editor.foldingStrategy": "indentation"
},
提示:瞭解此功能如何用於摺疊 Markdown 檔案中的標題區域。
我們提出了一個新的擴充套件 API,以便其他語言也可以提供其語法感知摺疊提供程式。
跨檔案錯誤和引用導航
在此版本中,透過 F8(轉到下一問題)導航錯誤和警告時會考慮到所有報告的錯誤。它不會僅在一個檔案中迴圈,而是會將您帶到下一個有錯誤的檔案並返回。

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

編輯器中的提示
擴充套件 API 現在支援建立“提示”診斷。它們不是錯誤或警告,而是關於如何使某些內容變得更好的建議,例如透過執行特定重構。
我們使用省略號 ... 在相關單詞的開頭下方呈現提示診斷。

對於擴充套件作者來說,最佳實踐是始終在程式碼操作中包含提示,因為提示診斷有助於宣傳程式碼操作。但是,某些使用者可能不希望在編輯器中顯示提示,因此也應支援停用它們。
提示:在此版本中,我們為 JavaScript/TypeScript 重構添加了幾個提示。
錯誤和警告中的相關資訊
擴充套件 API 現在支援向診斷新增相關資訊,這會在顯示診斷的所有位置顯示:懸停、錯誤“預覽”視窗和問題面板。
在下面的示例中,您可以看到相關資訊指出了兩次賦值的變數首次使用位置

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

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

大檔案查詢和替換改進
我們在上一個版本中釋出了一個新的文字緩衝區實現(閱讀我們的部落格文章瞭解更多資訊),我們繼續對大檔案查詢和替換進行最佳化。
可配置的儲存時格式化超時
VS Code 可以在將檔案儲存到磁碟之前執行格式化程式,因此速度很重要,因為慢速擴充套件可能會減慢儲存速度。因此,VS Code 對儲存非常嚴格,並在 750ms 後取消儲存時格式化請求。對於某些擴充套件,尤其是在處理大檔案時,這不夠時間,因此我們添加了一個新設定 "editor.formatOnSaveTimeout" 來配置超時。如果語言擴充套件知道它需要更多時間進行格式化,它可以將超時修改為預設的特定語言設定。
為了監控儲存,狀態列上現在有一個進度指示器。

更多程式碼片段變數
有用於引用當前日期和時間的新程式碼片段變數。除了數字(例如 2018 年 3 月 28 日)之外,您現在可以使用“三月二十八日”之類的名稱。新變數是
${CURRENT_DAY_NAME}- 日期名稱(“Monday”)。${CURRENT_DAY_NAME_SHORT}- 日期短名稱(“Mon”)。${CURRENT_MONTH_NAME}- 月份全名稱(“July”)。${CURRENT_MONTH_NAME_SHORT}- 月份短名稱(“Jul”)。
Emmet
使用縮寫環繞預覽
使用Emmet:使用縮寫環繞或Emmet:使用縮寫環繞單行命令時,您現在可以看到環繞文字的預覽效果。

更快的縮寫展開
現在,在大型 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 副檔名的檔案。

樹:水平滾動支援
有一個新的全域性設定 workbench.tree.horizontalScrolling,它為工作臺中的幾個樹小部件啟用了水平滾動。使用它可以為寬樹元素(例如檔案資源管理器中的深層檔案系統層次結構)提供更好的可讀性。
整合終端
更好地支援多行連結
現在跨多行的路徑和 URL 將作為連結起作用。

此實現仍有一些問題,尤其是當您調整視窗大小時。當我們實現重排時,這些問題將得到修復。
命令跟蹤
終端現在具有“命令跟蹤”功能,它會嘗試猜測何時執行命令,並允許在它們之間輕鬆導航和選擇。
![]()
此功能在 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 時,完成訊息後,焦點現在將返回到終端。
除錯
日誌點
此里程碑包括我們對日誌點的首次工作。日誌點是斷點的一種變體,它不會“中斷”到偵錯程式中,而是將訊息記錄到控制檯。日誌點對於在無法停止的生產伺服器上除錯時注入日誌記錄特別有用。
日誌點由“菱形”圖標表示。日誌訊息是純文字,但可以包含在花括號('{}')內求值的表示式。

就像常規斷點一樣,日誌點可以啟用或停用,也可以由條件和/或命中計數控制。
日誌點目前受 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 程序。

要啟用此功能,請使用切換自動附加操作,或者如果 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 的幫助程式程序。

選擇器中列出的單個程序項除了程序 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 文件

摺疊標題會摺疊該標題下的所有內容和子標題。
TypeScript 2.8
VS Code 現在附帶 TypeScript 2.8。此更新帶來了對一些很棒的新語言功能的支援,以及許多重要的錯誤修復和工具改進。
JSDoc 中改進的快速建議
您知道 VS Code 為 JSDoc 型別提供 IntelliSense 嗎?此功能是在幾個版本前新增的,但您可能沒有意識到,因為 IntelliSense 只有在您手動呼叫時才會出現。在 VS Code 1.22 中,JSDoc 型別中的快速建議現在預設啟用。只需開始輸入即可啟動 IntelliSense

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

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



我們計劃繼續新增更多建議。如果您有任何希望看到的建議,請告訴我們。
建議程式碼操作在 JavaScript 和 TypeScript 中預設啟用。您可以透過設定停用它們:"typescript.suggestionActions.enabled": false 或 "javascript.suggestionActions.enabled": false
CSS 路徑完成
除了 HTML,路徑完成現在也可用於 CSS

擴充套件開發
將長時間執行的操作顯示為帶有取消支援的通知
我們添加了一個新 API,用於在通知中心顯示長時間執行的操作,並提供可選的取消支援。在此處顯示長時間執行的操作的好處是
- 多個操作可以同時報告進度。
- 您可以顯示操作進度。
- 使用者可以選擇取消操作。

使用新進度位置 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 對自定義檢視執行操作。可以透過提供 viewId 和 TreeDataProvider 使用新的 API createTreeView 訪問它。
const customView = vscode.window.createTreeView<string>('customView', {
treeDataProvider: new CustomViewDataProvider<string>()
});
注意:現有的 registerTreeDataProvider API 仍受支援以向檢視提供資料。您可以使用 registerTreeDataProvider 或 createTreeView 來提供 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 返回選定項列表,允許使用者選擇任意數量的項

請參閱 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 上預覽提交按鈕將使用該倉庫。

預覽功能
預覽功能尚未準備好釋出,但已足夠實用。我們歡迎您在這些功能開發期間提供早期反饋。
組織 JavaScript 和 TypeScript 匯入
新的組織匯入命令 () 刪除未使用的匯入並對剩餘的匯入進行排序

該命令適用於 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 的貢獻
- Julian Tu (@AiryShift):修復 #46075 PR #46227
- @amalik12:為連結跟隨工具提示添加了 Mac 特定文字 PR #44885
- 朝歌 (@amtlib-dot-dll)
- Andreas Offenhaeuser (@anoff):Markdown 安全策略以允許本地 HTTP 內容 PR #46473
- @Arnie97:更新 ini 語言的副檔名 PR #45729
- Aliaksandr Ushakou (@aushakou):修復 #43465 PR #44006
- Robin Bartholdson (@buyology):使 formatOnSave 的超時可配置 PR #43702
- Juan Camilo Giraldo Chaverra (@camilogiraldo):帶有依賴項的擴充套件的更好解除安裝對話方塊。 PR #45929
- Cherry Wang (@chryw)
- Christian Oliff (@coliff):HTTPS 連結 PR #46849
- Mikhail Bodrov (@Connormiha):簡化檢查 lang.mimetypes PR #42932
- Daniel Frankcom (@danielfrankcom)
- Darius Keeley (@Dari-K):在 sizing-shrink 和 close-button-left/off 情況下隱藏選項卡淡出,直到文字溢位 PR #45815
- Dominik Ivosevic (@DominikDitoIvosevic):新增對帶有空格的路徑連結的支援 PR #43733
- Fathy Boundjadj (@fathyb):向 MonacoEnvironment 新增 getWorker PR #46032
- Mihai Balaceanu (@gizm0bill):透過使用 box-shadow CSS 渲染參考線修復 #46027 PR #46029
- Jackson Kearl (@JacksonKearl)
- Jean Pierre (@jeanp413):修復 #46106 PR #46309
- JYX (@jjyyxx):避免訪問未定義/null 值的 vsWorker PR #46012
- Ievgen Andrushchak (@killerDJO):本地 Typescript 語言服務外掛的搜尋 PR #45858
- Dominic Valenciana (@Kiricon):新增焦點到快速修復小部件單擊 PR #44073
- Kumar Harsh (@kumarharsh):fix(feedback): 在反饋表單中使用 Button 小部件。關閉 #46490 PR #46503
- Matheus Salmi (@mathsalmi):修復 php 語法更新指令碼 PR #44171
- Mika Andrianarijaona (@mikaoelitiana):將 cursorColumnSelectUp 的預設鍵繫結更改為 ctrl+shift+… PR #41471
- Mark Marron (@mrkmarron):更改為防止在啟動時間旅行時 fakeFireContinued PR #46441
- Bruno Ribeiro (@nikonso):將部分暫存操作新增到差異編輯器上下文選單 PR #43941
- Ori Ashual (@oriash93)
- Pradeep Murugesan (@pradeepmurugesan):添加了建議中第一個和最後一個選擇的鍵繫結。 PR #45881
- Roman Salvador (@rsalvador)
- Shobhit Chittora (@shobhitchittora)
- Tobias Kahlert (@SrTobi):水平模式下的居中佈局 PR #45671
- Steve Desmond (@stevedesmond-ca):在 env 指令碼中正確設定 electron 版本 PR #45696
- Alexander (@usernamehw)
- Waldir Pimenta (@waldyrious):更改狀態列中縮排操作的標籤 PR #37515
- Zim Kalinowski (@zikalino):確保 yml 擴充套件是 yaml 檔案的預設擴充套件 PR #45756
對 vscode-extension-vscode 的貢獻
對 vscode-nls 的貢獻
- Ruben Bridgewater (@BridgeAR):使用同步 fs.mkdir PR #17
對 language-server-protocol 的貢獻
- Igor Matuszewski (@Xanewok):更改訊息引數型別以匹配 JSON-RPC 規範 PR #373
對 vscode-css-languageservice 的貢獻
- Avi Vahl (@AviVahl):修復 esm 模式下的函式呼叫 PR #74
對 vscode-html-languageservice 的貢獻
- Sibiraj (@Sibiraj-S):新增 AngularJS
ng-strict-di標籤 PR #25
對 node-jsonc-parser 的貢獻
- @sqs:允許陣列中使用尾隨逗號 PR #6
- Huachao Mao (@sqs):
對 vscode-generator-code 的貢獻
- Alessandro Fragnani (@alefragnani):新增 Keymap 擴充套件模板 PR #110
- Nikita Shiryakov (@nikselite):刪除不必要的空格 PR #106
對 vscode-languageserver-node 的貢獻
- Matt Acosta (@mattacosta):拼寫錯誤修復 PR #327
對 vscode-loader 的貢獻
- Geoffrey Gilmore (@ggilmore):支援在執行時載入作用域模組 PR #10
對 vscode-azurecli 的貢獻
- Derek Bekoe (@derekbekoe):修復 Homebrew 上的 PYTHONPATH PR #31
對 vscode-azure-account 的貢獻
- Sheng Chen (@jdneo):在 promise race 中新增超時 PR #46
對 vscode-chrome-debug 的貢獻
- AJ Richardson (@aj-r):修復 Windows 中 chrome 會話恢復提示 PR #606
- Chance An (@changsi-an)
- @digeff
- Chris Wells (@msft-cwells)
- Raghav Katyal (@rakatyal)
對 vscode-chrome-debug-core 的貢獻
- Chance An (@changsi-an)
- @digeff
- Raghav Katyal (@rakatyal):清除上下文以避免傳送多個 remove eve… PR #318
對 vscode-node-debug2 的貢獻
- @digeff
- Chris Wells (@msft-cwells)
- Raghav Katyal (@rakatyal):遵守從 Pinezorro 傳遞的區域設定 PR #180
對 vscode-recipes 的貢獻
- @bladedeyna:更新 README.md 以匹配當前的 launch.json PR #90
- @dvlsg:docs: debugging 部分中的拼寫錯誤 PR #75
- Liran Tal (@lirantal):docs(README):修復拼寫錯誤 PR #88
- Marek Kaczkowski (@marekkaczkowski):debugging-jest-tests Windows 上的“Jest Current File” PR #89
對 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。