IntelliJ IDEA 2024.1 最新变化
- IntelliJ IDEA 2024.1 最新变化
- 关键亮点
- AI Assistant
- 用户体验
- Java
- Kotlin
- Scala
- 版本控制系统
- 编辑器内代码审查
- 在 *Log*(日志)标签页中显示审查分支更改的选项
- 对代码审查评论回应的支持
- *Git* 工具窗口中 CI 检查的状态
- 从推送通知创建拉取/合并请求
- 待处理 GitHub 更新的可视化指示器
- 防止大文件提交到仓库
- *Allow unrelated histories*(允许不相关的历史记录)合并选项
- *Git* 工具窗口中 *History*(历史记录)标签页的分支筛选器
- *Commit*(提交)工具窗口中的 *Stash*(隐藏)标签页
- 从比较中排除文件夹和文件的选项
- *Branches*(分支)弹出窗口中改进的搜索
- *Git* 标签页已从 *Search Everywhere*(随处搜索)对话框中移除
- 构建工具
- 运行/调试
- 框架和技术
- 数据库工具
- Web 开发
在浏览器中打开
问卷调查项目
在线AI
IntelliJ IDEA 2024.1 最新变化
IntelliJ IDEA 2024.1 引入 AI Assistant,通过一组由 AI 提供支持的功能助力开发。 升级的 IntelliJ 分析器现在提供编辑器内提示,使分析进程更加直观详尽。 此版本还包括有助于简化开发工作流的 GitLab 集成,以及其他多项值得关注的更新和改进,如下所述。
关键亮点
PreviousNext
全行代码补全 Ultimate
IntelliJ IDEA Ultimate 2024.1 带有针对 Java 和 Kotlin 的全行代码补全。 这项功能由无缝集成到 IDE 中的高级深度学习模型提供支持。 它可以基于上下文分析预测和建议整行代码,有助于提高编码效率。 这些建议由针对不同语言和框架特别训练的专属语言模型驱动,模型完全在本地设备上运行,有助于确保数据安全,并且无需与外部服务器通信。 此功能包含在 IntelliJ IDEA Ultimate 许可证订阅中。 在这篇博文中了解详情。
PreviousNext
对 Java 22 功能的支持
IntelliJ IDEA 2024.1 提供了对 2024 年 3 月发布的 JDK 22 中的功能集的支持, 支持覆盖未命名变量与模式的最终迭代、字符串模板与隐式声明的类的第二个预览版,以及实例 main
方法。 此外,此更新还引入了对 super(...)
之前预览状态下的 new 语句的支持。 在这篇博文中了解详情。
PreviousNext
新终端 Beta
IntelliJ IDEA 2024.1 推出了重做的终端,具有可视化和功能增强,有助于简化命令行任务。 此更新为既有工具带来了全新的外观,命令被分为不同的块,扩展的功能集包括块间丝滑导航、命令补全和命令历史记录的轻松访问等。 在这篇博文中了解详情。
PreviousNext
编辑器中的粘性行
我们在编辑器中引入了粘性行,旨在简化大文件的处理和新代码库的探索。 滚动时,此功能会将类或方法的开头等关键结构元素固定到编辑器顶部。 这将使作用域始终保持在视野中,您可以点击固定的行快速浏览代码。
AI Assistant
AI Assistant 改进 Ultimate
AI Assistant 获得了多项有价值的更新,包括改进的测试生成和云代码补全、提交消息的自定义提示语、从代码段创建文件的功能,以及更新的编辑器内代码生成。 在这篇博文中了解详情。
请注意,在版本 2024.1 中,AI Assistant 已解绑,现在作为独立插件提供。 这一改动是为了在使用 AI 赋能的技术方面提供更多的决策灵活度,让您能够在工作环境中更好地控制偏好和要求。 AI Assistant 仍然需要有效的 JetBrains AI 订阅。
AI Assistant 中针对 Java 和 Kotlin 的改进代码高亮显示 Ultimate
我们在 AI Assistant 的回复中针对 Java 和 Kotlin 增强了代码高亮显示。 AI 聊天中的代码现在会像在编辑器中一样高亮显示,加快评估速度。 这项增强功能可以在聊天中提供类似编辑器的体验,使 AI Assistant 的建议更加直观。
用户体验
索引编制期间 IDE 功能对 Java 和 Kotlin 可用
现在,代码高亮显示和补全等基本 IDE 功能可在项目索引编制期间用于 Java 和 Kotlin,这应该会增强您的启动体验。 此外,您可以在项目仍在加载时使用 Go to class(转到类)和 Go to symbol(转到符号)浏览代码。
更新的 New Project(新建项目)向导
为了减轻您在配置新项目时的认知负担,我们微调了 New Project(新建项目)向导的布局。 语言列表现在位于左上角,使最流行的选项更加醒目。
用于缩小整个 IDE 的选项
您现在可以将 IDE 缩小到 90%、80% 或 70%,从而可以灵活地调整 IDE 元素的大小。
Java
PreviousNext
字符串模板中的语言注入
IntelliJ IDEA 2024.1 引入了将语言注入字符串模板的功能。 您可以使用注解,注解会自动选择所需语言,也可以使用 Inject language or reference(注入语言或引用)意图操作 (⌥Enter) 从列表中手动选择语言。 如果您使用后一种方式,IDE 将建议您插入语言注解。 执行注入后,您可以再次调用意图操作列表,并选择在独立编辑器窗格中打开和编辑注入的片段。
PreviousNext
改进的日志工作流
由于日志记录是日常开发的重要环节,我们引入了一系列更新来增强 IntelliJ IDEA 在日志方面的用户体验。 现在,您可以从控制台中的日志消息轻松导航到生成它们的代码。 此外,IDE 会在有需要的位置建议添加记录器,并简化插入记录器语句的操作,即使记录器实例不在作用域内。 在这篇博文中了解详情。
PreviousNext
新检查与快速修复
我们为 Java 实现了新的检查和快速修复,帮助您保持代码整洁无误。 为清楚起见,IDE 现在会检测可被替换为对 Long.hashCode()
或 Double.hashCode()
方法的调用的按位操作。 此外,新的快速修复可以根据代码库的要求简化隐式和显式类声明之间的切换。 另一项新检查为匹配代码段建议使用现有 static 方法,使代码可以轻松重用,无需引入额外 API。 此外,IDE 现在可以检测并报告永远不会执行的无法访问的代码。
PreviousNext
通过多版本 JAR 增强的用户体验
IntelliJ IDEA 2024.1 通过多版本 JAR 库提供增强的用户体验。 使用具有不同版本的类时,Go to declaration(转到声明)功能现在会根据当前模块的语言级别从 JAR 中选择正确的版本。 此外,Go to class(转到类)功能还提供有关类版本的额外信息。 调试期间使用 Step Into(步入)时,IDE 会将您带到与 JDK 版本而不是模块语言级别对应的类。
重做的 Conflicts Detected(检测到冲突)对话框
在版本 2024.1 中,我们重做了 Conflicts Detected(检测到冲突)对话框以提高可读性。 现在,对话框中的代码反映了编辑器中的内容,使您可以更清楚地了解冲突,并且 IDE 会自动保存窗口大小调整以供将来使用。 另外,我们还更新了按钮及其行为以简化重构工作流,对话框现在可以完全通过键盘访问,您可以使用快捷键和箭头键进行无缝交互。
Rename(重命名)重构嵌入提示
为了使重命名流程更简单、更直观,我们实现了一个新的嵌入提示,在更改的代码元素上显示。 要将代码库中的所有引用更新为新版本,点击此提示并确认更改即可。
Kotlin
K2 Kotlin 模式 Alpha
IntelliJ IDEA 2024.1 引入了新的 Kotlin K2 模式,利用嵌入式 K2 Kotlin 编译器增强 Kotlin 代码分析。 这项更新不仅可以保证与即将推出的 Kotlin 功能兼容,还会提高代码分析的稳定性,增强 IDE 功能的质量和可靠性,改进应用程序的整体性能。 了解详情.
在所有项目中传播的官方 Kotlin 代码样式
从版本 2024.1 开始,除非另有明确指定,否则 IDE 统一应用官方 Kotlin 样式指南作为所有项目的默认选项。 如果现有项目恰巧使用较旧的代码样式而未显式配置,IDE 将自动切换到 Kotlin 编码约定代码样式,并提醒您此更改。 为了防止不必要的格式更改,我们建议您了解此代码样式迁移指南。
复制粘贴时保留 static import
版本 2024.1 可以准确保留 static import,确保其传输完全遵循在源代码中的显示方式。 这在处理嵌套对象、枚举和 Java static import 时特别有价值。
Scala
更好的 Scala 3 支持
在新版本中,我们修正了许多与 Scala 3 中特定语法用例的处理相关的问题。 改进包括识别禁止的修饰符混合、计算缩进深度、在不破坏缩进的情况下剪切粘贴操作,以及将结束标记与其语法结构相关联的功能。 我们还改进了调试器中的 Scala 3 支持,自动补全现在可以准确处理一些极端情况,例如与 using
和 given
关键字或 unapply
签名一起使用时。
Scaladoc 增强
我们对 Scaladoc 弹出窗口和快速文档弹出窗口中类、特征和方法声明的高亮显示做出了许多细微的改进和修复。 嵌套泛型形参现在可以正确高亮显示,字段访问修饰符也会显示。 此外,带有三个大括号的 Scaladoc 块内的代码现在以与标准 Scala 代码相同的方式高亮显示。
改进的基于编译器的高亮显示
在此之前,如果您在使用基于编译器的高亮显示时切换到另一个编辑器,代码会自动重新编译。 在版本 2024.1 中,我们对此进行了更改。 现在,代码是否重新编译取决于编辑器是否处于焦点。 这有助于基于编译器的高亮显示更快响应源文件和 .class
文件的外部更改,并避免有效代码报错的情况。
Scala 构建工具改进
IDE 现在将 .gitignore
文件添加到新的 SBT 项目中。 我们修正了首次使用 Use sbt for builds(为构建使用 sbt)运行 Scala/JVM 应用程序时引发异常的问题,并确保在导入期间将模块的所有传递依赖项作为直接依赖项插入。
Play Framework 更新
为了解决旧版 Play Framework(2.8 及更低版本)和 JDK 17 之间的兼容性问题,我们引入了一条警告,在 Play 向导中通知您使用了不兼容版本的 Play 和 JDK。
其他改进
我们引入了新图标:一个新图标适用于 New Project(新建项目)向导中的 Scala 语言,另一个适用于 View | Tool windows(视图 | 工具窗口)中的 SBT。 此外,您还会注意到嵌入提示的呈现方式得到微妙增强,包括圆角和改进的对齐。 此外,我们还在 Settings | Editor | CodeStyle(设置 | 编辑器 | 代码样式)帮助页面中添加了 Scala 文档。 在工作表中,使用 Scala 2.13.12 时,编译错误会在构建窗口中再次正确报告,并且在第一次代码编译之前 import 不会再被错误地标记为未使用。 此外,您现在可以固定 X-Ray 功能,确保即使在释放 Cmd 键后其仍保持活动状态。
版本控制系统
编辑器内代码审查
借助实现的新审查模式,IntelliJ IDEA 2024.1 为 GitHub 和 GitLab 用户引入了增强的代码审查体验。 此功能与编辑器集成,促进作者与审查者直接互动。 在检查拉取/合并请求分支时,审查模式会自动激活,并在装订区域中显示粉色标记,表明代码更改可供审查。 点击这些标记会弹出一个显示原始代码的弹出窗口,这样您就能快速识别哪些代码已被更改。 装订区域图标可以帮助您迅速发起新讨论,以及查看和隐藏现有讨论。 这些图标还可以让用户方便地访问评论,从而轻松查看、回复和作出反应。 在我们的博文中详细了解此更改。
在 Log(日志)标签页中显示审查分支更改的选项
IntelliJ IDEA 2024.1 通过提供分支相关更改的集中视图简化了代码审查工作流。 对于 GitHub、GitLab 和 Space,现在可以在 Git 工具窗口中的单独 Log(日志)标签页中查看具体分支中的更改。 为此,点击 Pull Requests(拉取请求)工具窗口中的分支名称,然后从菜单中选择 Show in Git Log(在 Git 日志中显示)。
对代码审查评论回应的支持
IntelliJ IDEA 2024.1 开始支持对 GitHub 拉取请求和 GitLab 合并请求的审查评论发表回应,已有一组表情符号可供选择。
Git 工具窗口中 CI 检查的状态
我们在 Git 工具窗口的 Log(日志)标签页中引入了一个新列,使您可以轻松审查 CI 系统执行的 GitHub 提交检查的结果。
从推送通知创建拉取/合并请求
成功将更改推送到版本控制系统后,IDE 现在将发布一条通知,提醒您已成功推送并建议创建拉取/合并请求的操作。
待处理 GitHub 更新的可视化指示器
我们引入了可视化指示器来提示代码审查工作流中待处理的更新。 有需要您注意的更改时,工具窗口的图标上会出现一个点。 未查看的拉取请求也将用点标记,确保您不会错过代码审查流程中的更新。
防止大文件提交到仓库
为了帮助您避免由于文件过大而导致版本控制拒绝,IDE 现在包含预提交检查,防止您提交此类文件并通知您该限制。
Allow unrelated histories(允许不相关的历史记录)合并选项
Merge into(合并到)对话框的下拉菜单中新增了 Allow unrelated histories(允许不相关的历史记录)选项。 选择后,该选项允许合并两个分支,即使它们没有共同的历史记录。
Git 工具窗口中 History(历史记录)标签页的分支筛选器
在 Git 工具窗口中,Show all branches(显示所有分支)按钮已被替换为分支筛选器,允许您审查对指定分支内的文件所做的更改。 我们还调整了工具栏的方向,将其水平放置以提高实用性。
Commit(提交)工具窗口中的 Stash(隐藏)标签页
对于依赖隐藏来存储临时未提交更改的用户,我们在 Commit(提交)工具窗口中引入了一个专属标签页以便访问。 如果您同时使用隐藏和搁置,则可以通过 Settings/Preferences | Version Control | Git(设置/偏好设置 | 版本控制 | Git)中的相应复选框启用组合的 Stashes and Shelves(隐藏和搁置)标签页。
从比较中排除文件夹和文件的选项
在差异查看器中,您可以指定在比较中要忽略的文件夹和文件,从而仅关注有意义的更改。 右键点击您不想在比较结果中看到的文件或文件夹,然后从上下文菜单中选择 Exclude from results(从结果中排除)。
Branches(分支)弹出窗口中改进的搜索
在 Branches(分支)弹出窗口中,您可以按操作和仓库筛选搜索结果,以在版本控制系统中更快、更精确地导航。
Git 标签页已从 Search Everywhere(随处搜索)对话框中移除
分析使用统计数据后,我们默认从 Search Everywhere 对话框中移除了 Git 标签页。 如果要将其恢复,可以使用 Settings / Preferences | Advanced Settings | Version Control. Git(设置/偏好设置 | 高级设置 | 版本控制. Git)中的 Show Git tab in Search Everywhere。
构建工具
PreviousNext
针对 Maven 项目的打开速度提升
IntelliJ IDEA 现在通过解析 pom.xml
文件构建项目模型。 这使得有效项目结构可以在几秒钟内获得,具有所有依赖项的完整项目模型则同时在后台构建,使您无需等待完全同步即可开始处理项目。
PreviousNext
对 Maven Shade 插件的重命名工作流的支持
在 IntelliJ IDEA 2024.1 版本中,我们添加了备受期待的对 Maven Shade 插件重命名功能的支持。 现在,IntelliJ IDEA 可以识别重命名工作流,在使用着色 JAR 及其依赖项时提供准确的代码高亮显示和导航。
从快速文档弹出窗口直接访问源文件
快速文档弹出窗口现在提供了一种下载源代码的简单方式。 现在,查看库或依赖项的文档并需要访问其源代码时,按 F1 即可。 更新后的弹出窗口将提供一个直接链接,您可以使用它来下载所需的源文件,简化了工作流。
Maven 工具窗口中的 Maven 仓库
Maven 仓库列表及其索引编制状态现在显示在 Maven 工具窗口中,而不是以前 Maven 设置中的位置。
Gradle 版本支持更新
从这个版本开始,IntelliJ IDEA 不再支持使用低于 Gradle 版本 4.5 的项目,并且 IDE 不会对带有不支持的 Gradle 版本的项目执行 Gradle 同步。
运行/调试
多语句的内联断点
IntelliJ IDEA 2024.1 为在包含 lambda 函数或 return 语句的行中的断点设置提供了更方便的工作流。 点击装订区域设置断点后,IDE 会自动显示可在其中设置额外断点的内联标记。 每个断点都可以独立配置,释放高级调试功能。
PreviousNext
调用堆栈中的折叠库调用
现在,库调用在 Debug(调试)工具窗口的调用堆栈中默认折叠,帮助您在浏览代码时保持专注。 但是,如果您需要验证库调用序列,可以展开组并相应地探索帧。 要显示列表,请使用工具栏中的 Filter(筛选器)图标或调用上下文菜单并禁用 Hide Frames from Libraries(在库中隐藏帧)选项。
条件语句覆盖
版本 2024.1 使 IntelliJ IDEA 距离实现全面测试覆盖又近了一步。 这项更新的重点是确定测试未完全覆盖代码中的哪些条件语句。 现在,IntelliJ IDEA 既显示哪一行具有未覆盖的条件,还会指定未覆盖的条件分支或变量值。 这项功能默认启用,您可以在 Settings/Preferences | Build, Execution, Deployment | Coverage(设置/偏好设置 | 构建、执行、部署 | 覆盖率)进行控制。
代码覆盖率设置移至主 IDE 设置
代码覆盖率设置已从 Run Configuration(运行配置)弹出窗口移至 Settings/Preferences | Build, Execution, Deployment | Coverage(设置/偏好设置 | 构建、执行、部署 | 覆盖率)。 经过这一改动,不必为每次测试运行单独更新配置即可选择覆盖率运行程序或启用高级功能,例如跟踪哪些测试覆盖特定代码行。
PreviousNext
JaCoCo 测试覆盖率报告的简化导入
现在,可以更轻松地导入、浏览和分析 JaCoCo 运行程序在 CI/CD 管道中收集的代码覆盖率数据。 如果 Coverage(覆盖率)工具窗口中未显示报告,现在将显示用于导入 JaCoCo 报告的直接链接。 我们还更新了窗口的工具栏,添加了一个导入图标,这个图标允许您作为 .exec
文件检索 JaCoCo 报告。
框架和技术
针对 Spring 的改进 Bean 补全和自动装配 Ultimate
IntelliJ IDEA Ultimate 现在为应用程序上下文中的所有 Bean 提供自动补全,并自动装配 Bean。 如果 Bean 通过构造函数自动装配依赖项,则相关字段也会通过构造函数自动装配。 同样,如果依赖项是通过字段或 Lombok 的 @RequiredArgsConstructor
注解注入,则新 Bean 会自动通过字段装配。
PreviousNext
增强的 Spring 图表 Ultimate
我们使 Spring 模型图表更易访问。 您可以使用 Bean 行标记或对 Spring 类使用意图操作 (⌥⏎) 进行调用。 我们为 Spring 图表引入了新的图标,增强了 Spring 原型(如组件、控制器、仓库和配置 Bean)的可视化。 此外,您现在可以方便地切换库中 Bean 的可见性(默认隐藏)。
PreviousNext
HTTP 客户端改进 Ultimate
版本 2024.1 中的 HTTP 客户端提供了更多身份验证选项,包括 PKCE 授权代码和设备授予流。 除了在 PKCE 请求期间自动处理用于令牌检索的 code_challenge
生成和 code_verifier
传递之外,它还支持令牌和身份验证请求的额外参数。 HTTP 客户端升级为 Netty 的底层网络库实现了 SSL、代理和 HTTP/2 支持,有助于促进 HTTP/2 的实现。 此外,HTTP 客户端的工具栏已经过重做,与新 UI 的风格保持一致,提供更加美观协调的外观。
Search Everywhere(随处搜索)中的 Endpoints(端点)标签页 Ultimate
我们引入了在 URL 搜索结果相关的项目中出现的 Endpoints(端点)标签页,增强了 Search Everywhere(随处搜索)对话框。 目前,检测到项目中存在 Spring、Micronaut、Ktor 或 Quarkus 技术时,IDE 会自动包含此标签页。
针对 HTTP 页眉的代码补全 Ultimate
现在,HTTP 页眉可以在所有常见场景中轻松补全 ,例如使用 Spring WebClient 和 REST Assured 测试。 遇到预期值时,补全弹出窗口会自动出现。
优化的 JSON 架构处理 Ultimate
我们优化了 JSON 架构验证和补全背后的代码。 因此,IDE 现在可以更快处理这些任务并减少内存消耗。 在使用 Azure Pipelines 的现实文件中,架构检查速度现在提高了 10 倍。
PreviousNext
Quarkus 更新 Ultimate
我们为 Quarkus 运行配置引入了一个新的设置编辑器。 现在,Run/Debug Configuration(运行/调试配置)对话框为 Maven 和 Gradle 项目提供了改进的 UI,使用户可以轻松访问 Run profile(运行配置文件)和 Environment variables(环境变量)等常用设置。 您可以通过新增到 Run(运行)工具窗口工具栏的图标方便地访问 Quarkus Dev UI。
PreviousNext
对 OpenRewrite 的支持 Ultimate
IntelliJ IDEA Ultimate 2024.1 集成了 OpenRewrite,这将扩展 IDE 的现有重构功能,并为您提供一个用于提高代码质量、一致性和可维护性的工具包。 借助 OpenRewrite 的资源,您可以现代化遗留代码、优化性能并处理复杂的迁移任务,例如升级到新的 Spring Boot 版本。
PreviousNext
WireMock 服务器支持 Ultimate
我们通过插件实现了 WireMock 支持,您可以从 IDE 内部安装或从 JetBrains Marketplace 获取。 此集成包括适用于 JSON 配置的架构补全、从 Endpoints(端点)工具窗口生成 WireMock 存根文件的功能,以及允许直接从编辑器启动服务器的内置运行配置。 新功能可让您快速创建测试数据服务器或存根,从而简化 Web UI 和微服务的开发。
PreviousNext
增强的 Terraform 支持 Ultimate
IntelliJ IDEA Ultimate 2024.1 带来了改进的 Terraform 支持,有助于简化创建、管理和扩展基础架构的流程。 现在,IDE 通过明确建议运行 terraform init
来简化初始化,并为超过 3,900 个第三方 Terraform 提供程序提供了扩展的代码补全功能。 此外,IDE 还引入了对 Terraform 模板语言 (tftpl) 的支持,实现动态模板,可以与您的首选编程语言无缝集成。 您可以在我们的博文中找到更多详细信息。
数据库工具
数据编辑器中的本地筛选 Ultimate
此版本在数据编辑器中引入了期待已久的本地筛选功能。 现在,您可以根据列值快速筛选行,而无需向数据库发送查询。 这种本地方式只影响当前页面,但如果需要扩大作用域,可以调整页面大小或提取所有数据。 要禁用所有本地筛选器,请取消选择指定的 Enable Local Filter(启用本地筛选器)图标。
会话简化 Ultimate
IntelliJ IDEA Ultimate 2024.1 消除了手动选择会话的需求,从而简化查询执行。 要附加文件,您只需选择数据源,而不是会话。 此外,启动函数不再需要选择会话,您现在可以选择直接从控制台或文件运行函数。 这些更改旨在最大限度地缩短工具的学习曲线,减少不必要的步骤并增强整体实用性。
Web 开发
快速文档改进 Ultimate
我们显著增强了快速文档弹出窗口。 它现在支持代码块的语法高亮显示。 在 TypeScript 中,它现在会显示接口成员、枚举常量和类型别名主体。 您可以使用 Show more(展开)链接展开类型成员的完整列表并导航到引用的类型。 此外,现在可以使用对话框顶部的分页控件在接口、类型别名、枚举、函数和其他实体的多个声明之间导航。
针对 React props 和状态创建的快速修复 Ultimate
IntelliJ IDEA Ultimate 2024.1 为 React 引入了多个新的快速修复,可供动态创建 props 和状态。 您可以使用快捷键 ⌥Enter 应用这些快速修复。
Language Services(语言服务)微件 Ultimate
您将在状态栏上找到新的 Language Services(语言服务)微件,它可以提供对当前文件和项目的有效语言服务的洞察。 您可以直接从此微件重新启动服务或导航至其设置。
Feedback