2020年7月(1.48版)
更新1.48.1。该更新解决了这些问题。
更新1.48.2:该更新解决了这些问题。
下载。Windows。用户 系统 ARM| Mac:64位| Linux:deb rpm tarball snap
欢迎来到Visual Studio Code的2020年7月版。在这个版本中有许多更新,我们希望你会喜欢,其中一些关键的亮点包括。
- 设置同步到稳定版- 设置同步现在可以在稳定版中进行预览。
- 更新了Extensions视图菜单- 简化了菜单,增加了过滤选项。
- 新的Git视图子菜单- 重构了源控制视图中Git的溢出菜单。
- 更新的浏览器内调试- 在浏览器中调试,无需编写启动配置。
- 发布公共仓库- 选择是否发布到公共或私人GitHub仓库。
- 笔记本用户体验更新- 新的单元格菜单,增强的拖放功能。
- 新的远程容器主题- 了解如何附加到一个容器和创建一个新的开发容器。
- Java轻量级模式- 更快地开始处理你的Java源代码文件。
如果你想在线阅读这些发布说明,请到code.visualstudio.com上的更新。
8月17日星期一,太平洋时间上午9点(伦敦时间下午5点),加入我们 VS Code团队的现场直播,看看这个版本的新内容的演示,并现场向我们提问。
**内部人员。**想尽快试用新功能吗?你可以下载每晚的Insiders版本,一旦有最新的更新,就可以尝试。如需了解Visual Studio Code的最新新闻、更新和内容,请在Twitter上关注我们@code!
可访问性
在这个里程碑中,我们再次收到了来自社区的有益反馈,这有助于我们识别和解决可访问性问题。
工作台
搜索编辑器
我们增加了一个 "打开搜索编辑器"的命令,以打开一个现有的搜索编辑器(如果存在的话),或者创建一个新的。原有的 "打开新的搜索编辑器"命令已被重新命名为 "新的搜索编辑器",并将始终创建一个新的搜索编辑器。
搜索编辑器现在也支持自定义search.sortOrder 配置,如按文件类型、修改日期或结果计数排序。
扩展。溢出菜单清理
Extensions视图的过滤动作现在显示在一个单独的过滤动作(漏斗按钮)下。
主题。GitHub之光
扩展程序视图和更多操作(...)菜单已被重构,以便更好地组织扩展程序查询(如已安装或推荐)和其他操作,如检查扩展程序更新和启用所有扩展。
主题。GitHub Light
源码控制
始终显示存储库
有一个新的设置,scm.alwaysShowRepositories ,使源控制视图总是显示仓库行,即使只有一个仓库打开。

更好的键盘导航
当你浏览源码控制视图时,在一个改动上按下空格,现在会以预览编辑器的形式打开它,并将焦点保持在源码控制视图上,以方便键盘导航。
Git。溢出菜单的清理
感谢新的子菜单提议的API,Git视图和更多操作(...)菜单已经被重构,以更好地组织几个命令。
GitHub。发布到公共仓库
当发布一个仓库到GitHub时,你现在可以选择将仓库公开,而不是之前默认的私有仓库。
调试
用户体验的改进
-
debug.openDebug设置的默认值已被改为openOnFirstSessionStart。因此,调试视图只有在第一次调试会话开始时才会自动打开。 -
我们更新了状态栏中的调试图标,使其与我们在活动栏中使用的图标更加一致。这个新的图标应该更清楚地表明,当程序以这种方式启动时,断点将被尊重。
调试。打开链接命令
一个新的Debug:打开链接"命令被添加到快速调试任何URL。以前,要调试一个浏览器,你必须安装Debugger for Chrome扩展,并编写一个launch.json 配置文件来调试一个页面。这个命令允许你调试任何URL,而不需要额外的启动配置。

主题。大地之歌
如果你在你的活动编辑器中选择了一个URL,它将自动打开。否则,VS Code会提示你输入一个URL,预先填入你剪贴板中的URL,如果有的话。
你可以通过debug.javascript.debugByLinkOptions 设置调整该命令中使用的调试配置。
JavaScript 调试器的改进
VS Code的上一个版本包括我们新的JavaScript调试器。我们要感谢社区对它的反馈,这个版本包括了几十项由此产生的修复和改进。如果你在调试中遇到任何问题,如果你还没有,请确保提交一个问题。
浏览器支持
文本文件编码支持
VS Code桌面版的所有文本文件编码现在也支持在浏览器中运行。

因此,设置files.encoding 和files.autoGuessEncoding ,现在可以为网络和工作进行配置,与桌面版相同。
预览功能
预览功能还没有准备好发布,但功能已经足够使用。在开发过程中,我们欢迎你的早期反馈。
设置同步
设置同步现在可以在稳定版🎉中进行预览。请参考用户指南,了解更多信息和常见问题。
这个功能现在被称为 "设置同步",它的所有引用和设置都已被调整为与新名称一致。

主题。GitHub Light
手动合并
在这个里程碑中,我们通过引入手动合并功能,使你在之前做过同步的情况下打开设置同步的流程更加顺畅。

设置同步内部人员服务
我们为VS Code Insiders增加了一个新的Settings Sync Insiders服务,与稳定版分开。你可以随时使用 "设置同步"将你的Insiders与稳定版进行同步**。选择服务**...命令,它只在VS Code Insiders中可用。
主题。GitHub Light
设置编辑器的改进
这个里程碑的亮点是我们在改进设置编辑器的可访问性方面的工作,这仍然是一项正在进行的工作。在过去的几次迭代中,我们一直在听取反馈意见,并探索使设置编辑器更容易被屏幕阅读器使用的方案。我们对这些问题的两种可能的解决方案进行了调查,并制作了两个原型,现在我们正在寻找你的反馈,以帮助我们了解什么是最有效的。请参阅GitHub问题#104318,了解详情、下载链接,并留下您的反馈。
支持TypeScript 4.0
我们将在下一次迭代中接受TypeScript 4.0,但如果你想提前尝试4.0-RC,当前的VS Code版本包括对所有即将到来的功能的支持。一些亮点。
- 项目加载时的部分智能提示。
- 在编辑器中用删除线突出显示对已废弃符号的调用。
- 解释为什么不能应用某个重构的原因。
- 改进的自动导入 - 在TypeScript 4.0博客文章中阅读更多内容。
今天,你可以通过在工作区安装TypeScript 4.0-rc或安装TypeScript nightly扩展来尝试这些功能。
对扩展的贡献
十六进制编辑器
HexEditor扩展在这次迭代中看到了进一步的改进,支持复制和粘贴、文件观察以及查找和替换。显著变化的完整列表可以在CHANGELOG中找到。任何反馈或遇到的问题都可以在vscode-hexeditor 仓库中提出。
复制和粘贴支持
我们增加了将数值复制到剪贴板的功能,并将其粘贴到编辑器中,或粘贴到你想要的任何其他来源。
查找和替换支持
十六进制编辑器现在有一个类似于VS Code中的查找和替换小部件。它支持使用通配符(例如:FF ?? DD )搜索十六进制字段,并在解码后的文本部分进行重码搜索。

多重选择
你现在可以使用拖放选择,Shift和(Ctrl+click) 选择,以及按住Shift和用键盘导航来创建一个选择。

远程开发
远程开发扩展的工作仍在继续,它允许你使用容器、远程机器或Windows Subsystem for Linux(WSL)作为一个全功能的开发环境。
1.48版的功能亮点包括。
- 远程 - 容器。从登录和shell脚本中提取环境变量。
- 远程--SSH:在启动或维护SSH连接时提示更少。
你可以在Remote Development发布说明中了解新的扩展功能和错误修复。
笔记本
VS Code团队正在继续进行对笔记本的本地支持工作。为了帮助开发,我们创建了一个GitHub Issue Notebooks扩展,它可以让你搜索GitHub的问题和拉动请求。这个扩展仍处于预览阶段,需要使用VS CodeInsiders,但它可以让你亲身体验笔记本,我们欢迎你的反馈。
笔记本用户体验
我们继续调整Notebooks的总体用户体验。这个月我们使单元格更加紧凑,并在工具栏上添加了单元格菜单(...),使单元格相关的操作更加容易找到。
拖放增强
我们改进了笔记本中拖放的体验。拖动一个折叠的Markdown单元格将移动折叠区域内的所有嵌套单元格。

用编辑器重新打开
现在你可以在文本编辑器中重新打开笔记本文档,或者直接从编辑器标题的上下文菜单中找到任何其他可用的编辑器类型。

折叠单元格和输出
你现在可以折叠单元格的输出和输入,这在你想清理笔记本视图以关注它的其他部分时很有用。

使用Python扩展的Jupyter笔记本
Python扩展团队已经宣布了一个预览,用于将Jupyter与VS Code的本地笔记本一起使用。你可以在他们的Python笔记本博文中阅读细节。
GitHub 拉动请求和问题
GitHub Pull Requests and Issues扩展的工作仍在继续,它允许你处理、创建和管理拉动请求和问题。这个版本的一些更新包括。
- 当你没有权限时,当你想推送一个提交或开始工作一个问题时,提供分叉一个仓库。
- 升级了我们使用的GitHub rest API的版本,以提高性能。
要了解所有的新功能和更新,你可以看到0.19.0版本扩展的完整更新日志。
扩展的编写
任务定义的when条款
任务定义现在有一个可选的when 属性。你可以使用when 属性为该类型的任务何时可用设置一个条件。如果有这样的情况,即使你的一个任务已经在用户tasks.json 文件中配置了,但它不应该在VS Code UI的任何地方可用,你可以设置一个when 条件来阻止任务在任何地方显示。
树状视图的初始可见性
树状视图可以在其package.json 贡献上设置一个visibility 。选项有:visible (默认),collapsed ,和hidden 。可见度状态只在用户第一次打开工作区时使用,此后,可见度总是恢复到用户设置的任何状态。
Git:获取远程资源命令
Git扩展现在暴露了一个新的扩展API命令来显示远程源快速选取界面:git.api.getRemoteSources 。阅读更多关于这个问题的信息,请参见问题#102394。
使用认证提供者
从认证提供者那里检索认证信息的API现在已经稳定。使用getSession 和onDidChangeSession ,扩展能够请求登录信息,并监听微软和GitHub这两个内置认证供应商的变化。关于如何认证GitHub的例子扩展,请看这里。
新的Webview与代码集扩展示例
我们增加了一个新的Webview扩展样本,其中包括对我们的codicon库的引用。这使用了vscode-codicons npm包,并从webview中引用了这些包。
语言服务器索引格式
TypeScript LSIF生成器增加了对多项目设置的支持。此外,内存消耗得到了优化,特别是在通过明确的导出语句导出的符号周围。
拟议的扩展API
每个里程碑都会有新的提议的API,扩展作者可以尝试。一如既往,我们希望得到你的反馈。这是你必须做的事情,以尝试一个拟议的API。
- 你必须使用Insiders,因为提议的API经常变化。
- 你必须在你的扩展的
package.json文件里有这一行:"enableProposedApi": true。 - 把最新版本的vscode.proposed.d.ts文件复制到你项目的源码位置。
注意,你不能发布一个使用拟议的API的扩展。在下一个版本中可能会有突破性的变化,我们绝不希望破坏现有的扩展。
子菜单
菜单API已经被扩展到支持子菜单。这已经被Git扩展采用,以清理其溢出菜单。看看这个API的语法以及它所带来的可能性。
停止调试会话
VS Code使用函数vscode.debug.startDebugging 来启动调试会话。在这个里程碑中,我们引入了匹配的函数vscode.debug.stopDebugging 来停止一个特定的会话(或所有会话)。有了这个新的API,就不再需要使用不太容易预测的Debug:Stop命令(命令ID:workbench.action.debug.stop ),它只停止 "活动 "的调试会话。
文档和扩展
新的远程容器主题
在VS Code中,有新的主题用于处理容器。
- 附加到容器- 附加到一个已经运行的Docker容器。
- 创建一个开发容器- 创建一个符合你的开发环境的自定义容器。
- devcontainer.json参考- 通过
devcontainer.json属性控制容器的创建。
并查看这篇关于在教育中使用Dev容器的博文,以帮助教育工作者和学生创建稳定、可重复的课堂设置。
Java轻量级模式
Java的语言支持扩展现在支持轻量级模式,当你想快速处理你的Java源代码文件时。你仍然会得到强大的语言功能,如代码完成、导航、大纲和语法检查,为你的源代码以及JDK。
Azure缓存扩展
新的Azure缓存扩展使你可以轻松浏览Azure缓存中的数据。
值得注意的修正
- 33720:错误的猜测编码为Windows 1252
- 102037:如果调试适配器未能发送
terminated事件,VS Code会卡在调试模式中 - 103463:当停靠时,调试工具栏中的 "断开 "和 "停止 "图标不能正确更新。
谢谢你
最后,但肯定不是最不重要的,我们要感谢 谢谢你向本月为VS Code做出贡献的以下人员表示感谢。
对我们问题跟踪的贡献。
- John Murray (@gjsjohnmurray)
- Andrii Dieiev (@IllusionMH)
- Alexander (@usernamehw)
- ArturoDent (@ArturoDent)
- Simon Chan (@yume-chan)
对vscode 的贡献 :
- Alvin Tang (@alvintangz)。特征#88480。空行没有被注释掉PR #93160
- Andrew Branch (@andrewbranch)
- 修改includePackageJsonAutoImports选项PR #103732
- [typescript-language-features] 增加package.json自动导入的设置PR #103037
- [typescript-language-features] 为package.json的自动导入增加遥测功能PR #103126
- Charles Gagnon (@Charles-Gagnon):只在 releaseNotesUrl 不存在的情况下抛出错误PR #102149
- Shelley Vohr(@codebytere):修正:为deserializeRunnable添加缺失的属性PR #103436
- Connor Skees (@connorskees)
- 使用^H删除cmd.exe中留下的单词PR #98494
- 当终端处于焦点时,只对cmd.exe发出ctrl+hPR #102508
- Damien Martin-Guillerez(@damienmg)。使用搜索编辑器的搜索顺序设置PR #103627
- Daniel Rosenwasser(@DanielRosenwasser)。增加检查,以确保TS 4.0-RC和向前使用'-serverMode'。PR #104123
- Ed Jeffreys(@edjeffreys)。#98942 清除搜索模式字段PR #100024
- Ikko Ashimine(@eltociear)。修正错别字PR #103297
- Alexander Fadeev (@fadeevab):为升级的语法添加新的Makefile测试案例PR #101719
- John Murray (@gjsjohnmurray)
- 修复 #100437 改进'terminal.integrated.commandToSkipShell'信息PR #100445
- 改进SCM计数徽章的设置文本PR #101677
- 在设置搜索标题中显示单片机的大写字母PR #101679
- Fedor Nezhivoi (@gyzerok)
- 将读写逻辑从nativeTextFileService转移到textFileService,以获得#79275PR #100804
- 移除#79275的jschardet类型的解决方法PR #101705
- 修复#79275,启用网络编码PR #101706
- Evgeny Gryaznov(@inspirer)。为针对网络的文件和目录添加缺失的代码导入模式。PR #102961
- Jason Williams (@jasonwilliams)
- 修复h1在markdown预览中过大的底边距PR #102520
- 修复样式,改善标题间距 修复 #102036PR #102427
- 修复
<ul>内的段落间距过大的问题。PR #102719
- Jean Pierre (@jeanp413)
- 修复快速查找符号查找器在退格后显示 "无匹配结果"PR #101844
- 修复退步:无法打开带有特殊字符'#'、'?'、'%'的图片PR #102189
- 修复了'markdown.api.render'命令对同一个markdown字符串产生不同的html内容PR #103578
- James Lave (@jlave-dev):添加GitHub公共仓库选项PR #102406
- David Linskey (@Linskeyd):修复应用程序重新聚焦时发生的webview焦点窃取PR #98847
- Logan Ramos(@lramos15)。支持在打开的情况下快速提取PR #103712
- Ludovic Galibert(@ludokx)。添加#97640:添加选项以启用差异编辑器的代码笔PR #97644
- 何林明(@MrHeer)。修复#103129PR #103130
- @不穿裤子的人
- 失败时重试获取发行说明,并显示失败的情况PR #101158
- 如果扩展支持的话,允许重新打开关闭的webviewsPR #100979
- 将所有带有
npmrc/npmignore/gitignore扩展名的文件视为属性/忽略文件PR #103044 - 将所有带有
git{config,attributes,modules}/editorconfig扩展名的文件视为属性文件PR #103326
- @Nrayburn-tech
- 在关闭子菜单之前,增加对shadow dom root的检查PR #93667
- 将扩展操作从对话框改为通知PR #103338
- Ye-hyoung Kang (@pastelmind):为jsconfig.json添加文件名模式PR #103360
- Pascal Fong Kye (@pfongkye): 修正:移除flexbox以启用省略号PR #102640
- Pierce Boggan(@pierceboggan)。修复运行时异常并添加团队PR #103209
- Tony Xia (@tony-xia)
- saveUntitedBeforeShutdown -> saveUntitledBeforeShutdownPR #101740
- 错字:ICommontTelemetryPropertiesResolver -> ICommonTelemetryPropertiesResolverPR #101739
- @troy351:苦差事:删除多余的代码PR #102471
- Tyler Brockett(@tylerbrockett)。修复首选项同步中的错别字--取消为已取消PR #103431
- Alan Zhang (@zcfan): 修复#102289PR#102660
对vscode-json-languageservice 的贡献。
- Adrián Panella (@ianchi):暴露getMatchingSchemasPR #47
对vscode-vsce 的贡献。
- Jeffrey (@JeffreyCA):防止mailto链接被加入前缀PR #472
对vscode-eslint 的贡献。
- Matt Lubner (@mattlubner):为eslint增加一个NODE_ENV配置设置PR #988
- (@NotWearingPants):将所有扩展名为
eslintignore的文件视为忽略的文件PR #1025 - Dimitri Mitropoulos (@dimitropoulos): 拼写错误:json示例中缺少双引号PR #1031
- David Turesson(@mrxdst)。禁用整个文件的规则,在shebang下插入注释。PR #1036
贡献给language-server-protocol:
- Remy Suen (@rcjsuen):修复文件变更通知中的错别字PR #1043
- Florian Loitsch (@floitsch):修复错别字。PR #1055 Danny Tuppeny (@DanTup):为了提高解析能力,对一致性做了一些小调整PR #1058
- Zhang Zhi (@fytriht):更新破损的链接PR #1060
对debug-adapter-protocol 的贡献。
- kuafuwang (@kuafuwang):添加支持DAP的JCIDE的链接PR #129
- actboy168 (@actboy168):添加Lua调试适配器PR #131
对vscode-recipes 的贡献。
- Ellis Kenyő (@elken):更新README.mdPR #252
- tasdevani21(@tasdevani21)。更新Vuejs的readme,以包括最新的cli命令并改进调试PR #263
贡献给vscode-hexeditor 。
- Jean Pierre (@jeanp413):改进单元格选择逻辑PR #92
对vscode-js-debug 的贡献。
- Ashik Paul (@Ashikpaul):修正了一个小的拼写错误PR #614
对vscode-generator-code 的贡献。
- undefined (@masnn):更新index.jsPR #216
- Sibiraj(@sibiraj-s)。更新Eslint、MochaPR #213