IntelliJ IDEA 2019.3 发布,启动更快,性能更好(新特性解读)

点击上方“后端技术精选”,选择“置顶公众号”

技术文章第一时间送达!

来源:骇客与画家

原文地址:https://www.jetbrains.com/idea/whatsnew

参考文章:

https://www.oschina.net/news/111709/intellij-idea-2019-3-released

https://blog.csdn.net/hollis_chuang/article/details/101186271

IntelliJ IDEA 在 2019 年 11 月 28 日推出了今年最终主要版本-IntelliJ IDEA 2019.3!

这里有个小知识,就是 2019.1、2019.2、2019.3 这些点后面的数字表示的不是月份,而是这一年的第几个版本。

以下为翻译内容,翻译的可能不太准确,之后将会对翻译错误的地方进行修改,由于公众号文章发出后就不能进行大的修改,因此修改后的文章将会更新到以下链接地址,之后也会再发布一篇错误修改后的公众号文章,欢迎关注我。

文章更新链接:https://www.yuque.com/gaohanghang/og37t5/hry6a6


2019.3 11 月 28 

IntelliJ IDEA 2019.3 提供了重大的性能和可用性改进,包括更快的启动,主题和快捷键插件的安装更容易,增进 VCS workflows,并增加了对微服务框架、MongoDB 等的支持。

1. 更好的性能

1.1 更快的启动

此版本主要性能改进之一是启动时间比以往任何时候都短。我们采用了重大的体系结构更改,来并行化 IDE 在启动时执行的某些任务,以便它们不会顺序执行。

1.2 减少内存消耗

在 IntelliJ IDEA 2019.3 中,我们优化了性能以减少导入大型 Gradle 项目时的峰值内存消耗。

1.3 响应式用户界面

我们已经解决了提交给我们的 1600 多个 UI 冻结报告。除此之外,我们还修复了在 Maven 项目中编辑 POM.xml 文件的问题,现在可以立即显示补全建议,而不会出现任何延迟。其他修复有可以更快地处理大型项目中的 VCS 状态更新,更好地处理 ignored 文件,更快地渲染项目树,在使用大量编辑或 debugger 标签页时具有更好的性能,并提高了速度。

1.4 更好的 Java 性能

此版本对 Java 类型推断进行了许多改进,不仅修复了各种编辑器冻结问题,而且还为长的方法调用链加快了 Java 类型推断。当应用于 multiple lines 时,’Join Lines‘ 操作可以更快地工作。你还将体验到 Java 代码的加速高亮,尤其是涉及到带有通用 var-args 的方法时(其中放置了数十个参数)。

1.5 更好的 Kotlin 性能

IntelliJ IDEA 2019.3 捆绑了 Kotlin 1.3.60,提供了令人印象深刻的加速效果,例如在编辑器中更快地高亮。

2. 改善的可用性

2.1 在不重新启动 IDE 的情况下安装主题和快捷键插件

在 IntelliJ IDEA 2019.3 中,我们实现了对动态插件安装的支持,这意味着现在你可以安装和卸载主题和快捷键插件,而无需重新启动 IDE。我们计划在将来的版本中将此方法扩展到大多数插件,以使插件管理尽可能容易。

2.2 更明显的滚动条

如果你在查看滚动条时遇到困难,现在可以让它脱颖而出。只需启用 “Settings/Preferences | Appearance & Behavior | Appearance” 下的 ‘Use contrast scrollbars’ 设置即可。

2.3 平滑滚动

我们所做的一个很小但非常有价值的改进是滚动,使用鼠标滚轮滚动后现在可以变得更加平滑。

演示视频地址:https://www.youtube.com/watch?v=MoVS6HOdeew&feature=emb_logo

2.4 自动配置导入的 Maven 或 sbt 项目

现在,当你导入,创建或打开 sbt 或 Maven 项目时,IntelliJ IDEA 会自动为你设置它,因此你不再需要手动配置设置。

2.5 重做上下文动作的行为

在“意图动作”对话框中,即使选择了某个动作并关闭了对话框,IDE 现在仍默认显示所有可用的意图动作。

3. 功能更新

3.1 对 Java 13 功能的扩展支持

我们扩展了对 Java 13 文本块的支持:插入第三个引号时,它们会自动格式化。

3.2 可以注入更多模板语言

借助 IntelliJ IDEA 2019.3,你可以向代码中注入更多模板语言,特别是 Pug(ex-Jade),Handlebars,EJS 和 Slim。

https://www.jetbrains.com/idea/whatsnew/2019-3/img/InjectionTempl.gif

3.3 新的 “字段调用树” 操作

现在,通过使用 Ctrl + Alt + H 调用新的“字段调用树”操作,可以轻松地查看所选字段的调用树。

3.4 统一弹出错误和文档

现在,检查中将鼠标悬停在突出显示的符号上时,除了显示代码参考信息之外,你还可以使弹出窗口显示错误。要启用此功能,请在 Settings/Preferences | Editor | General 中选择 ‘Show quick documentation on mouse move’。

3.5 改进 Git checkout 工作流程

为了消除混淆,在远程分支上调用新重命名的 ‘Checkout’ 操作现在将创建一个新的本地分支,将其签出,并将跟踪设置为远程分支。我们还为本地和远程分支添加了 ‘New Branch from Selected’ 操作,该操作创建了一个新的本地分支并将其签出,但未将跟踪设置为任何远程分支。

3.6 推分支的更简单方法

你会很高兴的发现另一个节省时间的方法是,你不再需要签出分支来推送它–你只需在 Git 分支弹出窗口中选择一个分支并将其从那里推送即可。

3.7 统一的“克隆”体验

我们重新设计了 ‘Clone’ 对话框来统一用户界面,用于从不同的 VCS 托管服务获取项目。如果你已经登录到 VCS,IDE 将显示可供选择的可用仓库列表,因此你不再需要输入仓库 URL。

2.8 深入了解合并冲突

现在,如果在 merge,rebase 或 cherry-pick 操作期间发生冲突,在合并对话框中你可以获取有关更改源的更多信息。只需单击 ‘Show Details’ 链接即可获取导致代码冲突的提交列表。

4. 新框架和新技术

4.1 微服务框架支持

为了使你的 IntelliJ IDEA 项目在技术上保持相关性,版本 2019.3 添加了对 Micronaut,Quarkus 和 Helidon 的初步支持。如果你的 Java 项目采用了基于微服务的架构,则可以享受完整的编码协助、导航、检查、查找和其他好处。

4.2 OpenAPI 和 Swagger 支持

我们引入了对 Swagger v2 和 OpenAPI v2 的支持,该支持提供了 schema validation,以及代码补全、导航、查找,以及包含 API 描述的 YAML / JSON 文件中的重命名重构。

4.3 新 Endpoints 窗口

全新的 ‘Endpoints’ 工具窗口提供了项目中用于 HTTP 和 Web Socket 协议的客户端和服务端 API 的聚合视图。此外,你可以将窗口扩展到 IntelliJ IDEA 中当前打开的所有项目。

4.4 Spring Web Flux 支持

在 Spring tool 窗口的 MVC 视图中查看 Web Flux URL 路径的完整列表,在它们之间导航,并受益于编码辅助、搜索以及 URL 和 URLs 的重命名重构。

https://www.jetbrains.com/idea/whatsnew/2019-3/img/NewSpringWebFlux.gif

4.5 Java HTTP 客户端支持

IntelliJ IDEA 2019.3 在以下 Java HTTP 客户端 API 中提供 URL 支持:java.net.{URI/URL}, Retrofit v2, OkHttp v3, and Injectable URL reference。你现在在 Java 客户端中可以使用 Java 中常用的所有内容 - 编码辅助,导航,查找。

4.6 Project Reactor 支持

利用对 Java 和 Kotlin Reactor 项目检查的优势,它们会报告在不应阻塞线程的代码片段中检测到的线程阻塞方法调用。IDE 还将警告你有关 Flux 和 Mono 方法的 lambda 运算符可能返回 null 的信息。最重要的是,有一个专用的 Reactor 调试模式,可提供有关响应栈帧和中间变量值的有用视图。

4.7 MongoDB 支持

IntelliJ IDEA 2019.3 附带了期待已久的 MongoDB 支持。添加 MongoDB 数据源后,请在数据库浏览器中查看集合和字段,运行查询并查看查询结果。我们将在将来的版本中扩展对 MongoDB 的支持。

5. 修复了什么

  • IDE 现在可以检测到使用 Homebrew 安装的 Gradle 目录。

  • 用户界面得到了改进,因此现在可以更轻松地手动设置 Gradle 主目录。

  • IntelliJ IDEA 现在支持在 Linux 上通过 KWallet 存储密码。

  • 当用户使用 JavaFX 项目时,IDE 可以在 ‘Scene Builder’ 选项卡中显示带有嵌入式 Scene Builder 的 FXML 文件。

  • 当无法访问 SVN 服务器时,SVN 的“需要身份验证”对话框不再弹出。

  • 我们已经修复了与使用 rebase 执行'git update'操作有关的问题。

  • 现在,在索引 Git 日志时,IDE 将显示一个进度条。

  • 现在,你可以选择是否要在文件历史记录窗口和 VCS 批注中查看更改的创建时间或提交时间。

END

Java面试题专栏

【30期】说一下HashMap的实现原理?

【29期】Java集合框架 10 连问,你有被问过吗?

【28期】ZooKeeper面试那些事儿

【27期】Dubbo面试八连问,这些你都能答上来吗?

【26期】如何判断一个对象是否存活?(或者GC对象的判定方法)?

【25期】这三道常见的面试题,你有被问过吗?

【24期】请你谈谈单例模式的优缺点,注意事项,使用场景

【23期】请你谈谈关于IO同步、异步、阻塞、非阻塞的区别

【22期】为什么需要消息队列?使用消息队列有什么好处?

【21期】你能说说Java中Comparable和Comparator的区别吗


欢迎长按下图关注公众号后端技术精选