2020年7月Visual Studio Code

363 阅读18分钟

2020年7月(1.48版)

更新1.48.1。该更新解决了这些问题

更新1.48.2:该更新解决了这些问题

下载。Windows。用户 系统 ARM| Mac:64位| Linux:deb rpm tarball snap


欢迎来到Visual Studio Code的2020年7月版。在这个版本中有许多更新,我们希望你会喜欢,其中一些关键的亮点包括。

如果你想在线阅读这些发布说明,请到code.visualstudio.com上的更新

8月17日星期一,太平洋时间上午9点(伦敦时间下午5点),加入我们 VS Code团队的现场直播,看看这个版本的新内容的演示,并现场向我们提问。

**内部人员。**想尽快试用新功能吗?你可以下载每晚的Insiders版本,一旦有最新的更新,就可以尝试。如需了解Visual Studio Code的最新新闻、更新和内容,请在Twitter上关注我们@code!

可访问性

在这个里程碑中,我们再次收到了来自社区的有益反馈,这有助于我们识别和解决可访问性问题

工作台

搜索编辑器

我们增加了一个 "打开搜索编辑器"的命令,以打开一个现有的搜索编辑器(如果存在的话),或者创建一个新的。原有的 "打开新的搜索编辑器"命令已被重新命名为 "新的搜索编辑器",并将始终创建一个新的搜索编辑器。

搜索编辑器现在也支持自定义search.sortOrder 配置,如按文件类型、修改日期或结果计数排序。

扩展。溢出菜单清理

Extensions视图的过滤动作现在显示在一个单独的过滤动作(漏斗按钮)下。

Extensions filter menu

主题。GitHub之光

扩展程序视图和更多操作...)菜单已被重构,以便更好地组织扩展程序查询(如已安装或推荐)和其他操作,如检查扩展程序更新启用所有扩展

Extensions overflow menu

主题。GitHub Light

源码控制

始终显示存储库

有一个新的设置,scm.alwaysShowRepositories ,使源控制视图总是显示仓库行,即使只有一个仓库打开。

Always show repositories

更好的键盘导航

当你浏览源码控制视图时,在一个改动上按下空格,现在会以预览编辑器的形式打开它,并将焦点保持在源码控制视图上,以方便键盘导航。

Git。溢出菜单的清理

感谢新的子菜单提议的API,Git视图和更多操作...)菜单已经被重构,以更好地组织几个命令。

Git menu with submenus

GitHub。发布到公共仓库

当发布一个仓库到GitHub时,你现在可以选择将仓库公开,而不是之前默认的私有仓库。

Publish public repo

调试

用户体验的改进

  • debug.openDebug 设置的默认值已被改为openOnFirstSessionStart 。因此,调试视图只有在第一次调试会话开始时才会自动打开。

  • 我们更新了状态栏中的调试图标,使其与我们在活动栏中使用的图标更加一致。这个新的图标应该更清楚地表明,当程序以这种方式启动时,断点将被尊重。

    Debug status new icon

调试。打开链接命令

一个新的Debug:打开链接"命令被添加到快速调试任何URL。以前,要调试一个浏览器,你必须安装Debugger for Chrome扩展,并编写一个launch.json 配置文件来调试一个页面。这个命令允许你调试任何URL,而不需要额外的启动配置。

Debug URL

主题。大地之歌

如果你在你的活动编辑器中选择了一个URL,它将自动打开。否则,VS Code会提示你输入一个URL,预先填入你剪贴板中的URL,如果有的话。

你可以通过debug.javascript.debugByLinkOptions 设置调整该命令中使用的调试配置。

JavaScript 调试器的改进

VS Code的上一个版本包括我们新的JavaScript调试器。我们要感谢社区对它的反馈,这个版本包括了几十项由此产生的修复和改进。如果你在调试中遇到任何问题,如果你还没有,请确保提交一个问题

浏览器支持

文本文件编码支持

VS Code桌面版的所有文本文件编码现在也支持在浏览器中运行。

Web encoding support

因此,设置files.encodingfiles.autoGuessEncoding ,现在可以为网络和工作进行配置,与桌面版相同。

预览功能

预览功能还没有准备好发布,但功能已经足够使用。在开发过程中,我们欢迎你的早期反馈。

设置同步

设置同步现在可以在稳定版🎉中进行预览。请参考用户指南,了解更多信息和常见问题。

这个功能现在被称为 "设置同步",它的所有引用和设置都已被调整为与新名称一致。

Settings Sync in gear menu

主题。GitHub Light

手动合并

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

Settings Sync Manual Merge

设置同步内部人员服务

我们为VS Code Insiders增加了一个新的Settings Sync Insiders服务,与稳定版分开。你可以随时使用 "设置同步"将你的Insiders与稳定版进行同步**。选择服务**...命令,它只在VS Code Insiders中可用。

Settings Sync Insiders switch

主题。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 仓库中提出。

复制和粘贴支持

我们增加了将数值复制到剪贴板的功能,并将其粘贴到编辑器中,或粘贴到你想要的任何其他来源。

Copy and Paste

查找和替换支持

十六进制编辑器现在有一个类似于VS Code中的查找和替换小部件。它支持使用通配符(例如:FF ?? DD )搜索十六进制字段,并在解码后的文本部分进行重码搜索。

Find and Replace

多重选择

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

Multi Select

远程开发

远程开发扩展的工作仍在继续,它允许你使用容器、远程机器或Windows Subsystem for Linux(WSL)作为一个全功能的开发环境。

1.48版的功能亮点包括。

  • 远程 - 容器。从登录和shell脚本中提取环境变量。
  • 远程--SSH:在启动或维护SSH连接时提示更少。

你可以在Remote Development发布说明中了解新的扩展功能和错误修复。

笔记本

VS Code团队正在继续进行对笔记本的本地支持工作。为了帮助开发,我们创建了一个GitHub Issue Notebooks扩展,它可以让你搜索GitHub的问题和拉动请求。这个扩展仍处于预览阶段,需要使用VS CodeInsiders,但它可以让你亲身体验笔记本,我们欢迎你的反馈。

笔记本用户体验

我们继续调整Notebooks的总体用户体验。这个月我们使单元格更加紧凑,并在工具栏上添加了单元格菜单...),使单元格相关的操作更加容易找到。

Cell menu

拖放增强

我们改进了笔记本中拖放的体验。拖动一个折叠的Markdown单元格将移动折叠区域内的所有嵌套单元格。

Drag grouped cells

用编辑器重新打开

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

Reopen with

折叠单元格和输出

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

Collapse cells

使用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现在已经稳定。使用getSessiononDidChangeSession ,扩展能够请求登录信息,并监听微软和GitHub这两个内置认证供应商的变化。关于如何认证GitHub的例子扩展,请看这里

新的Webview与代码集扩展示例

我们增加了一个新的Webview扩展样本,其中包括对我们的codicon库的引用。这使用了vscode-codicons npm包,并从webview中引用了这些包。

Webview codicons sample

语言服务器索引格式

TypeScript LSIF生成器增加了对多项目设置的支持。此外,内存消耗得到了优化,特别是在通过明确的导出语句导出的符号周围。

拟议的扩展API

每个里程碑都会有新的提议的API,扩展作者可以尝试。一如既往,我们希望得到你的反馈。这是你必须做的事情,以尝试一个拟议的API。

  • 你必须使用Insiders,因为提议的API经常变化。
  • 你必须在你的扩展的package.json 文件里有这一行:"enableProposedApi": true
  • 把最新版本的vscode.proposed.d.ts文件复制到你项目的源码位置。

注意,你不能发布一个使用拟议的API的扩展。在下一个版本中可能会有突破性的变化,我们绝不希望破坏现有的扩展。

子菜单

菜单API已经被扩展到支持子菜单。这已经被Git扩展采用,以清理其溢出菜单。看看这个API的语法以及它所带来的可能性

Git menu with submenus

停止调试会话

VS Code使用函数vscode.debug.startDebugging 来启动调试会话。在这个里程碑中,我们引入了匹配的函数vscode.debug.stopDebugging 来停止一个特定的会话(或所有会话)。有了这个新的API,就不再需要使用不太容易预测的Debug:Stop命令(命令ID:workbench.action.debug.stop ),它只停止 "活动 "的调试会话。

文档和扩展

新的远程容器主题

在VS Code中,有新的主题用于处理容器。

并查看这篇关于在教育中使用Dev容器的博文,以帮助教育工作者和学生创建稳定、可重复的课堂设置。

Java轻量级模式

Java的语言支持扩展现在支持轻量级模式,当你想快速处理你的Java源代码文件时。你仍然会得到强大的语言功能,如代码完成、导航、大纲和语法检查,为你的源代码以及JDK。

Azure缓存扩展

新的Azure缓存扩展使你可以轻松浏览Azure缓存中的数据。

值得注意的修正

  • 33720:错误的猜测编码为Windows 1252
  • 102037:如果调试适配器未能发送terminated 事件,VS Code会卡在调试模式中
  • 103463:当停靠时,调试工具栏中的 "断开 "和 "停止 "图标不能正确更新。

谢谢你

最后,但肯定不是最不重要的,我们要感谢 谢谢你向本月为VS Code做出贡献的以下人员表示感谢。

对我们问题跟踪的贡献。

vscode 的贡献 :

vscode-json-languageservice 的贡献。

vscode-vsce 的贡献。

vscode-eslint 的贡献。

贡献给language-server-protocol:

debug-adapter-protocol 的贡献。

vscode-recipes 的贡献。

贡献给vscode-hexeditor

vscode-js-debug 的贡献。

vscode-generator-code 的贡献。