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 使用 VS Code,在适用于 Linux 的 Windows 子系统 (WSL) 中,或在 Docker 容器内部。你可以阅读使用 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 函数
有一个新的 将 Python 部署到 Azure 函数 教程,描述了如何创建和部署 Python 无服务器 Azure 函数。
杂项
语言服务器协议
语言服务器协议 已提议支持以下新功能:
- 选择范围:计算位置数组的选择范围。从客户端发送到服务器。
- 调用层次结构:计算给定符号的调用层次结构。从客户端发送到服务器。
- 进度:从服务器启动进度报告。从服务器发送到客户端。
新功能将在 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):添加了名为“转换为标题大小写”的标题大小写转换命令。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):fix-71570 恢复已删除文件的 Markdown 预览时出错 PR #71762
- Tony Xia (@tony-xia)
- Alexander (@usernamehw):添加 CLI 标志以在 webview 中禁用平滑滚动 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 名 云 + AI 本地化 社区成员使用 Microsoft 本地化社区平台 (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。