Kotlin 的 IDE 插件 2021.1 发布: 性能的提升以及更好的重构支持

2021-04-26 12:09:04 浏览数 (1)

伴随着 IntelliJ IDEA 最新版本 2021.1 的发布,Kotlin 插件也迎来了进一步的优化和提升。这次更新主要聚焦于开发体验的改善,包括更高效的代码补全和高亮,对更完善的函数签名修改支持,以及对属性计算的增强而带来的调试体验提升等等。

详细更新内容如下(阅读原文可查看详情):

1、更高效的代码补全和高亮

2、在 Variables 视图中直接计算有自定义 getter 的属性值

3、更完善的函数签名修改的重构支持

4、Code completion for type arguments

5、基于 Kotlin 代码生成类图

6、其他优化和提升

自动升级到该版本

您可以通过配置 IntelliJ IDEA 实现版本的自动升级。

如果您还不是 IntelliJ IDEA 的用户,您可以点击下载最新版本,其中集成了最新的 Kotlin 插件。

体验高效的代码补全和高亮

有时候,代码的编写并不像想象中的有趣,特别是在等待 IDE 缓慢的代码高亮和代码补全的过程当中。我们的目标就是让代码高亮和补全丝般顺滑,让开发者不再为此着急上火。

新版的 Kotlin 插件对此做出了极大的提升和改善。

从我们的测试结果来看,代码高亮效率提升了 25%,代码补全效率则提升了 50% 以上,在这一点上 Kotlin 已经与追平 Java 十分接近了。

需要指出的是,这些数据仅基于我们的测试结果, 实际开发当中的体验提升可能不如测试数据那么显著,但也足以让您能够切身体会到这一点了。

新插件当中的 Kotlin 代码高亮

在下图中您可以看到 2020.3 和 2021.1 新旧两个版本的 Kotlin 插件在代码高亮上的性能差异。图中的数据基于对复杂 Kotlin 文件当中的代码高亮的基准测试。

新插件当中的 Kotlin 代码补全

以下为 2020.3 和 2021.1 新旧两个版本的 Kotlin 插件的代码补全性能对比。同样,这些数据基于对复杂 Kotlin 文件当中的代码补全的基准测试。

更完善的函数签名重构支持

如果您曾体验过旧版本的 Kotlin 插件的函数签名修改功能,您一定遇到过各种各样的问题和限制。而 IDE 对于这些问题的说明,多数情况下也是“讳莫如深”。

新版 Kotlin 插件针对函数签名修改特性做出了共计超过 40 项 bug 修复和功能优化。

以下是最重要的一些优化点:

1、针对修改签名后可能出现的错误结果提供了更加充分的检测能力。

2、修复继承重构的问题,包括跨语言的重构。

3、针对属性处理部分的 UX 提升。

4、新增对默认参数的支持。

5、修正对反引号的处理(译者注:旧版本的签名修改不识别形如 X-ray 这样用反引号引起来的函数名,而这在 Kotlin 当中是合法的 )。

在变量视图中直接计算自定义 getter 的值

研究表明,想要提升 Kotlin 的整体开发体验,就需要极大的优化 Kotlin 的调试体验,我们也已经启动了一系列优化改善计划来做到这一点。

在这次版本更新中,我们发布了一个虽然小但重要的特性,那就是在Variables 视图当中计算自定义属性的值。

之前,在调试会话当中,您只能看到没有自定义 getter 的属性的值,这些属性都有一个 幕后字段(backing field)。有自定义 getter 的属性不会出现,因为它们被当做了 JVM 上的方法。在 Kotlin 插件的 2021.1 版本当中,您可以看到所有这样的属性,并且只需要点击属性名后面的 get() 就可以按需计算它们的值。

例如,当调试以下代码时,您可以执行 get() 方法来检查 versionString 的值:

在 Debug 窗口当中,您可以看到这些属性的值:

我们非常期待您能够体验一下这个功能并对此发表您宝贵的意见。您可以在此进行反馈,也可以直接评论本文。

使用支持泛型参数的代码补全

新版 Kotlin 插件可以支持类型参数的自动补全。而之前,您只能手动输入这些类型参数而无法得到 IDE 的帮助。

代码补全可以在泛型函数之后提示函数和属性,并在需要的时候补全泛型参数。当您在提示列表当中选择了这样的一个函数,IDE 会在前面的代码中自动添加相应的泛型参数。

例如在下面的代码中,IDE 自动添加了<String>()类型:

当您应用了 IDE 的提示以后,您将得到以下代码:

使用类图来检查 Kotlin 的代码结构

新版发布以后,您可以使用 UML 类图来检查 Kotlin 的代码结构。想要构建一个类图,只需要在 Project 视图中右键选择 Diagrams | Show Diagram… | Kotlin Classes。

其他 IDE 相关的优化提升

由于 Kotlin 插件和 IntelliJ 平台的代码迁移到了同一个代码库并且同步发布,您将同样可以体验到来自以下其他方面的 Kotlin 开发体验的提升:

通过 Gradle run 使用在 IntelliJ IDEA 2020.3 发布的内存分析器。

收到协程调用中不合理的线程阻塞的警告。

当使用三个双引号和字符串拼接时,规避语言注入问题。

另请参见(阅读原文即可查询)

What’s new in Kotlin plugin 2021.1

What’s new in IntelliJ IDEA 2021.1 – docs and video

特别感谢由来自 Kotlin 社区的 Benny Huo 为本篇博文提供中文译文。

阅读原文了解更多

0 人点赞