欢迎使用2020年6月发布的Visual Studio代码。我们希望您能喜欢此版本中的多个更新,其中一些主要亮点包括:
查看挂起的更改并对其进行排序-以树或列表的形式查看文件,按名称、路径或状态排序。
适用于MacOS的Java包安装程序-设置为在MacOS上使用VS代码在Java中进行开发。
7月13日星期一,太平洋时间上午9点(伦敦时间下午5点),请加入我们的VS Code Team现场直播,观看此次发布的最新内容演示,并向我们现场提问。
业内人士:想尽快尝试新功能吗?您可以下载每晚的内部版本,并在最新更新可用时立即尝试。有关最新的Visual Studio代码新闻、更新和内容,请在Twitter@code上关注我们!
在这个里程碑中,我们再次从社区收到了有用的反馈,帮助我们识别和解决了许多易访问性问题。重点:
文件资源管理器中的压缩文件夹现在可以正确说明展开/折叠状态和ARIA级别。
屏幕阅读器现在可以在编辑器中更新光标偏移。因此,屏幕阅读器“说出全部”命令在停止和恢复时应该会工作得更好。
以前,Settings编辑器只能用于编辑基本类型的设置,如字符串和布尔值,对于更复杂的设置类型,您需要直接编辑settings.json。现在,可以从设置编辑器编辑非嵌套对象设置。扩展作者可以使用此功能来增加这些类型设置的可见性。
有一个新命令list.selectAndPReserve veFocus,它允许您从列表中选择一个项目,同时将焦点保持在该列表中。如果要从列表(如文件资源管理器)中选择多个文件,而不将焦点转到文件编辑器,这会很有帮助。
默认情况下,该命令不绑定到任何键盘快捷键,但您可以添加自己的键绑定:
VS代码现在支持通过拖放到扩展视图来安装扩展VSIX文件。
在搜索编辑器命令(search.action.openNewEditor、search.action.openNewEditorToSide)中添加了两个新参数,以允许键绑定配置新搜索编辑器的行为方式:
riggerSearch-打开搜索编辑器时是否自动运行搜索。默认值为true。
FocusResults-是将焦点放在搜索结果中,还是将焦点放在查询输入中。默认值为true。
例如,下面的键绑定在打开搜索编辑器时运行搜索,但将焦点保留在搜索查询控件中。
{";key";:";ctrl+o";,";command";:";search.action.openNewEditor";,";args";:{";query";:";vs Code";,";riggerSearch";:TRUE,";FocusResults";:FALSE}}。
search.searchEditor.defaultNumberOfContextLines设置已更新为默认值1而不是0,这意味着在搜索编辑器中的每个结果行前后都会显示一个上下文行。要返回到旧行为,请将该值设置回0。
现在可以在运行时切换以前存在的workBench.list.HorizontalScrolling设置,而无需强制您重新加载工作台。
VS代码现在支持在编辑器中查找/替换时更改正则表达式匹配组的大小写。这是使用修饰符\u\u\l\L完成的,其中\u和\l将大写/小写单个字符,而\U和\L将大写/小写匹配组的其余部分。
也可以堆叠修饰符-例如,\u\u\u$1将大写该组的前三个字符,或者\l\u$1将小写第一个字符,而大写其余字符。
目前,这些仅在编辑器的查找控件中受支持,而在全局在文件中查找中不受支持。
我们新的JavaScript调试器,在上个月成为内部人士的默认调试器之后,现在是VS Code中JavaScript(Node.js和Chrome)的默认调试器。如果您跳过了前几篇VS代码更改日志中的“预览功能”部分,则可以了解调试器自述文件中的“What”新部分。
您不需要更改任何设置或启动配置就可以利用新的调试器。如果您遇到任何问题,请打开一个问题!
直到今天,VS代码调试器还没有标准的方式来显示编辑器中的文件只需单击一个按钮就可以轻松调试。有些调试扩展允许您这样做,通常使用的调试配置会提示您在编辑器中调试文件。但是,用户仍必须在调试配置下拉菜单中选择正确的配置,然后才能使用F5。其他调试扩展实现了F5的后备策略:如果不存在Launch.json,则F5将尝试调试当前在活动编辑器中打开的文件。
由于这两种方法都不容易发现,一些调试扩展(例如,Python)已经开始在编辑器的标题区域添加一个Run按钮。
因为我们还没有找到更好的方法,而且这个方法可以在不需要任何新API的情况下实现,所以我们写了一些关于如何以标准方式实现它的指导方针。扩展作者可以在下面的扩展编写一节中找到这些准则。
如果一个或两个都显示在编辑器标题区域的左侧,则在编辑器中运行或调试文件只需单击一下即可。
我们已经开始在常见情况下使调用堆栈不那么拥挤:调用堆栈视图现在支持隐藏由于技术原因而存在的调试会话节点,但不会为用户提供太多价值。
选择使用此功能的第一个调试扩展是新的JavaScript调试器,只要只有一个子会话,它就可以消除父调试会话。
我们希望其他调试扩展也会紧随其后。请参阅下面建议的新API。
为了使来自Visual Studio的用户更容易发现跳转到光标命令,我们添加了命令alias set next语句。
如果您不知道Jump to Cursor做什么:它允许您将程序执行移动到一个新位置,而无需执行中间的任何源代码。
当将鼠标悬停在断点视图中的源断点上时,VS Code现在显示断点的绝对路径。
pnpm现在是npm.PackageManager设置以及NPM和YAR运行脚本的有效选择。
所有存储库都呈现在单个视图中,因此您可以更好地了解整个工作区状态。此外,现在可以将源代码管理视图移动到面板中,并且可以将其他视图移动到源代码管理视图容器中。
在使用列表视图选项时,我们添加了对源代码管理视图中的更改按名称、路径(默认)和状态进行排序的支持。我们已将视图选项(列表与树)和排序选项合并到上下文菜单中的新视图排序菜单项中。
与通常的git merge命令类似,如果用户正在执行git merge--squash命令,SCM视图现在将使用默认消息恢复SCM输入。
VS代码现在捆绑了TypeScript 3.9.6。这个小更新修复了一些错误,包括一个可能导致TypeScript服务器在某些源代码模式上崩溃的错误。
现在,您可以将大型文件和文件夹上传到VS Code的Web版本,系统会准确报告进度,以便您可以跟踪已上传的字节数以及上传速度。
在这一里程碑期间,在完全支持浏览器中的文本编码以读写文件方面做了大量工作。通过利用webpack,我们依赖于浏览器现在支持的两个库:
预览功能尚未准备好发布,但功能足以使用。我们欢迎您在开发过程中尽早提供反馈。
在过去的几个月里,我们一直在努力支持跨机器同步VS代码首选项,这一功能在Insiers发布版中可供预览。
现在,您可以使用同步计算机视图中计算机条目上的关闭首选项同步上下文菜单操作来禁用其他计算机上的同步。
TypeScript4.0测试版还带来了一个新功能,可以帮助您减少加载大型JavaScript或TypeScript项目时所花费的等待时间。要解释这是如何工作的,我们首先需要介绍一下当前版本的TypeScript是如何工作的背景知识。
在VS代码中打开JavaScript或TypeScript文件时,TypeScript语言服务会确定该文件属于哪个项目,然后为其加载关联的项目。有时这个项目可能相当大,比如核心VS代码代码库,它由数千个打字文件组成。加载项目时,VS代码能够处理基本的语法操作,如获取文档大纲和启用代码折叠,但它当前不能提供智能感知或其他更高级的语言功能,因为它们取决于对整个项目的理解。例如,为了提供自动导入,TypeScript Language服务需要知道项目中所有导出的符号。
TypeScript4.0中的更改使VS代码在大型项目仍在加载时提供智能感知和其他更高级的语言功能成为可能。需要注意的是,我们可以提供的IntelliSense仅限于参考当前文件,而不是整个项目。这意味着建议和转到定义等功能将起作用,但我们将仅显示当前文件中的建议,并且您只能运行转到定义来跳转到当前文件中的另一个符号。
如果您使用大型JavaScript和TypeScript项目,我们很有兴趣听取您对此新功能的反馈。今天您可以使用TypeScript Night扩展来试用它。我们希望它允许您几乎立即开始使用您的代码,直到更完整的、项目范围内的IntelliSense变得可用。
我们正在致力于能够撤消和重做代码操作和重构。一个突出的例子是Java类重命名重构,它进行文本更改并重命名磁盘上的文件。现在可以撤消此操作,但仍需要触发两次撤消。敬请关注,我们将进一步改进这一点,并请尽早提供反馈。
VS代码团队继续对笔记本提供本机支持。为了帮助开发,我们创建了一个GitHub Issue笔记本扩展,可以让您搜索GitHub问题和拉取请求。此扩展仍处于预览阶段,需要使用VS Code Inside,但它可以让您第一手体验笔记本,我们欢迎您的反馈。
我们更新了笔记本电池的视觉外观,使其设计更紧凑。我们还为选定的单元格添加了阴影轮廓,以使选择状态更加明显。
我们在笔记本中添加了热退出支持,以允许扩展来处理备份和恢复。您未保存的本地更改现在可以通过扩展序列化,并在重新打开工作区时恢复。
我们添加了对扩展的支持,以促进撤消/重做堆栈。扩展现在可以控制哪些操作是可撤消的。例如,在GitHub问题笔记本中,您可以选择Lock按钮将单元格内容设为只读,也可以通过普通的Undo/Redo命令撤消/重做此操作。
我们扩展了“新建文件”命令(WindowsN(⌘,LinuxCtrl+N)),以支持创建新的无标题笔记本文件。例如,您可以使用下面的键绑定快速创建一个GitHub问题笔记本并运行查询。
Notebook.FocusedCellEdge:当单元格被聚焦时,单元格的上边界和下边界的颜色。
此示例说明如何基于现有的VS代码调试器扩展实现笔记本调试功能。
此示例说明如何基于Xeus内核及其对调试适配器协议的本机支持来实现笔记本调试功能。
如果您对为VS代码创建Notebook扩展感兴趣,有一个新的指南详细介绍了Notebook API。您将了解API以及VS代码笔记本基础设施和笔记本扩展开发最佳实践的细节。
远程开发扩展的工作仍在继续,它允许您使用容器、远程计算机或Windows Subsystem for Linux(WSL)作为功能齐全的开发环境。
Remote-Containers and WSL:在WSL2博客文章中查看最新的使用远程容器。
您可以在Remote Development发行说明中了解新的扩展功能和错误修复。
如果您是VS代码远程开发的新手,您可以从以下入门教程开始:
最新版本的Azure帐户扩展现在公开了一个可与最新Azure SDK一起使用的凭据对象。
GitHub Pull Requests and Issues扩展的工作仍在继续,该扩展允许您处理、创建和管理Pull请求和问题。此版本的一些更新包括:
要了解所有新功能和更新,您可以查看0.18.0版扩展的完整更改日志。
HexEditor扩展继续得到改进,以在VS代码中提供原生的十六进制编辑体验。此版本扩展的主要更新包括简单的编辑支持(允许用户撤消、重做、编辑现有的十六进制单元格,以及将新单元格添加到文档末尾)和大文件优化,允许用户打开18兆字节以上的文件,这在以前是不可能的。
在自述文件中可以找到值得注意的更改的完整列表。任何反馈或遇到的问题都可以提交给vscode-十六进制编辑器存储库。
我们已经最终确定了TreeItem、StatusBarItem和TimelineItem元素中的AccessibilityInformation以支持屏幕阅读器。AccessibilityInformation包含标签和角色。一旦物品获得焦点,屏幕阅读器就会读出标签。项的角色定义屏幕阅读器如何与其交互。该角色应在特殊情况下设置,例如,当树状元素的行为类似于复选框时。如果未指定角色,VS代码将自动选择适当的角色。
editor.action.goToLocations命令现在可以在找不到位置时显示回退消息。这允许扩展实现像Go to Super Type这样的功能,这些功能的行为就像内置功能一样,例如,Go to Definition。下面的代码片断是调用此命令的扩展的完整示例:
vscode。命令。ecuteCommand(';editor.action.goToLocations';,vscode)。窗户。activeTextEditor。文档。URI、//锚定URI和位置vscode。窗户。activeTextEditor。选择。开始,[],//结果(vscode.Location[])';转到';,//模式';找不到超级类型';//<;-消息);
对于希望通过向编辑器添加运行和/或调试按钮来改善单文件调试体验的调试扩展,我们建议遵循以下准则以获得一致的外观:
将命令添加到编辑器标题区域(请参阅模拟调试):要使命令仅对特定语言可见,请使用";WHEN";子句,例如";resourceLangId==python";。
将Run命令放入1_Run@10组,将Debug命令放入1_Run@20组。
CodeActionProviderMetadata上的新文档属性允许扩展为它们返回的代码操作提供静态文档。当Provider返回代码操作时,此文档显示在代码操作列表的底部:
当用户选择文档条目时执行命令。此命令可以在编辑器中显示文档,也可以在浏览器中打开文档。
通过OpenDialogOptions和SaveDialogOptions为打开和保存文件对话框提供标题的API已经完成。请注意,并非所有操作系统都允许设置此标题,因此根据您的扩展运行位置的不同,行为可能会有所不同。
我们引入了第二种按钮样式,可以在需要使按钮不那么突出时使用:
现在,您可以将GitHub工作流徽章添加到已发布扩展的徽章列表中,因为github.com已添加到批准的徽章来源列表中。
argv.json现在支持enable-proposed-api字段。这允许扩展作者在发布的版本中运行他们建议的API扩展,以便长期使用,而不需要通过命令行打开VS代码并传递--enable-proposed-api CLI标志。
即将发布的3.16规范增加了对语义标记和完成项中附加文本编辑的延迟解析的支持。
每个里程碑都带有新提出的API,扩展作者可以试用它们。一如既往,我们需要您的反馈。要试用建议的API,您需要执行以下操作:
请注意,您不能发布使用建议API的扩展。在下一个版本中可能会有突破性的变化,我们永远不会想要破坏现有的扩展。
这个新的提议window.registerLinkProvider建立在前一版本中添加的终端的新链接系统之上,它允许扩展将链接附加到终端,包括悬停时显示的工具提示标签。
这与之前提议的(现已弃用)链接处理程序API形成对比,后者允许您的扩展可能处理有问题的链接,如果它不能处理,则会有一个后备链。这种链接肯定会被处理的新模型更符合考虑到的愿景,即链接可以有一个可能的操作列表。
VS代码在不调试的情况下运行功能是调试的一种变体,其中现有的调试配置被重用来运行程序,而不是调试该程序。此运行模式的结果是程序不会中断到调试器,既不是因为命中断点,也不是因为任何其他原因。
在这个里程碑中,我们为";无需调试运行提供了官方扩展API:在debug.startDebuging函数的DebugSessionOptions中添加了一个新属性noDebug。noDebug控制即将启动的会话是在调试的情况下运行,还是在不调试的情况下运行。如果缺少noDebug属性,则使用父会话(如果有)中的值。如果没有父会话,则假定缺少noDebug属性的值为';false';。
请注意:以前可以将noDebug标志添加到启动配置以达到相同的效果。这个非官方的API现在已被弃用(但仍受支持),我们建议将扩展过渡到新的API。
随着复杂的调试扩展和调试设置的到来,更多的调试会话出现在调用堆栈树视图中,使它们看起来很拥挤。在大多数情况下,调试会话对用户很有用,他们需要完全控制它们。在其他情况下,一些调试会话只是一组子会话的实现构件或分组机制。
为了使调用堆栈视图在常见情况下不那么拥挤,我们引入了一项功能,如果父调试会话节点只有一个子会话,则隐藏该节点。此功能称为紧凑模式,可通过debug.startDebuging函数的DebugSessionOptions上的新的可选紧凑属性使用。
如果Compact为true,则新创建的调试会话的父级将隐藏在调用堆栈VIE中。
.