2019 年 4 月 (版本 1.34)
下載:Windows:x64 | Mac:Intel | Linux 64 位:deb rpm tarball snap | 32 位:deb rpm tarball
歡迎使用 Visual Studio Code 2019 年 4 月版本。在 4 月,我們忙於釋出 遠端開發 擴充套件的預覽版。這些擴充套件允許您透過 SSH 在遠端機器或虛擬機器上、在適用於 Linux 的 Windows 子系統 (WSL) 中或在 Docker 容器內使用 VS Code。您可以閱讀使用 Visual Studio Code 進行遠端開發部落格文章以瞭解更多資訊。
此版本中仍有幾項更新,我們希望您也會喜歡,以及許多社群貢獻。
如果您想線上閱讀這些發行說明,請訪問 code.visualstudio.com 上的更新頁面。
編輯器
穩定的 CodeLens
VS Code 現在會樂觀地快取 CodeLens 位置,並在切換編輯器後立即恢復它們。這修復了切換編輯器時 CodeLens 行會略微偏移的問題。
語言
帶供應商字首的 CSS 屬性值排名較低
以破折號 '-'
開頭的 CSS 屬性值(例如 -moz-grid
或 -ms-grid
)現在在自動完成中位於 grid
之後。
除錯
debug.showSubSessionsInToolBar
我們引入了設定 debug.showSubSessionsInToolBar
,它控制除錯子會話是否顯示在除錯工具欄中。當此設定為 false 時,子會話上的停止命令也會停止父會話。此設定的預設值為 false。
任務
終止所有任務
如果執行多個任務,任務:終止任務 命令現在有一個新選項可以終止所有任務。如果這是您經常執行的操作,您可以為帶有 terminateAll
引數的命令建立鍵盤快捷方式。
{
"key": "ctrl+k t",
"command": "workbench.action.tasks.terminate",
"args": "terminateAll"
}
自動顯示“問題”面板
新的 revealProblems
任務屬性允許您自動顯示“問題”面板。屬性值為 always
、never
和 onProblem
。
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "always",
"revealProblems": "onProblem"
}
}
]
}
對擴充套件的貢獻
預覽:遠端開發
❗ 注意: 遠端開發擴充套件 需要 Visual Studio Code Insiders。
Visual Studio Code 遠端開發 允許您使用容器、遠端機器或 適用於 Linux 的 Windows 子系統 (WSL) 作為功能齊全的開發環境。
遠端開發擴充套件包 中的擴充套件在遠端工作區的上下文中執行,而 VS Code 感覺就像您在本地執行一樣。
Vetur
Vetur 擴充套件現在為 Vue 模板插值區域內的 JavaScript 表示式提供語義診斷、懸停資訊、跳轉到定義和查詢引用
您可以在 Vetur 文件 中閱讀有關此功能的更多資訊。
其他改進包括記憶體使用量減少和匯入路徑完成。您可以在 Vetur 變更日誌 中瞭解更多資訊。
擴充套件創作
多擴充套件除錯
在此里程碑中,我們增加了同時除錯多個擴充套件的支援。如果您正在開發一組緊密耦合或相互依賴的擴充套件,這將非常有用。
以前此功能僅透過 VS Code 的命令列介面公開,現在 --extensionDevelopmentPath
引數可以指定多次。通常 --extensionDevelopmentPath
用於擴充套件的啟動配置。當開發多個擴充套件時,我們建議將各個擴充套件專案組合到一個多資料夾工作區中,並建立一個新的啟動配置(儲存在工作區 .code-workspace
檔案中),該配置為各個擴充套件使用多個 --extensionDevelopmentPath
引數。
這是一個工作區 .code-workspace
檔案的示例,其中包含兩個擴充套件 hello1
和 hello2
,以及這兩個擴充套件的一個啟動配置
{
"folders": [{ "path": "hello1" }, { "path": "hello2" }],
"launch": {
"configurations": [
{
"type": "extensionHost",
"request": "launch",
"name": "Launch Two Extensions",
"args": [
"--extensionDevelopmentPath=${workspaceFolder:hello1}",
"--extensionDevelopmentPath=${workspaceFolder:hello2}"
],
"outFiles": [
"${workspaceFolder:hello1}/out/**/*.js",
"${workspaceFolder:hello2}/out/**/*.js"
]
}
]
}
}
請注意,在此版本中,無法透過組合各個擴充套件專案的 preLaunchTask
來建立構建兩個擴充套件的 preLaunchTask
。
通知中的命令連結
以前總是可以透過語法 [連結名稱](http://連結)
在通知訊息中包含連結,但這僅適用於在瀏覽器中開啟的連結。現在您還可以透過語法 [連結名稱](command:<命令 ID>)
從連結呼叫命令。當用戶單擊連結時,將觸發具有提供的識別符號的命令。
通知中的連結允許標題
您現在可以為通知中的連結新增標題,當用戶將滑鼠懸停在連結上時會顯示該標題。語法是 [連結名稱](連結 "<標題>")
。
建議的擴充套件 API
每個里程碑都附帶新的提議 API,擴充套件作者可以試用它們。一如既往,我們渴望您的反饋。以下是試用提議 API 所需的操作:
- 您必須使用 Insiders 版本,因為提議的 API 經常更改。
- 您的擴充套件的
package.json
檔案中必須包含以下行:"enableProposedApi": true
。 - 將最新版本的 vscode.proposed.d.ts 檔案複製到您的專案中。
請注意,您不能釋出使用提議 API 的擴充套件。我們很可能會在下一個版本中進行破壞性更改,我們絕不希望破壞現有擴充套件。
vscode.workspace.workspaceFile
有一個新的工作區屬性,返回工作區檔案的位置。例如:file:///Users/name/Development/myProject.code-workspace
或 untitled:1555503116870
用於未命名且尚未儲存的工作區。
根據開啟的工作區,該值將是:
- 當沒有開啟工作區或單個資料夾時為
undefined
。 - 工作區檔案的路徑為
Uri
。
如果工作區未命名,返回的 URI 將使用 untitled:
方案。
工作區檔案位置的一個用途是呼叫 vscode.openFolder
命令,以便在工作區關閉後再次開啟它
vscode.commands.executeCommand('vscode.openFolder', uriOfWorkspace);
注意: 不建議使用 workspace.workspaceFile
位置直接將配置資料寫入檔案。您可以使用 workspace.getConfiguration().update()
,這在開啟單個資料夾以及未命名或已儲存的工作區時都有效。
特定於機器的設定
如果您有一些設定允許使用者自定義可執行路徑,並且這些路徑需要限定到它們正在執行的機器,您現在可以將此類設定分類為 machine
範圍。擴充套件作者在貢獻 configuration
擴充套件點時設定 scope
屬性。特定於機器的設定只能為使用者設定配置。
"configuration": {
"title": "Git",
"properties": {
"git.path": {
"type": [
"string",
"null"
],
"markdownDescription": "Path and filename of the git executable.",
"default": null,
"scope": "machine"
}
}
}
工程
本地檔案檔案系統提供程式重寫
擴充套件能夠為其自定義資源提供自己的檔案系統實現(在此處閱讀更多)。然而,VS Code 自己的本地檔案實現沒有使用相同的擴充套件 API。這導致在處理本地檔案資源時與來自擴充套件的資源相比存在細微差異。在過去的兩個里程碑中,我們 重寫了我們的本地檔案系統提供程式,以使用擴充套件 API 來保持一致性。
新文件
Python Azure Functions
有一個新的 將 Python 部署到 Azure Functions 教程,描述瞭如何建立和部署 Python 無伺服器 Azure Functions。
雜項
語言伺服器協議
語言伺服器協議 建議支援以下新功能
- 選擇範圍:計算一系列位置的選擇範圍。從客戶端傳送到伺服器。
- 呼叫層次結構:計算給定符號的呼叫層次結構。從客戶端傳送到伺服器。
- 進度:從伺服器啟動進度報告。從伺服器傳送到客戶端。
新功能將在 vscode-languageclient
和 vscode-languageserver
npm 模組的下一版本中提供。
值得注意的修復
- 48259:資源管理器尊重 FileSystemProvider 的垃圾桶功能
- 68276:對於長執行緒名稱,“呼叫堆疊”中的“暫停於斷點”UI 不可見
- 69603:Mac OS 中終端視窗崩潰
- 72110:除錯控制檯渲染不必要的換行符
- 71737:除錯視窗中的滾動行為異常
- 71588:在資源管理器中顯示檔案時出錯
- 70492:“執行擴充套件”上的“報告問題”按鈕導致數十個重複問題
感謝
最後但同樣重要的是,衷心感謝!以下幫助使 VS Code 變得更好的各位:
我們問題跟蹤的貢獻。如果您想幫助我們管理傳入的問題,請參閱我們的社群問題跟蹤頁面。
- John Murray (@gjsjohnmurray)
- Prabhanjan S Koushik (@skprabhanjan)
- Alexander (@usernamehw)
- Muhammed Emin TİFTİKÇİ (@jaqra)
- Carl Morris (@msftrncs)
對 vscode
的貢獻
- @alpalla:修復 #27041 PR #72015
- @BaluErtl:“大綱”抽屜預設訊息措辭不正確 PR #73214
- @cmchumak:改進了沒有工作區時執行任務的訊息提示 PR #71476
- Connor Shea (@connorshea):在格式化程式下拉選單中將 extensionId 顯示為描述 PR #71910
- Alexandr Fadeev (@fadeevab):關於 Makefile 中“@,-,+”著色錯誤修復的 Makefile 測試用例 PR #72265
- Nikita Shilnikov (@flash-gordon):修復本地化金鑰中的拼寫錯誤 PR #72718
- Hung-Wei Hung (@hwhung0111):修復 code-cli.bat 中的拼寫錯誤 PR #73091
- Ian Sanders (@iansan5653):在除錯控制檯中新增對 8 位和 24 位 ANSI 轉義顏色程式碼的支援 PR #70935
- Muhammed Emin TİFTİKÇİ (@jaqra):添加了名為“轉換為標題大小寫”的標題大小寫轉換命令。 PR #70990
- Jimi (Dimitris) Charalampidis (@JimiC):[主題] 修復重新載入時資源管理器箭頭通知 PR #71855
- Jon Bockhorst (@jmbockhorst)
- Johannes Wikman (@jwikman):FindInFiles 轉換為命令並接受引數 PR #71626
- Jiaxun Wei (@LeuisKen):修復 #72187 PR #72194
- Luís Ferreira (@ljmf00):theme-monokai:修復製表符縮排 PR #72269
- paul cheung (@paul-cheung):修復拼寫錯誤 PR #72334
- Evan Bovie (@phaseOne):將
vscode:
URI 字首新增到 links.ts 中的已知方案 PR #71416 - Raman (@ramank775):修復“評論框問題 #71703” PR #71880
- Samuel Bronson (@SamB):json-language-features/CONTRIBUTING.md 修復 PR #73273
- @sebastianwitthus:44146 自動顯示問題面板 PR #71387
- Simon Siefke (@SimonSiefke):修復拼寫錯誤 PR #71564
- Prabhanjan S Koushik (@skprabhanjan):修復-71570 恢復已刪除檔案的 markdown 預覽時出錯 PR #71762
- Tony Xia (@tony-xia)
- Alexander (@usernamehw):新增 CLI 標誌以停用 Web 檢視中的平滑滾動 PR #65422
- Vitaliy Mazurenko (@vitaliymaz)
- Waleed Ashraf (@WaleedAshraf):忽略 LINE_COLON_PATTERN 中的尾隨空格 PR #71985
- William Whittle (@whittlec):將“qsh”新增為有效的 shellscript 首行 PR #73231
- Keyi Xie (@xiekeyi98):修復 build/ 中的拼寫錯誤 PR #71977
- XTY (@xtydev):解決 WSL 啟動指令碼中的迴歸問題 PR #72779
對 vscode-css-languageservice
的貢獻
- Tony Xia (@tony-xia):修復了一個小拼寫錯誤 PR #151
對 vscode-html-languageservice
的貢獻
- Liam Newman (@bitwiseman):更新 js-beautify 到 1.9.1 PR #58
- Christian Oliff (@coliff):修復屬性拼寫錯誤 PR #60
對 node-jsonc-parser
的貢獻
- Tony Xia (@tony-xia):JavaScipt -> JavaScript PR #18
對 language-server-protocol
的貢獻
- Danny Tuppeny (@DanTup):新增客戶端未能應用編輯的可選原因 PR #637
- Ben Mewburn (@bmewburn):更正 lsif textDocument/definition 示例中的 id PR #725
對 vscode-languageserver-node
的貢獻
- Igor Matuszewski (@Xanewok):新增建議的 window/progress 擴充套件 PR #261
- Aleksey Kladov (@matklad):調整 selectionRange API PR #474
- Ben Mewburn (@bmewburn):onImplementation 和 onTypeDefinition 可以返回 DefinitionLink[] PR #479
- Remy Suen (@rcjsuen):修復一個小拼寫錯誤 PR #482
對 vscode-eslint
的貢獻
- Mike Martin (@mcmar):澄清
changeProcessCWD
文件 PR #657 - Ilias Tsangaris (@ilias-t):PR #661
- Charles Stover (@CharlesStover):eslint.codeAction.disableRuleComment 的自動完成應插入 separateLine 而不是 newLine PR #674
對 vscode-lsif-extension
的貢獻
- Chris Wendt (@chrismwendt):修復頂級檔案的檔案系統查詢 PR #9
對 vscode-textmate
的貢獻
對 vscode-recipes
的貢獻
- AJ Alves (@zerokol):除錯 rspec 檔案中的一個特定情況 PR #207
對 vscode-vsce
的貢獻
對 localization
的貢獻
有超過 800 名 Cloud + AI Localization 社群成員使用 Microsoft Localization Community Platform (MLCP),其中約有 100 名活躍貢獻者為 Visual Studio Code 做出貢獻。
我們感謝您的貢獻,無論是提供新翻譯、對翻譯投票,還是提出流程改進建議。
這是貢獻者的快照。有關專案詳細資訊,包括貢獻者姓名列表,請訪問專案網站:https://aka.ms/vscodeloc。
- 波斯尼亞語: Ismar Bašanović。
- 捷克語: Daniel Padrta、David Jareš、Jan Hajek、Jiří Hofman。
- 丹麥語: Allan Kimmer Jensen、Thomas Larsen。
- 荷蘭語: Maxim Van Damme、Sven Klaasen。
- 英語(英國): Martin Littlecott、Tobias Collier、William Wood、Giorgi Jambazishvili。
- 法語: Antoine Griffard、Thierry DEMAN-BARCELÒ、Mohamed Sahbi、Steven Dugois、Michael VAUDIN。
- 德語: Christof Opresnik。
- 印地語: Abhirav Kushwaha、Pramit Das。
- 簡體中文: paul cheung、斌 項、Fan Su、Justin Liu、Horie Yuan、王文傑、趙暢暢、anson zhang、Wang Debang、Pluwen、Yiting Zhu、Joel Yang、Michael Zhang、擎 鍾、濤 徐、少民 談、偉 全、panda small、Array Zhang、LI ZHAO。
- 繁體中文: 謝政廷、煾 雪。
- 匈牙利語: Levente Hallai Seiler。
- 印度尼西亞語: Laurensius Dede Suhardiman。
- 義大利語: Alessandro Alpi、Luigi Bruno、Emanuele Meazzo、Marco Dal Pino。
- 日語: EbXpJ6bp -、nh、Kyohei Uchida、Yoshihisa Ozaki、Seiji Momoto、Hasefumi、迪人 熊本、Koichi Makino、Kyohei Moriyama、美穂 山本、Aya Tokura。
- 韓語: 형섭 이、Youngjae Kim、siin lee、Keunyop Lee。
- 拉脫維亞語: Kaspars Bergs。
- 立陶宛語: Augustas Grikšas。
- 波蘭語: Wojciech Maj、Marek Biedrzycki、Igor 05、Marcin Weksznejder、Szymon Seliga、Paweł Modrzejewski、Michał Stojke、Artur Zdanowski。
- 葡萄牙語(巴西): Alessandro Trovato、Judson Santiago、Roberto Fonseca、Marcelo Fernandes、Lucas Miranda、Ray Carneiro、Loiane Groner、Daniel Luna、Lucas Santos、Saymon Damásio。
- 葡萄牙語(葡萄牙): Ana Rebelo、Pedro Teixeira、João Carvalho、Tiago Antunes。
- 羅馬尼亞語: Alexandru Staicu。
- 俄語: Andrey Veselov、Дмитрий Кирьянов、nata kazakova、Валерий Батурин。
- 西班牙語: Andy Gonzalez、Carlos Mendible、José María Aguilar、Alvaro Enrique Ruano。
- 泰米爾語: Boopesh Kumar、Karunakaran Samayan、Merbin J Anselm。
- 土耳其語: mehmetcan gun、Sinan Açar、S. Ferit Arslan。
- 烏克蘭語: Sviatoslav Ivaskiv、George Molchanyuk。
- 越南語: Khôi Phạm、Spepirus Shouru、Việt Anh Nguyễn。