前言
千呼万唤始出来。自从JetBrains在今年7月24日发布了IDEA 2019.2版本后,从9月份开始我便一直在关注此版本正式版的发布。JetBrains公司在9月中旬就对外公布了下一个主要版本 2019.3的Roadmap,而且马上就发布了第一个早期访问版本( EAP 版本),因此我一直对它保持着关注。
2017年9月我首次接触使用IDEA,从最初的觉得别扭,到现在的回不去STS了,这就是IntelliJ产品的魅力~
IntelliJ IDEA 2019.3版本的Roadmap承诺的是会在11月份完成RELEASE,还好它抓住了11月份的尾巴,在北京时间2019.11.28深夜发布了这个2019.3正式版本。
(说明:PyCharm的2019.3版本截止到发文的今天还未正式RELEASE,我预估应该不会食言会赶在11月份结束之前发布,可能就是今天晚上也说不定~)
先睹为快,一张最新版的IDEA启动图送给大家:
what’s new(新特性)
2019.3版本的核心关键词是:Performance And Usability(性能和可用性)。
它并没有带来特别亮眼的新特性,而提供了主要的性能和可用性改进(有点静心修炼内功的感觉有木有),包括更快的启动速度,更容易安装主题和动态插件(无需重启),增强的VCS工作流,并增加了对微服务框架、MongoDB等的支持…
下面针对于这些新特性,我们来具体的聊一聊
性能(Performance)
启动时间更快
这是该版本最吸引人的新特性之一。官方给出了一张和之前版本启动速度的对比图如下:
可见不管是在Mac、Linux还是在windows上新版本的启动速度都是占优的。
虽然提升了只有1s左右,但足以看到JetBrains程序员追求极致的心,这不就是我们做技术该有的样子吗?
大型Gradle项目方面
这个性能优化,主要表现在降低导入大型Gradle项目时的峰值内存消耗。同样的官方给出了对比图如下:
响应式UI方面
该版本在UI层面修复了非常非常多的问题(1600+项之多,但基本对用户无感知)。另外还修复了在Maven项目中编辑POM.xml文件的问题,以及其它问题归类如下:
- 在Maven项目中,完成建议现在可以毫无延迟地显示
- 在大型项目中更快地处理VCS状态更新(如git状态)
- 更好地处理被忽略的文件(如.gitignore)
- 更快地呈现项目树
- 处理大量编辑器或调试器选项卡时更好的性能以及更快的速度
Java语言方面
Java类型推断带来了很多改进,它不仅修复了各种编辑器冻结(假死),而且还加快了长方法调用链的Java类型推断。当应用于多行时,“连接行”操作的速度更快。您还将体验Java代码的加速高亮显示…
Kotlin语言方面
此版本内置了Kotlin 1.3.60版本支持,从而提供了更好的性能表现。
可用性(Usability)
动态插件/主题支持
从此版本开始,你可以在不重启IDE的情况下加载和卸载主题和插件。
说明:此特性并不是所有的插件都支持(不需要重启),在未来的版本中把这种方法扩展到大多数插件中,使插件管理尽可能的简单
但主题方面:你可以所见即所得了
更明显的滚动条显示
你是否吐槽过IDEA的滚动条颜色也太浅了,滚动条看不不太清楚,着实影响了使用。如果你和我一样有过这种困惑,那这个版本就可以拯救你了。你只需要这么设置(默认是不开启的哦)即可:Settings/Preferences | Appearance & Behavior | Appearance,然后勾选上"Use contrast scrollbars"即可,前后的对比图如下:
更平滑的鼠标滚动体验
这个改进看起来很小,但实际非常有价值:它能让你滚动鼠标更加的平滑,可能比德芙还丝滑~
自动配置Maven项目
在之前版本,很多时候我们首次导入一个Maven项目进来的时候,需要手动配置一些东西(比如模块、子模块、maven设置等)。这个版本很暖心:让这一切变为了自动挡
更好的意图猜测上下文
我觉得IDEA相比eclipse最亮眼的一点便是它的上下文机制:这让你觉得IDEA是懂你意图的(虽然有时候也猜错),而不像eclipse一样它是固化的。这不,这次又对它进行了优化,旨在能让IDEA更加的懂你~
对Java13的特性提供了更好的支持
比如对它的"""三引号字符串提供了更好的支持等等…
支持了更多的模版语言
形如ex-Jade,Handlebars,EJS,Slim等模版语言
Field Call Hierarchy字段调用树
这个是新增的支持,我个人非常喜欢。在IDEA中,我们知道可以很方便的查看方法、类的调用树,但当要查看一个字段的调用树时,这将变得十分不方便(之前版本不支持)。
之前版本我们只能知道某个属性它被哪些地方使用到了(Find Usages),形如下面这样:
这样其实仅仅只是找出了使用处,但层次结构并看不出来(调用栈)。而此版本新增了一个能力:能看到属性被调用的地方的层次结构,形如这样:
该功能名称是:Call Hierarchy,默认快捷键是Ctrl + Alt + H