IntelliJ IDEA 2024.2 最新变化

借助 IntelliJ IDEA 2024.2 Ultimate,您可以直接在 IDE 中运行 Spring Data JPA 方法进行即时仓库查询验证。 它还通过提供内联描述和高级自动补全帮助简化 cron 表达式的管理,并将 HTTP 客户端升级为使用 GraalJS 执行引擎。 此外,此版本还可以在项目索引编制期间启用关键功能,帮助增强 IntelliJ IDEA 的整体启动效率,它集成了 K2 模式(目前处于 Beta 阶段),进一步提升 IDE 针对 Kotlin 的性能和稳定性及其对语言功能的支持。

关键亮点

改进的 Spring Data JPA 支持
Ultimate

我们添加了在 IDE 中运行 Spring Data JPA 方法的功能,持续改进 IntelliJ IDEA 的 Spring 框架支持。 这项新功能允许您在不运行应用程序和分析日志文件的情况下查看方法将生成哪个查询。 现在,您可以使用装订区域图标直接在 JPA 控制台中执行任何仓库方法。

改进的 cron 表达式支持
Ultimate

在代码中处理 cron 表达式比以往更加简单。 使用 Spring、Quarkus 或 Micronaut 实现定时服务时,您可以通过紧邻的描述轻松理解 cron 表达式。 此外,自动补全功能提供了您可以立即添加和调整的预填充示例,不必从头开始编写 cron 表达式。

GraalJS 作为 HTTP 客户端的执行引擎
Ultimate

我们已将 HTTP 客户端中使用的 JavaScript 执行引擎升级为 GraalJS。 这让您可以在使用 IntelliJ IDEA 的 HTTP 客户端测试端点以及在 .http 文件中使用 JavaScript 处理结果时使用所有 GraalJS 功能,包括对 ECMAScript 2023 规范的完全支持。

更快开始编码

在 2024.2 版本中,我们增强了启动体验,让您能够更快开始编码。 升级使 IDE 可以在不完整的项目模型下运行,并允许在索引编制期间访问关键功能,包括代码高亮显示、代码补全、意图操作、测试启动、有效装订区域标记、Lombok 支持等,从而减少等待时间。

K2 模式下针对 Kotlin 改进的稳定性和性能
Beta

IntelliJ IDEA 2024.2 改进了 K2 模式,这种新的 Kotlin 支持机制为未来的 Kotlin 语言功能奠定了基础,也增强了 IDE 的稳定性和性能。 在 2024.2 版本中,K2 模式现在支持 gradle.kts 脚本、Kotlin Multiplatform (KMP) 项目、所有主要重构、代码高亮显示、调试等。 基准测试表明,K2 模式使 IntelliJ IDEA Ultimate 源库上的代码高亮显示性能几乎翻了一番。 要将其激活,请转到 Settings/Preferences | Languages & Frameworks | Kotlin(设置/偏好设置 | 语言和框架 | Kotlin)。 了解详情.

用户体验

改进的全行代码补全

在 2024.2 版本中,我们使接受全行代码补全建议的流程更加直观和精确。 内联代码补全建议现在包含代码高亮显示,新的快捷键可以让您从较长的建议中接受单个单词或整个行。 我们还优化了将接受的更改集成到代码中的方式,消除了格式设置和相关问题。

新 UI 成为所有用户的默认选项

在 IntelliJ IDEA 2024.2 中,新 UI 现在成为所有用户的默认选项,经典 UI 则作为插件提供。 新 UI 简洁而现代,提供更大、更易用的控件、一致的调色盘、明亮清晰的图标、增强的对比度和更好的强调色。 新 UI 的采用率很高,并且我们已经根据反馈修正了主要问题,因此我们相信它已经为所有人做好了准备。 了解详情

Search Everywhere(随处搜索)中的预览选项

Search Everywhere(随处搜索)对话框增加了一个选项,用于预览您正在搜索的代码库元素。 通过对话框工具栏上的 Preview(预览)图标启用此功能后,预览窗格将出现在搜索结果下方,提供更多上下文并让您更轻松地浏览项目。

代理设置自动检测默认为新用户启用

IntelliJ IDEA 现在会默认自动检测并使用您的计算机上配置的系统代理设置,促进与外部资源和服务的无缝交互。

Linux 上更新的窗口控件

在 Linux 上,IntelliJ IDEA 此前将窗口控件置于 IDE 的右侧。 现在,它会自动调整控件位置,以匹配您的 Linux 桌面配置中指定的窗口控件设置。 这个小但重要的更改可以让您保持适合个人偏好的布局。 此外,我们重新设计了窗口控件按钮,提供更接近您的操作系统的外观。

改进的 Customize Main Toolbar(自定义主工具栏)对话框

我们重新设计了 Customize Main Toolbar(自定义主工具栏)对话框中 UI 元素的布局和行为,使其更加直观有序。 现在,在主工具栏中搜索、添加和删除操作都更加简单。

AI Assistant

JetBrains AI Assistant 2024.2 对云代码补全引入了重大增强,提供更准确、更快速的建议。 UX 经过重做,可以将 AI 代码补全功能更好地集成到 IDE 工作流中,并获得多项改进,包括建议代码中的语法高亮显示和代码建议的增量接受。

新功能包括 Terminal(终端)工具窗口中的 AI 集成和 AI 辅助 VCS 冲突解决。 此外,用户现在可以为文档生成和单元测试创​​建自定义提示。

这篇博文中了解这些和其他增强。

Java 和 Kotlin

增强的日志管理

IntelliJ IDEA 2024.2 为 Java 和 Kotlin 引入了增强的日志管理。 新功能包括字符串字面量和实参解析的高亮显示,让您可以从占位符无缝导航到对应实参。 更新后的检查现在可以更好地处理不匹配的记录器形参数量,建议将 System.out.println 语句转换为记录器调用,并提供快速修复为记录器调用添加保护。 了解详情

适用于 Java 的新增 Expression is compared to itself(表达式与自身比较)检查

新检查会报告表达式与自身而不是另一个表达式比较的情况。 虽然这种比较有时是有意为之,但通常是疏忽所致。 此检查可以帮助您识别和解决这些潜在的意外比较,提高代码的准确性和可靠性。

Java 的 Change Signature(更改签名)重构嵌入提示

为了使 Change Signature(更改签名)重构更加易用和直观,我们在修改的代码元素附近添加了一个新的嵌入提示。 点击并确认更改时,IDE 会自动更新整个代码库中的所有相关方法引用。 这样可以确保一致并降低错误风险,简化重构流程。

Scala

适用于 Scala 的更出色的代码高亮显示

IntelliJ IDEA 2024.2 对错误和语法高亮显示引入了多项改进。 现在,它将形参子句中定义的类字段高亮显示为字段而不是形参。 命名实参现在以不同的颜色高亮显示,在代码中更易识别。 Regex("...") 中正则表达式语法的高亮显示与 "...".r 中正则表达式语法的相同。 我们修正了重构后或无法解析符号类型导致有效代码以红色高亮显示的问题。 在许多情况下,语义高亮显示将在您输入时应用。 此外,修正错误时,IDE 现在响应更快,修正后会立即移除红色代码。

更出色的 Scala 3 支持

新版本对 Scala 3 支持引入了多项改进。 与更少大括号语法一起使用时,for 表达式现在始终都能被正确处理。 对 export 子句和扩展方法的支持已得到改进。 此外,IDE 现在可以正确处理构造函数注解,导入建议将包含枚举 case。

更出色的代码补全

在 Scala 3 中,IDE 现在可以自动填写方法的所有命名实参并自动补全联合体类型的字面量值。 现在,只要需要枚举类型,枚举 case 就会出现在建议中。 此功能适用于 Scala 3 枚举和联合体类型、Scala 2 ADT 和枚举以及 Java 枚举,提供更有意义的建议来简化您的编码体验。

其他改进

现在,StringBuilder 的内容在调试器中显示为字符串。 IntelliJ IDEA 还提供了 Scala 入门提示。 导入 sbt 项目时,将显示库下载进度。 此外,Scala 支持现在包括 Grazie 的功能,它在 Scala 注释中提供高级拼写和语法检查。

改进的基于编译器的高亮显示

我们增强了基于编译器的错误高亮显示的性能。 文件被修改后,不会再提供过时的错误高亮显示信息。 此外,IntelliJ IDEA 现在支持 Scala 编译器诊断,使其可以作为常规快速修复,以便于应用。

代码编辑器

Markdown 文件中的数学语法支持

IntelliJ IDEA 现在可以在 Markdown 文件中原生渲染数学表达式。 处理 Markdown 时,您可以使用 $ 插入内联数学表达式,使用 $$ 插入包含数学内容的代码块。

语言感知粘性行

现在,您可以选择要为其显示粘性行的语言。 您可以在 Settings/Preferences | Editor | General | Sticky Lines(设置/偏好设置 | 编辑器 | 常规 | 粘性行)中根据自己的偏好定制功能,或者在编辑器中右键点击粘性行调用上下文菜单。

分析器

在分析器中专注于项目方法
Ultimate

IntelliJ IDEA 的内置分析器已经升级,有助于简化性能瓶颈调查。 现在,IntelliJ IDEA 在分析器中淡出和收起库调用来进一步强调您的代码。 这可以确保您将数据专注于项目中对应用程序性能影响最大的调用上,筛选掉不需要您注意的方法。 如需库调用的详细视图,您可以展开隐藏的调用以显示整个调用序列和对应执行时间。 点击调用旁边的超链接或 + 图标即可进一步探索。

运行/调试

Run(运行)工具窗口中的性能图表

为了使性能分析更快、更高效,我们在 Run(运行)工具窗口中实现了新的 Performance(性能)标签页。 新的标签页提供实时 CPU 和内存图表,并允许您捕获代码的执行时间并直接在编辑器中查看来查明性能瓶颈。 此外,您还可以捕获内存快照来检查对象并找出内存泄漏的根本原因。

增强的 Kotlin 调试体验

IntelliJ IDEA 2024.2 为 Kotlin 调试体验带来了重大改进。 您现在可以使用 Step Over(步过)来迭代 forEach 循环并进入内联函数 lambda,无需跳过重要代码。 您不再需要记住对内联函数使用 Step Into(步入),这有助于确保您不会错过代码的关键部分。 现在,您可以逐步执行 forEachletfilter 内联函数,就像逐步执行常规循环和条件一样。

JSON、XML 和其他格式的字符串变量可视化器

现在,调试和浏览具有复杂数据格式的长字符串变量变得容易多了。 更新后的调试器为具有以 JSON、XML、HTML、JWT 和 URL 编码的字符串的字符串变量提供了格式正确的可视化效果。 只需点击变量旁边的 View(查看)超链接,相关的可视化器便会根据变量的内容自动选择。

当前功能分支中更改的测试覆盖率

IntelliJ IDEA 2024.2 进一步提高了您在本地快速检查和改进测试覆盖率的能力,无需执行使用 CI/CD 管道的缓慢流程。 Coverage(覆盖率)工具窗口现在仅显示当前功能分支中更改的类,这样一来,您无需浏览整个项目状态即可检查最近更改的测试覆盖率。 要检查整个项目的测试覆盖率并查看所有类,请禁用 Show Only Modified Classes(仅显示修改的类)选项。

构建工具

改进的 Gradle 构建脚本体验

IntelliJ IDEA 2024.2 为 Gradle 构建脚本提供了新的导航和高亮显示功能。 首先,IDE 现在为构建脚本中声明的 Gradle 插件提供了流畅、准确的导航。 此外,我们还实现了版本目录文件和 libs.versions.toml 文件中的构建脚本之间的导航,以及直接从装订区域运行已注册任务的选项。

增量 Maven 项目重新同步

我们加快了 Maven 项目的重新同步工作流。 初始完全同步之后,IDE 现在会检测项目特定部分的更改,并仅重新同步这些部分而不是整个项目。

使构建系统缓存失效的操作

您现在可以清除构建系统缓存,从而立即解决与 Maven、Gradle 或 sbt 项目的结构相关的问题,例如由不正确的数据导入导致的问题。 您可以通过 File | Cache Recovery | Invalidate Build System Caches and Re-sync(文件 | 缓存恢复 | 使构建系统缓存失效并重新同步)访问此操作。

版本控制系统

import 语句冲突解决

现在,您可以轻松识别和解决 Java 和 Kotlin 的 import 块中的冲突。 在 Merge(合并)窗口中,点击齿轮符号并选择 Resolve Conflicts in Import Statements(解决 import 语句中的冲突)。 此外,您可以在 Settings/Preferences | Tools | Diff & Merge(设置/偏好设置 | 工具 | 差异与合并)中将 IDE 设为自动解决 import 语句中的冲突。

Version Control(版本控制)微件中的标签

我们在 Version Control(版本控制)微件中为标签提供了一个专属节点,使其更易查看。 节点默认显示,如果您想将其隐藏,只需点击齿轮图标并取消选中 Show Tags(显示标签)选项。

改进的 Log(日志)工具窗口用户体验

所有与 Log(日志)工具窗口相关的设置都已合并到一个专属设置页面中,您可以通过 Settings/Preferences | Version Control | Log(设置/偏好设置 | 版本控制 | 日志)或 Log(日志)工具窗口工具栏上的新增下拉菜单访问。 此外,您现在可以将 Git 日志作为编辑器中的标签页打开,从而提供更多的工作空间,并更轻松地浏览提交列表和相关详细信息。 此操作也可以通过 Log(日志)工具窗口工具栏中的下拉菜单执行。

增强的本地历史记录用户体验

我们对 Local History(本地历史记录)对话框 UI 进行了现代化改进。 此外,访问目录时,对话框现在会在更改列表旁边显示差异视图,使其更易理解。 为了简化复杂项目中的更改检查,我们使 Local History(本地历史记录)操作可同时用于多个文件或目录。 在 Project(项目)工具窗口中,选择多个文件或文件夹,然后选择 Local History | Show History(本地历史记录 | 显示历史记录),查看包含您选择内容的更改历史记录的弹出窗口。

Log(日志)标签页中改进的提交图

我们优化了 Git 工具窗口 Log(日志)标签页中提交图的分支线的颜色编码和布局。 重要的分支行现在始终位于图表左侧,并维持其指定颜色,更易识别和跟踪。

Graph Options(图选项)中新的 First Parent(第一个父项)和 No Merges(无合并)

我们添加了新的 Git 选项来简化查看分支历史记录的操作。 使用 First Parent(第一个父项)选项隐藏合并中的个别提交来专注于主线更改。 或者,您可以使用 No Merges(无合并)选项完全筛选掉合并提交。 现在,这两个选项都可以在 Git 工具窗口的 Graph Options(图选项)图标下获取,使分支中的更改更易跟踪。

终端

新终端
Beta

2024.2 版中的新终端引入了一些可以增强功能和用户体验的更新。 主要改进包括 AI 赋能的命令生成,允许您用自然语言描述命令,并让 AI 为您创建该命令。 此外,您现在可以在单行或双行设置之间进行选择,以更好地利用空间或提高可读性,并且现在支持自定义 shell 提示设置。 最后,针对 Git 别名与分支、npm 软件包、PHP 命令和 Ruby CLI 增强了命令补全。

在这篇博文中了解详情。

框架和技术

Micronaut 和 Quarkus Bean 的自动补全
Ultimate

IntelliJ IDEA Ultimate 现在为 Quarkus 和 Micronaut 应用程序提供 Bean 自动补全和注入。 需要将 Bean 注入到代码中时,输入其名称并从代码补全弹出窗口中选择即可。 IDE 将根据您的代码样式自动添加带有 @Inject 注解的构造函数形参或字段。

扩展的 JPA 支持
Ultimate

我们通过多项新检查扩展了 IntelliJ IDEA Ultimate 的 JPA 支持。 这些增强使 IDE 能够检测和修正在将 Lombok 注解与 JPA 实体一起使用时可能导致性能下降或运行时错误的问题。 IDE 还可以识别 Spring Data JPA 仓库中缺少的形参,检查是否所有关联都被正确标记,并检测 @ManyToMany 关联的 CASCADE 形参来防止意外删除。

运行配置中的 Ktor 开发模式支持
Ultimate

IntelliJ IDEA 2024.2 支持在运行配置中轻松启用 Ktor 的开发模式。 现在,创建新的运行配置时此模式会默认设置,并且可以在更新的 Run/Debug Configurations(运行/调试配置)对话框中管理。 此外,我们还使此对话框的 UI 更加简洁,对 Ktor 用户更加友好。

在调试会话中触发 Spring @Scheduled 方法
Ultimate

IntelliJ IDEA 2024.2 Ultimate 具有针对 Spring Boot 中异步 @Scheduled 方法的调试功能。 这项更新消除了手动调整方法时间表并等待其启动的需要。 设置一个断点,根据需要直接从 IDE 触发方法执行即可。

Jakarta Data 支持
Ultimate

在 IntelliJ IDEA Ultimate 2024.2 中,我们引入了对 Jakarta Data 的支持。 IDE 现在可以为仓库提供编码辅助和检查,包括基于数据模型的方法名称补全和验证以及基于方法名称的形参验证。 Jakarta Data 仓库在 Bean 工具窗口中显示以简化导航。 此外,还有 Jakarta 查询语言支持,提供基于数据模型的语法高亮显示、语句验证和语句自动补全。

增强的 Terraform 支持
Ultimate

我们显著扩展了 IntelliJ IDEA Ultimate 对 Terraform 的编码辅助,为其提供了全行代码补全。 此外,关键代码洞察功能也针对 Terraform 进行了改进,例如上下文感知代码补全、精细的语法高亮显示以及带有快速修复建议的错误检测系统。 我们还添加了一个快速文档功能,当您将鼠标悬停在元素上时会显示工具提示,提供即时信息来帮助您更有效地使用 Terraform 资源,而不会中断您的工作流。

HTTP 客户端改进
Ultimate

我们对 HTTP 客户端引入了有价值的更新。 新的 XPath 函数允许您直接从 XML 和 HTML 文档查询元素。 此外,我们还添加了许多操作 XML 和 HTML 文档的方法,消除了手动解析 XML 的需要。

HTTP 客户端现在还支持遍历变量集合,允许您使用 JSONPath 集合组成单个 HTTP 请求,并自动为集合中的每个元素发送请求。 此外,您可以使用 JSONPath 语法在后处理脚本中访问特定集合条目。

我们还简化了提供特定方法的 API 的使用。 要使用这些 API,您可以通过快速修复动态添加自定义方法,或者在 Settings/Preferences | Tools | HTTP Client(设置/偏好设置 | 工具 | HTTP 客户端)中使用逗号分隔的列表输入。

远程开发和协作

远程开发中简化的设置管理
Ultimate

JetBrains 客户端和您的桌面 IDE 现在共享相同的设置,因此在本地安装的 IDE 中所做的任何设置更改都会通过 JetBrains 客户端自动与远程 IDE 同步,确保您的开发环境保持一致。 共享设置的作用域已扩展到包括控制台、调试器和智能按键配置等。

用于远程开发的反向端口转发
Ultimate

我们为远程开发工作流添加了反向端口转发。 这项新功能允许远程 IDE 连接到客户端计算机上可用的端口, 特别适合移动开发和连接到本地数据库。

Code With Me 中增强的屏幕共享

Code With Me 通话中的屏幕共享现在重定向到浏览器,允许您将特定窗口或整个屏幕指定为共享源。 此前,所有屏幕和窗口都默认共享,没有选择特定源的选项。

简化的 Code With Me 会话启动

Code With Me 会话启动弹出窗口经过重新设计,使流程有所简化。 它现在包括所有权限设置,减少了启动新会话所需的步骤,并且权限得到保留,每个会话只需点击两次即可启动。 此外,权限可以在会话期间直接从弹出窗口更改。

End Session(结束会话)弹出窗口

如果 30 分钟后没有人加入您的 Code With Me 会话,将会出现一个弹出窗口。 您可以选择结束会话、使其保持有效或关闭弹出窗口。 如果弹出窗口出现后三分钟内未采取任何操作,会话将自动结束。

数据库工具

AI Assistant 功能
Ultimate

在这个版本中,我们为数据库引入了新的 AI Assistant 功能。 借助文本到 SQL 功能,您可以点击 Generate Code with AI(使用 AI 生成代码)并输入提示直接在编辑器中生成 SQL 代码。 您可以接受、重新创建或优化代码,如果有其他问题,可以将其带到 AI 聊天。 此外,AI Assistant 可以帮助修改表,允许您请求更改,例如将所有 VARCHAR 数据类型切换为 CHAR。 它还可以帮助您理解和修正 SQL 问题,并提供解释和修正建议。 您可以输入 # 后跟要添加到提示中的数据库架构的名称,将数据库架构附加到 AI 聊天。

通过脚本化加载程序的可自定义数据导入
Ultimate

现在,您可以使用可自定义的脚本化加载程序从表格文件导入 Excel、JSON、Parquet 和 shapefile 格式的数据。 将文件从 Project(项目)工具窗口拖动到数据库资源管理器中的架构,然后在 Import(导入)对话框中配置设置。 此外,您只需点击 Project(项目)工具窗口即可在数据编辑器中查看这些文件。 要禁用此行为,请转到 Settings/Preferences | Advanced Settings | Open file as table if detected by scripted loader(设置/偏好设置 | 高级设置 | 如果脚本化加载程序检测到文件,则将其作为表打开)。 您还可以将加载程序放置在 Scratches and Consoles | Extensions | Database Tools and SQL | data | loaders(临时文件和控制台 | 扩展程序 | 数据库工具和 SQL | 数据 | 加载程序)中,以创建自定义加载程序。

浮动工具栏中的 Related Rows(相关行)操作
Ultimate

现在,您可以选择单元,然后点击 Related Rows(相关行)图标,轻松访问与给定单元相关的行。 您可以通过竖三点菜单中的 Customize This Toolbar(自定义此工具栏)选项指定此功能是否出现在浮动工具栏中。 我们还将 Related Rows(相关行)操作的设置移至 Settings/Preferences | Advanced Settings(设置/偏好设置 | 高级设置)中。 Navigate and select first(浏览并选择第一行)选项会显示所有行,高亮显示引用的第一行,而 Navigate and filter all(浏览并筛选所有行)选项仅会显示引用的行。

自动值补全
Ultimate

我们已经使值补全(一个存在很久的功能)自动化,并且我们的性能测试显示出乐观的结果。 请记住,此功能完全在本地运行,因此补全变体基于当前列中已加载的其他值。

Web 开发

直接运行和调试 TypeScript 文件
Ultimate

现在,运行和调试 TypeScript 文件无需任何额外设置。 您可以从不同的入口点执行,包括文件上下文菜单、Run(运行)微件,甚至 Current File(当前文件)配置。

Prettier 集成默认启用
Ultimate

在 IntelliJ IDEA Ultimate 2024.2 中,Prettier 集成会在新项目中启用,它们的根 package.json 中具有直接 prettier 依赖项,并且在同一级别具有 Prettier 配置文件。 这项功能简化了设置流程并确保 Prettier 集成开箱即启用。

改进的主要 Web 框架支持
Ultimate

IntelliJ IDEA Ultimate 2024.2 能够为使用基于文件系统的路由的框架解析路径。 它可以根据项目的文件系统解析链接路径,为 Next.js、Nuxt、SvelteKit 和 Astro 提供自动补全和导航。 还有对新 Svelte 5 代码段和渲染标记的支持。 此外,我们还为 Astro 和 Vue Language Service v2 实现了语言服务器协议 (LSP) 支持,有助于提升代码补全和整体开发者体验。

JetBrains Runtime

切换到 JBR21

我们正在从 JetBrains Runtime 17 (JBR17) 过渡到 JetBrains Runtime 21 (JBR21)。 从 IntelliJ IDEA 2024.2 开始,所有 IDE 更新都将附带 JBR21,提供增强的安全性和性能以及对 Linux 的 Wayland 渲染支持。

其他

捆绑的本地化插件

为了提升中文、韩语和日语母语用户的 IDE 体验,我们现在捆绑了对这些语言的支持。 语言设置位于 Settings/Preferences | Appearance & Behavior | System Settings | Language & Region(设置/偏好设置 | 外观与行为 | 系统设置 | 语言和地区)中。