Kotlin
A concise multiplatform language developed by JetBrains
Kotlin 的 IDE 插件 2021.1 发布: 性能的提升以及更好的重构支持
伴随着 IntelliJ IDEA 最新版本 2021.1 的发布,Kotlin 插件也迎来了进一步的优化和提升。 这次更新主要聚焦于开发体验的改善,包括更高效的代码补全和高亮,对更完善的函数签名修改支持,以及对属性计算的增强而带来的调试体验提升等等。
详细更新内容如下:
- 更高效的代码补全和高亮
- 在 Variables 视图中直接计算有自定义 getter 的属性值
- 更完善的函数签名修改的重构支持
- Code completion for type arguments
- 基于 Kotlin 代码生成类图
- 其他优化和提升
自动升级到该版本
您可以通过配置 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 修复和功能优化。
以下是最重要的一些优化点:
- 针对修改签名后可能出现的错误结果提供了更加充分的检测能力。
- 修复继承重构的问题,包括跨语言的重构。
- 针对属性处理部分的 UX 提升。
- 新增对默认参数的支持。
- 修正对反引号的处理(译者注:旧版本的签名修改不识别形如
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