IntelliJ IDEA 2019.3:性能优化和质量改进

你好

在此版本中,我们集中于性能和质量。 我们与其他JetBrains团队一起致力于优化性能,提高界面的响应速度以及改善现有功能。

为了正确地确定优先级,我们依靠您的反馈,并感谢每个在我们的跟踪器中分享想法并报告错误的人。 结果,我们解决了1,600多个问题,总共获得了大约4,000个用户投票。

我们还致力于支持新的微服务框架,例如MicronautQuarkusHelidon ,并为MongoDB提供了人们期待已久的支持。


博客@ 2x(3)




性能优化


我们一直在努力提高IntelliJ IDEA的性能。 这是我们得到的:


  • IntelliJ IDEA的启动速度更快。
  • 更少的编辑器和界面冻结。
  • IDE占用的内存更少,尤其是在导入Gradle项目时。




今年的主要任务之一是减少IDE的启动时间。 我们对IntelliJ平台进行了重大的体系结构更改:启动时顺序发生的某些过程现在正在并行运行。 此外,我们重组了类以加快初始化速度,优化macOS上的字体下载等。


我们关注增加接口的响应能力,并消除了IntelliJ IDEA各个部分的许多冻结问题。 我们设法从1600多个错误报告中消除了冻结的原因。 此外,报告冻结现在更加容易。


现在,当在编辑器或调试器中打开许多选项卡时,以及当正则表达式与“ 在路径查找”中的长行匹配时,IntelliJ IDEA的工作速度将大大提高。 打开项目树还需要更少的时间。


通过优化Java中的类型推断,我们加快了编辑器的工作。 长链方法调用的类型推断现在要快得多。 Java语法高亮显示也可以更快地运行,特别是对于通用varargs方法( Arrays.asList, Map.ofEntries等)而言,该方法可以包含数十个参数。 使用“ 连接线”操作连接多条线的速度也加快了。


对Kotlin 1.3.60的支持还带来了改进,例如,在编辑器中加快了Kotlin语法的突出显示。


其他更正影响了VCS:它们设法减少了事件和被忽略文件的处理时间,消除了冻结并加快了大型项目中的状态更新。


在构建子系统中,我们减少了导入大型Gradle项目时的峰值内存消耗。 我们还修复了在Maven项目中编辑pom.xml文件的问题:现在,IDE提供了自动完成选项,而不会出现延迟。


我们对结果感到满意,但不要止步于此。 在将来的版本中,我们将继续优化性能,并尝试使IDE的启动更快。



品质提升


外挂程式

IntelliJ IDEA具有丰富的插件生态系统,但是有一个缺点:在安装或删除插件时,需要重新启动IDE。 我们开始解决此问题并实现了动态安装插件的基本基础结构,而无需重新启动IDE。 到目前为止,这仅适用于界面主题和键盘快捷键。


版本控制系统

支持VCS的许多新功能。 为了简化分支的工作,而不是Checkout as ...操作,我们添加了两个新分支CheckoutSelected中的New Branch 。 “ 从选定的位置创建新分支操作将创建一个新的本地分支,但不能启用任何远程分支的跟踪。 调用Checkout操作时,IDE将创建一个新的本地分支,从存储库中检索它,并在没有相同名称的本地分支的情况下启用对选定远程分支的跟踪。





我们重新设计了“ 克隆”对话框,并制作了一个界面,用于从各种VCS托管下载项目。 现在,您可以直接从更新的对话框中输入您的帐户。 如果您已经登录,IDE将显示按您所属的帐户或组织分组的所有存储库的列表。


此外,您不再需要下载分支即可将更改发送到存储库:在“ 分支”窗口中选择所需的分支,然后单击“ 推送” 。 对于移动或重命名的文件,我们在File History中添加了一个带有文件名的列。 另一个有用的改进是即使文件位于.gitignore(或.hgignore)列表中,也可以强制将文件添加到Git(或Mercurial)中。


其他改进

在以前的版本中,我们支持Java 13的功能,但是这次显着改善了对Java 13文本块的支持,我们最近在博客中谈到了这一点。


现在,有一种简单的方法可以查看所选字段的呼叫层次结构:使用新的“ 字段呼叫层次结构”操作( Ctrl / Cmd + Alt + H )。


如果选中了“ 在鼠标移动显示快速文档”复选框, 则将鼠标悬停在警告或错误上方时,将出现一个提示,其中包含警告或错误的描述以及有关代码的帮助信息。
以前,在这种情况下,IDE仅显示错误提示而不提供文档,有时会出现两个完整的弹出窗口。


我们已经更新了意图动作对话框的行为:如果您选择其中一项并关闭对话框,动作将不会从句子列表中消失。


现在始终显示“ 服务”窗口,并且可以在窗口本身内部配置其行为。 此外,您可以隐藏某些启动配置。


并且:


-有关类型不匹配的提示已变得更加详细和易于理解。
-打开项目时,IntelliJ IDEA会显示其名称。
-我们支持在新的模板语言中插入代码片段,特别是Pug (以前称为Jade ), HandlebarsEJSSlim
-鼠标滚轮平滑滚动。
- 使用首选项” /“设置” |“设置”中的 使用对比度滚动条”复选框 ,可以使滚动条更加可见 外观与行为| 外观

支持新的框架和技术


尽管在准备此版本时,我们主要关注质量,但我们还开发了一些新功能,并很高兴介绍它们。 下文所述的所有内容仅在IntelliJ IDEA Ultimate中可用。


在我们开始计划此版本之前,有关微服务的讨论很多。 在某个时候,我们认为我们应该增加对用于开发具有微服务架构的Java和Kotlin项目的技术的支持。 星星汇聚在一起,我们开始进行整合。


首先,我们为下一代微服务开发框架(Micronaut,Quarkus和Helidon)扩展了代码编写辅助和导航功能。 对于那些参与反应式编程的人,我们增加了对Spring Web Flux的支持。




通常,微服务会通过HTTP / WebSocket相互交互,因此对我们来说,下一步是添加对Java HTTP客户端API的支持,例如java.net.URI / URL,Retrofit v2,OkHttp v3以及流行的服务器框架的客户端库:Spring Feign,MicroProfile REST客户端等 重要的是,IDE现在为HTTP / WebSocket API提供URL补全和导航。


其次,我们添加了一个新的“ 端点”窗口,以方便查看项目的端点。 此窗口同时显示客户端和服务器API。 逐渐地,不仅将在此处添加HTTP API,而且还将添加消息传递API,gRPC和GraphQL。


最后,我们扩展了对API规范的支持。 在此版本中,我们支持Swagger 2和OpenAPI Specification3。支持包括检查是否符合方案,自动完成,导航,搜索用途以及重构包含API描述的YAML / JSON文件中的重命名。


目前,所有这些功能仅适用于Java和Kotlin项目,但在将来的版本中,我们计划支持其他语言和框架。


此外,IntelliJ IDEA 2019.3最终支持MongoDB。 在此版本中,集合和字段显示在数据库浏览器中,您可以执行查询并查看其结果。



重要修复


-IDE现在可以找到通过Homebrew安装Gradle的目录。
-手动设置Gradle主目录变得更加容易。
-IntelliJ IDEA现在支持在Linux的KWallet中存储密码。
-对于JavaFX项目,IDE可以在“ 场景构建器”选项卡上使用内置的场景构建器显示FXML文件。
-在“ 调试”窗口中,键盘导航有效。
-您可以通过Ctrl / Cmd + C从检查窗口复制所选文本
-在IDE窗口之间切换时,焦点不会丢失。
-改进了窗口和工具提示的位置。
-如果在IDE中选择了Darcula主题,则在调用时,MacOS系统窗口将以深色主题打开。

我们还更新了JetBrains Runtime 11(JBR 11)。


-修复了macOS Catalina上的字体渲染。
-修复了在macOS 10.15 Catalina上打开项目的问题。
-修正了“ 评估表达式”对话框中的字符。
-IntelliJ IDEA将检测IDE键盘快捷方式和操作系统快捷方式之间的冲突。
-编辑器解决了始终使用斜体的字体的问题。
-修正了Windows的初始屏幕。

在网站上阅读有关新版本的所有详细信息,或查看评论 (英文)。

JetBrains团队

Source: https://habr.com/ru/post/zh-CN479902/


All Articles