2019年4月(版本1.34)
下载:Windows: x64 | Mac: Intel | Linux 64位: deb rpm tarball snap | 32位: deb rpm tarball
欢迎来到2019年4月发布的Visual Studio Code。在4月期间,我们忙于远程开发扩展的预览版发布。这些扩展允许您在远程机器或虚拟机上通过SSH、在Windows子系统Linux(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 远程开发 允许您使用容器、远程机器或 Windows Subsystem for Linux (WSL) 作为全功能的开发环境。
Remote Development 扩展包中的扩展在远程工作区的上下文中运行,而 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
。
通知中的命令链接
以前可以通过语法[link name](http://link)
在通知消息中包含链接,但这仅适用于在浏览器中打开的链接。现在,您还可以使用语法[link name](command:
从链接调用命令。当用户点击链接时,将触发具有提供的标识符的命令。
通知中的链接允许使用标题
您现在可以在通知中的链接上添加标题,当用户悬停在链接上时将显示该标题。语法是 [link name](link "
。
提议的扩展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 函数
有一个新的将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 测试用例 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): 添加了名为'Transform to Title Case'的标题大小写转换命令。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): 在links.ts中的knownSchemes添加
vscode:
URI前缀 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标志以能够在webviews中禁用平滑滚动 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): 添加提议的窗口/进度扩展 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名云+AI本地化社区成员使用微软本地化社区平台(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.
- Chinese Simplified: 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.
- Chinese Traditional: 謝政廷, 煾 雪.
- 匈牙利语: Levente Hallai Seiler.
- 印尼语: Laurensius Dede Suhardiman.
- 意大利语: Alessandro Alpi, Luigi Bruno, Emanuele Meazzo, Marco Dal Pino.
- Japanese: 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.