K2 编译器热点:2025.1 中的高采用率、更少的 Bug 和重大改进


IntelliJ IDEA 2025.1 默认采用 K2 编译器,本文将概要介绍 K2 编译器的当前状态,分享其采用指标,重点介绍 2025.1 中的改进,并预告下一步的计划。

以下内容来自:K2 模式热点:2025.1 中的高采用率、更少的 Bug 和重大改进


我们建议您更新到最新的 IntelliJ IDEA 版本,享受最佳的 K2 模式体验。

采用

目前采用 K2 模式的用户数量已经非常高,并且还在持续增长。 在 IntelliJ IDEA 2025.1 用户中,95% 的 Ultimate 开发者和 9% 的 Community Edition 开发者使用 K2 模式。

大多数用户都会在新版本发布后的几个月内更新 IDE,因此我们也跟踪了 2024.3 和 2025.1 版本的综合使用情况。 即使算上 2024.3 版的用户,K2 模式的采用率也已超过 76%,并且这一数字每周都在稳步增长。

感谢您的反馈

您的反馈是我们所有改进和增强的驱动力。

我们通过YouTrack 问题、Slack 消息、讨论帖以及各种会议和聚会上的无数次面对面交流获得了宝贵的意见和建议,这些都直接影响了 Kotlin 支持的发展。

我们的专属支持团队每天都会审查和监控 YouTrack 报告,确保您提出的问题成功传达和解决。

您的反馈不仅能帮助我们解决问题,还将帮助我们塑造 Kotlin 工具的未来。 感谢您持续分享!

Bug 报告

这个最新版本发布后的前 3-4 周内提交的 bug 报告数量与 2024.3 版本发布后的数量相当。

其他反馈渠道也显示负面提及数量显著下降,总体情绪比预期更积极。

一些用户在 2024.3 和 2024.2 版本中使用 K2 模式。 我们强烈建议您更新到最新版本的 IntelliJ IDEA,因为 2025.1 版本在质量和功能完整性方面都为 K2 模式带来了巨大的改进。

我们来看看哪些内容有所更新。

2025.1 中的修正和改进:

  • 稳定性得到提高,意味着崩溃和冻结更少。
  • 超过 100 项检查和意图已得到改进并从 K1 模式迁移到 K2 模式。
  • 临时文件和脚本现在获得了更好的支持 (.kts)。
  • 错误报告中的误报(例如_Constructor expected_(应为构造函数)和_Unknown symbol_(未知符号))已被修正。
  • 应为String?但实际为String类型的错误不再错误显示。
  • 未使用的函数或属性现在获得一项检查。
  • .serializer()获得高亮显示支持。
  • Create member from usage(从用法创建成员)快速修复现在可以按预期工作。
  • 频繁重新索引触发器已减少。
  • 项目切换缓存问题已解决。
  • 所有外部和内部主要插件现在都支持 K2 模式。
  • JetBrains Academy 集成功能齐全。
  • 多种 Spring 支持改进已经实现。
  • K2 模式调试器已与其 K1 模式对等功能达到同等水平。

我们还改进了 K2 模式的许多其他方面。 查看我们的版本说明获取完整列表。

Move(移动)重构

在 K2 模式中,我们重写了_Move_(移动)重构的运作方式。 现在,它更加可靠和可预测。 边缘情况会得到正确处理,生成的代码也更加清晰和准确。

2025.2 最新变化:

  • 常规代码补全改进。
  • 类型匹配智能补全支持。
  • Spring 支持与 K1 模式相当。
  • 重构,例如针对文件和函数的_Convert Enum to Sealed Class_(将枚举转换为密封类)、Extract Interface(提取接口)、Create test / Navigate to test(创建测试/导航到测试)、Rearrange Code(重新排列代码)。
  • 针对回归高亮显示的修正,包括 DSL、注解和 Kotlin 特定语法的一致行为。
  • 针对_Constructor expected_(应为构造函数)和_Unknown symbol_(未知符号)等误报错误的修正。
  • Kotlin 脚本更可靠的执行,包括独立文件和Gradle .kts文件。
  • 脚本定义的正确加载和项目特定符号的正确解析。
  • 对使用@DslMarker注解的函数的正确识别和高亮显示。
  • 所有项目配置中更可靠的_Extract Interface_(提取接口)重构。

还有更多变化,敬请期待!

协程检查

协程是我们最受欢迎也最常被提及的功能之一,但要正确使用可能并不简单,特别是对于新手来说。

我们正在设法使它们更易使用,并且已经引入不断增加的协程检查集。 它们可以捕捉常见问题、提供实用建议,并指导您更顺畅、更自信地编写正确且惯用的协程代码。 以下是我们通过这一举措解决的一些工单:

  • 关于在挂起函数中调用runBlocking的警告。
  • 尽可能将 _kotlin.coroutine.coroutineContext_ 访问替换为 _kotlinx.coroutines.currentCoroutineContext_ 调用的检查。
  • 未使用来自_kotlin.coroutines_的流时的检查。
  • 在 ‘Deferred’ 对象集合上替换 ‘map { it.await() }’ with ‘awaitAll()’ 的检查。
  • 在 ‘Job’ 对象集合上替换 ‘forEach { it.join() }’ with ‘joinAll()’ 的检查。

对 Kotlin 2.2 功能预览的支持

Kotlin 2.2 将带来多种在 K2 模式下具有 IDE 支持的精彩新功能,包括:

  • when、多美元内插以及非局部_break_和_continue_中的保护条件。
  • 嵌套类型别名。
  • 对 Kotlin 中注解的使用场所默认值的改进。
  • 上下文形参(不稳定)。
  • 将具有内联类的函数暴露给 Java(不稳定)。
  • 上下文相关解析的原型(不稳定)。

性能

2025.1 版本带来了显著的性能改进,2025.2 则在此基础上带来了进一步改进。

在 2025.1 中,高亮显示和_Find Usages_(查找用法)等操作变得更快、更灵敏。 为了准备 2025.2 版本,我们还提升了补全速度和内存使用情况,使日常编辑更加顺畅和高效。

这些更新是我们不断使 K2 模式更加强大的一部分。 我们将继续跟踪这些更改的影响,并在今年晚些时候分享更详细的指标。


相關推薦

2025-05-27

) 上下文参数(Context Parameters)简化作用域函数 编译器升级 K2 编译器成为 IntelliJ IDEA 2025.1 默认配置 大型项目编译时间减少约 40%   AI 生态 开源Koog AI Agent 框架:支持用 Kotlin 构建高可靠性 AI 应用 val a

2025-04-18

IntelliJ IDEA 2025.1 现已发布。此版本的亮点包括全面支持 Java 24、引入 Kotlin Notebook 以及默认启用的 K2 模式。JetBrains AI 也进行了重大升级,将 AI Assistant 和 Junie 整合到一个订阅中。调试支持也更加强大,新增了暂停和恢复 watch evalu

2023-01-09

次要版本,更快地推出更多功能。 这也意味着 3.3 版本中的内容将进行调整,现处于实验状态的 Suspense 和 Reactivity Transform 仍需要进一步讨论,“且它们不应该阻碍其他更直接的功能的实现”。目前,3.3 的目标是将不需

2025-03-21

Kali Linux 发布了2025年的首个版本 2025.1a,本次更新新增了一个工具,并对桌面和主题进行了调整。 Kali Linux 是一款专为网络安全专业人士和道德黑客设计的操作系统,主要用于红队演练、渗透测试、安全审计以及网络防御研究

2023-05-15

uby 3.3 最重大的改动是添加了一个名为 RJIT 的新纯 Ruby JIT 编译器,使用 Lrama 作为解析器生成器,并带来许多性能改进。 RJIT Ruby 3.3.0-preview1 引入纯 Ruby JIT 编译器 RJIT 替换了 MJIT。与 MJIT 不同,RJIT在运行时不需要 C 编译器。 有

2023-04-16

根据 KotlinConf 2023 的消息,Kotlin 2.0 和 Kotlin K2 编译器即将发布。 Kotlin 2.0  从 Kotlin 1.8.20 开始,已经可以通过常规 Kotlin 语言版本标志( -language-version)启用 Kotlin 2.0 的预览。 Kotlin 2.0 发布后,将提供几个备受期待的功

2025-04-19

。 公告称,为了让每个人都能使用 IDE 内的 AI 功能,从 2025.1 版本开始,所有的 IDE 许可证中都包含了 JetBrains AI free 套餐。AI Free 套餐为用户提供无限代码补全和本地 AI 模型访问权限,以及基于积分的云端 AI 辅助功能和编

2022-07-27

Kotlin。 IntelliJ IDEA 原生构建器使用项目中配置的 Kotlin 编译器版本 从 v2022.2 开始,捆绑的 Kotlin 编译器不再与 IntelliJ IDEA 原生构建器搭配使用。本地和 CI 构建都将通过项目设置中声明的 Kotlin 编译器版本运行。这一更改消除了

2023-02-03

图。 最新的路线图主要集中在以下这几项工作: K2 编译器:针对 Kotlin 编译器的重写,在速度、并行性和统一性上进行优化,还会带来许多预期的语言功能。 基于 K2 的 IntelliJ 插件:主要是更快的代码完成、突出显示和

2023-03-13

位置的记忆方式更加强大。由于这一改变,你应该会遇到更少的窗口尺寸和位置错误的问题,特别是在更换屏幕时。 改进了获取新附加组件时的 Get New 系统,当有更多可用的东西而它们不适合在视图中时,让你选择你想要的东

2023-03-31

AMD-Xilinx 最近开源了他们基于 LLVM 的 Nanotube 编译器。根据介绍,AMD-Xilinx Nanotube 编译器采用 eBPF XDP C 代码,并构建在 LLVM 编译器堆栈之上,然后能够在 HLS C++ 中生成一个可在 Xilinx FPGA 上运行的数据包处理管道。 Nanotube 是编译

2022-09-09

UI/UX 的可用性 JPEG 预览缩略图创建得更快,同时也使用更少的内存。EXR 预览缩略图图像也应消耗更少的RAM 几何图形节点的各种性能改进 改进了导入具有大量对象的 USD/Alembic/OBJ 文件的性能 一个新的实验性 STL 导入器是用

2025-06-14

以及增强云原生就绪能力。此次发布在工具链、运行时、编译器和标准库等多个方面引入了一系列增强功能,旨在使 Go 应用程序更快、更高效,并更易于开发和部署,尤其是在容器化环境中。它还凸显了对安全性的承诺以及语

2023-01-14

存安全错误)的方式来满足两个规则,以加快开发速度(更少的代码编写,更少的设计文档,更少的安全审查),并提高 Chrome 的安全性(增加没有内存安全错误的代码行数,降低代码的错误密度)。他们认为可以使用第三