IntelliJ IDEA
IntelliJ IDEA – the IDE for Professional Development in Java and Kotlin
IntelliJ IDEA
News
Releases

IntelliJ IDEA 2021.3 现已发布!
我们 2021 年的最后一个版本 IntelliJ IDEA 2021.3 现已发布! 从我们的网站或通过 Toolbox App 下载。 如果使用的是 Ubuntu,也可以在 IDE 中或通过 snap 升级到此版本。

在此版本中,我们提供了新功能和优质增强,希望改善 IntelliJ IDEA 用户体验。 质量方面,我们一直密切关注着您在问题跟踪器上提供的反馈。 如果您对此版本有任何疑问,请继续在跟踪器中分享。
这篇文章列出了 IntelliJ IDEA 2021.3 中所有最值得注意的功能和重要改进。 您可以在最新变化页面和 EAP 博文系列中找到更多详细信息。
主要更新
- 我们对远程开发 (Beta) 的支持让软件工程师可以连接到远程计算机、在远程计算机上部署 IDE 后端,并像在本地计算机上一样处理项目。 您可以从 IntelliJ IDEA 欢迎屏幕或通过 Toolbox App 下载 JetBrains Gateway 来访问此功能。
- File(文件)菜单中新增了 Repair IDE…(修复 IDE…)操作,可用于快速诊断和修正 IDE 的问题。
- Smart Step Into(智能步入)操作现在适用于 Kotlin 代码。 它会高亮显示您可以步入的方法和 lambda,从而让您可以调试包含链式方法调用和 lambda 的表达式。
- 调试器可以检测 Kotlin 内联函数并在堆栈跟踪面板中显示内联函数调用。
- Kotlin 的新增 Constant conditions(常量条件)检查有助于 IntelliJ IDEA 报告静态已知始终为 true、false、null 或零的非普通条件和值。 它的运行方式与 Java 的类似检查相同。
编辑器
- 支持在 macOS 上使用 ⌘+鼠标滚轮或在 Windows 和 Linux 上使用 Ctrl+鼠标滚轮同时更改所有打开的选项卡的字体大小。
- 您现在可以轻松地在 Markdown 文件中插入表。
- 使用编辑器选项卡变得更容易。 只需点击选项卡窗格右上角的三点即可访问所有选项卡操作。
- 意图预览现在适用于 Kotlin 中的更多意图操作和快速修复,并为不支持预览的意图操作显示 HTML 描述。
用户体验
- 使用快捷键 F3 (macOS) 或 F11 (Windows 和 Linux) 时,文件、文件夹和类将出现在新的 Bookmarks(书签)工具窗口中。 您可以在这篇博文中详细了解此功能。
- 我们引入了对包含选项卡的 Run(运行)工具窗口进行拆分的功能。 这让您能够同时运行多个配置和查看所有结果。
- 在搜索操作时,IntelliJ IDEA 中的 Search Everywhere(随处搜索)使用机器学习对结果进行排名。
- New Project(新建项目)向导窗口的 Empty Project(空项目)节点经过重做,允许您为不同类型的独立文件创建一个基本项目并在其中添加 Java 和 Kotlin 类。
- 新的 Multi-Module Project(多模块项目)节点让您可以从头开始创建具有复杂结构的项目。
- 通过 ⌥ F7 (macOS) 或 Alt+F7(Windows 和 Linux)搜索方法实现的用法时,IntelliJ IDEA 现在默认使用顶级层次结构方法作为目标。
- Show Usages(显示用法)对话框现在包括各个找到的用法的源代码预览、搜索范围更改功能以及查看搜索的代码元素类型和找到的用法数量的选项。
无障碍功能更新
- 当屏幕阅读器处于活动状态时,IDE 不再显示过去在鼠标悬停时出现的工具窗口微件弹出窗口和快速文档弹出窗口。
- 我们还修正了调用 Go to Declaration(转到声明)对话框时会出现的问题。
- macOS 上的无障碍功能支持也得到了改进。 我们解决了 VoiceOver 焦点的几个问题,并使屏幕阅读器可以在您创建项目时检测 New Project(新建项目)向导中的列表条目。
- 我们减少了播放声音的帮助工具提示的数量,以最大限度地降低编码时的潜在干扰。
Java
- IntelliJ IDEA 添加了新检查“Non-safe string passed to a safe method”(不安全字符串被传递至安全方法),有助于避免将不安全的数据传递至使用 org.checkerframework.checker.tainting.qual 注解的项目中的安全方法。 此检查可以检测到的问题包括 SQL 注入和 XSS 缺陷。
- 我们添加了两个可以帮助您简化代码的新检查。 第一个会建议您将 collect(toList()) 替换为 .toList()。 您可以在 Java 16 及更高版本中使用此检查。 另一项检查可提示您将 collection.addAll(List.of(“x”)) 替换为 collection.add(x)、将 map.putAll(Map.of(“a”, “b”)) 替换为 map.put(“a”, “b”)。
- 在 Java 中引入局部变量的设置不会再出现在弹出窗口中,这个弹出窗口之前会隐藏您编写的代码。 您现在可以通过变量旁边的齿轮图标或快捷键 ⌥+⇧ +O (macOS) 或 Alt+Shift+O (Windows) 进行访问。
- 调用 Introduce parameter(引入形参)重构时,IDE 会询问要替换匹配项的位置。 完成选择后,将出现一个齿轮图标,可用于为重构配置更多设置。
- 您可以选择 Modify options | Modify classpath(修改选项 | 修改类路径),在 Run/Debug Configurations(运行/调试配置)对话框中定义每个配置的自定义类路径。
Kotlin
- 新引入的重构可让您在 Kotlin 中提取常量。
- Possibly blocking call in non-blocking context(可能在非阻塞上下文中使用阻塞调用)检查现在可自定义,涵盖更多情况,并提供快速修复。
- 我们添加了内联提示,使用简单的数学符号解释范围内单词或符号的作用。
- 我们重做了 New Project(新建项目)向导的布局:为所有字段添加了工具提示、移除了一些冷门模板,添加了一个新模板供您创建 Compose Web 应用程序,并简化了项目设置步骤。
JavaScript
- 直接从编辑器将 npm 软件包更新到最新版本。
- 代码补全在 HTML 中的工作方式得到改进。 每当您在编辑器中输入标记名称或缩写或者调用代码补全,IntelliJ IDEA 都会立即显示相关建议。
Scala
- 此版本的一大焦点是 Scala 3 支持。 我们为 end 标记、given、using 和 export 关键字、软关键字和安静语法添加了高亮显示、导航和自动补全。 此外,TASTy 阅读器现在可以解析 package objects,以及更高级类型中的差异和边界。
- Scala 3/Scala 2 交叉编译项目可以作为 Scala 2 项目打开。
- Scala 插件现在支持数据流分析,可以帮助您更轻松地检测编程错误。
- Scala 编译器选项现在可以自动补全,您还可以查看每个选项的快速文档。
- 嵌入提示可用于 Scala 中的范围。
SSH
- 您可以在 Preferences / Settings | Tools | SSH Configurations(偏好设置 / 设置 | 工具 | SSH 配置)中为 SSH 配置指定 HTTP 或 SOCKS 代理服务器。
分析器
- Windows 版本的 IntelliJ IDEA Ultimate 原生支持 Async Profiler 2.0。
- 可以比较快照,检查所做的变更是适用于程序还是导致了回归。
构建工具
- Maven 配置进行了显著的重新设计。 关键参数均集中在一个屏幕上,其他参数可通过 Modify options(修改选项)调取。
- 如果要在 .mvn/maven.config 文件中为每个项目配置 Maven 设置,首先请转到 Preferences/ Settings | Build, Execution, Deployment | Maven(偏好设置 / 设置 | 构建、执行、部署 | Maven),然后选择 Use settings from .mvn/maven.config(使用来自 .mvn/maven.config 的设置)。
版本控制
- Checkout and Rebase onto Current(签出并变基到当前分支)操作可用于远程分支。
- Preferences/Settings | Version Control(偏好设置 / 设置 | 版本控制)设置的结构得到了改进,部分关键配置更加醒目。
- 提交之间的差异将在位于编辑器左侧的独立 Changes(变更)工具窗口中显示。
- 新的 Push all up to here(推送此前所有提交)操作允许您只推送当前确信的提交,将其他提交留待以后处理。
- 新的 Align Changes Highlighting(对齐变更高亮显示)选项使未更改的行对齐并并排显示,从而使差异更易于阅读。 这有助于您更清楚地查看已添加或移除的代码。
终端
- 对 Windows 上 ConPTY API 的新支持解决了旧实现的几个问题,并将在终端中支持 24 位颜色。
- 终端中新添加的键盘缓冲支持可以预测文本修改并立即以浅灰色显示。
调试器
- Evaluate(评估)字段现在可在 Debug(调试)工具窗口中直接访问,这让评估表达式最便捷的方式更为醒目。
框架和技术
- IntelliJ IDEA 的 HTTP 客户端为 gRPC 请求提供了必要的支持,包括代码补全和在 HTTP 客户端中生成 gRPC 请求的功能。
- 在 IntelliJ IDEA 中测试流应用程序时,HTTP 客户端将即时显示输出,您不再需要等待流结束。
- HTTP 客户端可以检测响应中的图像并在响应控制台中显示预览。
- 在 HTTP 客户端中,可以使用 >> 和 >>! 运算符将输出重定向到自定义文件或目录。
- 请求标识符可以通过 @name 添加为注释,也可以在第一个分隔符 (###) 中添加为文本。
- Qute 模板为您的 Quarkus 项目提供支持。
- IntelliJ IDEA 可以检测 OpenAPI 规范是否位于多个文件中并通过 $ref 链接,也将提供补全。
- 将 ‘org.jetbrains:annotations:22.0.0’ 添加到项目依赖项后,您可以将类和方法注解为 @Blocking 或 @NonBlocking。 IDE 由此可在 Kotlin 协同程序或使用 Project Reactor、RxJava 或 SmallRye Mutiny 的反应式代码等非阻塞上下文中检测阻塞调用。
- Spring 和 Java EE 中的阻塞代码检测已得到改进。
- Spring Boot 项目的 Run/Debug Configurations(运行/调试配置)对话框已经过重新设计,关键设置现在均位于一个屏幕上,并且通过 Modify Options(修改选项)可以获得更多参数。
- 当 spring.config.import 键用于引用另一个文件时,IntelliJ IDEA 将在额外配置文件(属性或 .yaml 文件)中提供代码补全。
- 对于 Spring Boot 项目,IDE 现在支持代码补全和从 @Value、@Scheduled 和 Environment.getProperty() 中查找对 application.yaml 的引用的用法。
- Query method completion(查询方法补全)现在适用于在 Spring Data JPA 项目中被声明为 @NamedQuery 的查询。 您还可以通过间距图标导航到 @NamedQuery 的定义。
- 所有 CDI 检查和 CDI 间距图标都可以在 Kotlin 文件中使用。 这些图标允许您快速导航到注入点或注入候选项、Bean 标记、处置器方法和事件。
- Java 和 Kotlin 中 UML 类图的所有进程在速度上都有所提升。 其他显著变化包括新网格、成员高亮显示和快速文档预览弹出窗口。
Space 集成
- 您现在可以在 Space 中为项目提交合并请求和创建代码审查。
- IntelliJ IDEA 用蓝点标记尚未修改的所有文件,确保您在执行代码审查时不会错过任何关键变更。
数据库工具
- 新增的 Aggregate(聚合)视图能够显示一系列单元,可以帮助您管理数据并免除编写额外查询的需求。
- 基于真实数据源生成 DDL 数据源的工作流已获得全面支持。 数据配置属性中新增了 DDL mappings(DDL 映射)选项卡,用于定义映射到各 DDL 数据源的真实数据源。
- 上下文菜单提供了新的 Database diff(数据库差异)窗口。 它具有更好的 UI,并且在右侧窗格中清楚显示了执行同步后您将获得的结果。
- 我们为 Oracle 数据库按从最快到最慢引入了三个级别的内省。 使用上下文菜单根据需要切换内省级别。
Kubernetes
- Helm 模板的格式设置得到了显著改进。
- 我们在 Helm 模板中为以下块元素添加了高亮显示,使包含 Go 模板的代码更易于处理:if、else、range、with 和 define。
- IntelliJ IDEA 现在支持在 ConfigMap 资源中为带有 .yaml、.json、.properties 等扩展名的键自动注入语言代码。
- Services(服务)工具窗口的新增按钮允许您重新运行上一个 Helm 命令。
Docker
- 在 Preferences/ Settings | Build, Execution, Deployment(偏好设置 / 设置 | 构建、执行、部署)中,选择 Minikube 单选按钮即可从 Minikube 连接到 Docker 守护程序。
- 所有可用注册表都显示在 Services (服务)工具窗口中的独立节点下。 此外,对 GitLab (registry.gitlab.com) 和 JetBrains Space (<用户名>.registry.jetbrains.space) 的支持也已添加。 有关 Docker 注册表变更的更多详细信息,请阅读此博文。
- 双击必要的节点,或者在 macOS 上使用 ⌘Enter 或在 Windows 和 Linux 上使用 Ctrl+Enter 快捷键,即可快速连接到 Docker。 Start container(启动容器)操作也可以通过此快捷键调用。
- 右键点击 Networks(网络)、Volumes(卷)、Containers(容器)或者 Images(镜像)节点,选择新的 Clean up(清理)操作,随后 IDE 将删除未使用的对象。
- 我们添加了对 Compose V2 的支持,这允许您将 Docker Compose 命令作为 docker compose 运行,而不是 docker-compose(带破折号)。
- Services(服务)工具窗口新增的 Layers(层)选项卡允许您跟踪应用于镜像的所有命令。
- 在 Services(服务)工具窗口中,您可以右键点击容器,选择 Image | Save as a new Image(镜像 | 另存为新镜像),推送一个本地存储的预配置容器,以供后续远程使用。
- Podman 可作为管理 Pod、容器和镜像的替代方法。 在 IDE 中使用 Podman 之前,您需要配置一个连接。
QA 工具
- 此次重大更新带来了对 Selenium 中 UI 测试自动化的支持,可视化编辑器可以帮助您维护现有的页面对象类。
- 对多级测试运行的支持已经实现。 您现在可以为特定功能域或测试类型创建多个下级测试运行。 每个上级测试运行都会聚合下级测试运行的结果,并提供所有下级相关测试运行的汇总统计信息。
- Test Management 插件现在支持富格式描述。 测试用例描述或步骤过去一直以 Markdown 编写,但格式设置现在可以直接在 TMS 预览窗口中显示和绘制。
- Test Automation Kit 的最新插件不仅修正了一些小错误,还添加了一个在多个数据生成器设置中使用的实用功能。 现在您可以使用多行定义修改前缀、后缀和分隔符。
质量增强
- 修正了 Hierarchy(层次结构)工具窗口,使其正确显示至少具有一个实现的接口方法的用法。 [IDEA-275145]
- 修正了在 Linux 上导致多个 IDE 崩溃的原因。 [IDEA-248140]
- 修正了 IDE 由于操作系统关闭而关闭后,每次启动时重复索引的问题。 [IDEA-275337]
- 修正了 Maven Wrapper 功能。 IDE 现在会自动下载 Maven 包装器(如果您尚未下载)并将其用于 Maven 目标执行。 此外,IDE 在下载 Maven 包装器时打开项目仍会响应并显示下载进度。 [IDEA-258757]、[IDEA-276012]、[IDEA-246835]
- 字体缩放功能现在会应用于所有打开的文件,而不仅仅是当前的文件。 您可以在 Preferences/Settings | Editor | General(偏好设置/设置 | 编辑器 | 常规)的 Mouse control(鼠标控制)部分中选择 All editors(所有编辑器)单选按钮来激活这个新选项。 [IDEA-158642]
- 修正了自动保存功能,使其在打开弹出窗口时也能正常工作。 [IDEA-128672]
- 修正了在尝试重新加载所有 Maven 项目或执行 Maven 目标时会发生的 WSL 2 错误。 [IDEA-266222]
- 修正了在为 Gradle 启用 Delegate IDE build/run(委托 IDE 构建/运行)操作时阻止生成展开型 WAR 的错误。 [IDEA-176700]
- 修正了 Stop(停止)按钮的行为。 停止 WildFly Run Configuration(WildFly 运行配置)时,不会再出现 Terminate Batch Job(终止批处理作业)提示。 [IDEA-273497]
- 修正了在 macOS 上的文件选择器对话框中浏览时 UI 冻结的问题。 [IDEA-274712]
- 修正了导致 IDE 无法识别 WSL 2 中的 Maven 多模块依赖项的错误。 [IDEA-265900]
- 修正了修改后的 .vmoptions 文件,使其在 IntelliJ IDEA 版本升级期间能够正确更新。 [IDEA-240526]
- 现在可以在 Markdown 中禁用列表编辑了。 为此,首先转到 Preferences/Settings | Languages & Frameworks | Markdown(偏好设置/设置 | 语言和框架 | Markdown),然后取消选中 Automatic assistance in the editor(编辑器中的自动辅助)复选框。 [IDEA-273049]
- 修正了欢迎屏幕,项目列表现在是关注的焦点。 [IDEA-217756]
- 在调试过程中按下 F10 时,焦点不会再转移到 File(文件)菜单。 [IDEA-138429]
- 修正了 Maven 资源编译器,此前,在 WSL 2 中构建项目时该编译器会返回 Failed to copy(无法复制)错误。 [IDEA-266670]
- 修正了打开多个选项卡时选项卡错误关闭的问题。 [IDEA-274154]
- 修正了 Find in File(在文件中查找)对话框中的 File mask(文件掩码)字段。 该列表现在可以正确显示。 [IDEA-236785]
- 修正了在 macOS 上双击窗口标题栏时 IDE 的行为。 [IDEA-274588]
- 修正了拼写检查器。 它现在可以识别带有撇号的单词了。 [IDEA-246846]、[IDEA-266236]
- 修正了 Diff(差异)选项卡,使其在比较文件时能够显示正确的文件名。 [IDEA-269958]
- 修正了在无干扰模式下工作时导致导航栏不会保持禁用状态的问题。 [IDEA-278664]
- 修正了将外部工具添加到 Quick List(快速列表)的功能。 [IDEA-257383]
- 修正了注解面板,使其显示的主题与整个 IDE 的相同。 [IDEA-233913]
- 修正了 YAML 代码格式化程序的格式设置。 [IDEA-199963]
- 修正了虚拟机选项在配置后保持应用的问题。 [IDEA-278976]
- 修正了从 JetBrains Toolbox App 启动 IDE 时导致 ProxyCommand 中出现错误环境变量的错误。 [IDEA-222673]
- 修正了新的 Maven 运行配置,使其与先前版本的 IDE 兼容。 [IDEA-279198]
- 添加了调试不同 Gradle 脚本的功能。 [IDEA-267460]、[IDEA-206650]、[IDEA-194493]
其他
- 我们增加了对 Android Studio Arctic Fox 2020.3.1 的支持。
- IntelliJ IDEA 现在支持 Groovy 4,包括成熟的代码洞察、正常运行的检查和意图操作。 同时支持 switch 表达式和密封类型等额外功能。
以上就是 IntelliJ IDEA 2021.3 中最显著的变更。 如果您需要有关特定更新、修正和改进的信息,请参阅版本说明。
感谢您在抢先体验计划期间帮助我们完善产品和分享功能反馈。 我们希望您喜欢 2021.3 版中的所有新功能。 请在博文下方发表评论,告诉我们您对更新的看法,如果您遇到任何错误,请报告给我们的问题跟踪器。
祝您开发愉快!
本文英文原作者: