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。此版本包含許多重大更新,我們希望您會喜歡,以下是一些重點摘要
- 語法感知程式碼摺疊 - 針對 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 路徑完成。
- 擴充功能撰寫 - 長時間執行的可取消作業、將相關資訊新增至診斷。
Insiders:想盡快看到新功能嗎?您可以下載 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 現在支援將相關資訊新增至診斷,這會顯示在顯示診斷的所有位置:在 hover、錯誤預覽視窗和 [問題] 面板中。
在以下範例中,您可以看到相關資訊指出首次使用兩次指派變數的位置
更輕鬆開啟大型檔案的方式
先前,在編輯器中開啟大型檔案 (約 2GB 以上) 會提示您從命令列使用旗標 --max-memory=NEWSIZE
重新啟動。為了減少這種摩擦,當您嘗試開啟的檔案需要的記憶體超出應用程式目前允許使用的記憶體時,會出現新的通知,讓您快速重新啟動,並讓應用程式使用更多記憶體。重新啟動後可用的最大記憶體可透過新的設定 files.maxMemoryForLargeFilesMB
進行設定,預設值為 4096
(4GB)。
語法醒目提示最佳化
在此版本中,我們會在檔案開啟後立即針對 viewport 執行語法醒目提示,根據 viewport 中內容的範圍。這會產生更快的色彩化效果,如下所示,當使用者使用 [移至定義] 命令開啟新檔案時。
左:VS Code 1.21 右:VS Code 1.22
大型檔案的尋找和取代改進
我們在上一個版本中推出了新的文字緩衝區實作 (如需詳細資訊,請閱讀我們的部落格文章),並持續最佳化大型檔案的尋找和取代功能。
可設定的儲存時格式化逾時
VS Code 可以在將檔案儲存到磁碟之前執行格式器,因此速度很重要,因為速度慢的擴充功能可能會減慢儲存速度。基於這個原因,VS Code 對於儲存非常嚴格,並在 750 毫秒後取消儲存時格式化要求。對於某些擴充功能,尤其是在處理大型檔案時,這段時間不夠長,因此我們新增了一個新的設定 "editor.formatOnSaveTimeout"
來設定逾時時間。如果語言擴充功能知道它需要更多時間進行格式化,它可以將逾時時間修改為預設的語言特定設定。
為了監控儲存,狀態列上現在有進度指示器。
更多程式碼片段變數
有新的程式碼片段變數可用於參考目前的日期和時間。除了數字 (例如 2018/3/28) 之外,您現在可以使用名稱,例如「3 月 28 日」。新的變數為
${CURRENT_DAY_NAME}
- 星期幾的名稱 (「星期一」)。${CURRENT_DAY_NAME_SHORT}
- 星期幾的簡短名稱 (「週一」)。${CURRENT_MONTH_NAME}
- 月份的完整名稱 (「七月」)。${CURRENT_MONTH_NAME_SHORT}
- 月份的簡短名稱 (「七月」)。
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
,可為工作台中多個樹狀結構 widget 啟用水平捲動。使用它來為寬樹狀結構元素提供更好的可讀性,例如檔案總管中的深層檔案系統階層。
整合式終端機
更佳的多行連結支援
跨越多行的路徑和 URL 現在將可作為連結運作。
實作中仍有一些問題,尤其是在您調整視窗大小時。當我們實作 reflow 時,這些問題將會修正。
命令追蹤
終端機現在具有「命令追蹤」功能,此功能會嘗試猜測命令何時執行,並允許在命令之間輕鬆導覽和選取。
此功能在 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 是從整合式終端機觸發時,在完成訊息後,焦點現在將會返回終端機。
偵錯
記錄點
此里程碑包含我們針對 記錄點 的第一個工作。記錄點是中斷點的變體,它不會「中斷」到偵錯工具中,而是將訊息記錄到主控台。記錄點對於在偵錯無法停止的生產伺服器時注入記錄特別有用。
記錄點以「菱形」圖示表示。記錄訊息是純文字,但可以包含要在大括號 ('{}') 內評估的運算式。
就像一般中斷點一樣,可以啟用或停用記錄點,也可以透過條件和/或命中計數來控制。
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 處理程序。
除了 Node.js 處理程序之外,選取器現在還會顯示所有以各種形式的 --debug
或 --inspect
引數啟動的程式。這使得可以附加至 Electron 或 VS Code 的協助程式。
選取器中列出的個別處理程序項目會顯示偵錯連接埠和偵測到的通訊協定,以及處理程序識別碼。
工作
改良的引數引號
工作已更新,讓使用者可以更佳地控制在 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 建議程式碼動作的可探索性。這些是建議的變更,可協助您快速改進或清理原始程式碼。它們是使用燈泡 widget 顯示的,但與快速修正不同,它們不會解決原始程式碼中的特定錯誤或警告。範例建議程式碼動作包括:將 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
const customView = vscode.window.createTreeView<string>('customView', {
treeDataProvider: new CustomViewDataProvider<string>()
});
您現在可以使用新的 TreeView
API 在您的自訂檢視上執行作業。這可以使用新的 API createTreeView
透過提供 viewId
和 TreeDataProvider
來存取。
注意:現有的 registerTreeDataProvider
API 仍然支援將資料貢獻給檢視。您可以使用 registerTreeDataProvider
或 createTreeView
來貢獻 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
我們已在 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 上預覽] 提交按鈕將會使用該存放庫。
預覽功能
預覽功能尚未準備好發行,但功能已足夠使用。我們歡迎您在它們仍在開發中時提供早期意見反應。
組織 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 相比,是一大躍進)。我們計劃在四月初將更新推送給我們的 Insiders 使用者,以收集更多意見回饋。如果您有興趣協助我們,請務必安裝 VS Code Insiders 版本。
重大變更
- 13905:Windows:在工作列圖示上按一下滑鼠中鍵不會開啟新視窗
- 35675:字型在 Linux 上渲染時看起來很難看
- 36307:實驗性檔案監看器 - 在「循環」符號連結上 CPU 使用率偏高
- 42401:更智慧的輸出通道分組
- 42402:新增從通道內顯示記錄的選項
- 43813:擴充功能在更新後不完整
- 44411:針對無法解析的變數從啟動中退出
- 44554:允許拖放多個根資料夾
- 45872:在安裝本地化套件後提示使用者變更 UI 語言
- 45972:Explorer:減少 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):將 getWorker 新增至 MonacoEnvironment 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):在意見回饋表單中使用按鈕小工具。關閉 #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):新增按鍵對應擴充功能範本 PR #110
- Nikita Shiryakov (@nikselite):移除不必要的空格 PR #106
對 vscode-languageserver-node
的貢獻
對 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):清除內容以避免傳送多個移除事件… 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:文件:偵錯章節中的拼字 PR #75
- Liran Tal (@lirantal):文件 (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。
- 日文: 田島俊哉、貫山裕一、森博之、竹林隆弘、百本清司、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。