IntelliJ IDEA 2021.3 最新变化

IntelliJ IDEA 2021.3 为远程开发 (Beta) 提供支持,并引入了一种使用 Repair IDE...(修复 IDE...)操作对 IDE 问题进行故障排除的新方式。 同时,它还为 Kotlin 带来了调试器更新和 Constant conditions(常量条件)检查,以及其他实用更改。 以下简短描述详细解释了这些更新和其他关键功能。

主要更新

远程开发

远程开发
Beta
Ultimate

IntelliJ IDEA Ultimate 现已支持测试版本的远程开发工作流。 您可以从世界任何地方轻松连接到运行 IntelliJ IDEA 后端的远程计算机。 所有处理都将在这台强大的远程计算机上进行,您将能够像在本地计算机上一样无缝地处理项目。 可以在 IntelliJ IDEA 的欢迎屏幕或通过 JetBrains Toolbox App 中新增的 JetBrains Gateway 应用程序启动此功能。

此外,您还可以借助 Space 这款整体软件开发管道的一站式平台,创建、预构建、共享、重现、休眠和管理开发环境。

查看此博文了解更多详细信息。

IDE 问题故障排除

IDE 问题故障排除

IntelliJ IDEA 2021.3 能够以一种全新的快速方法诊断和修正导致 IDE 无法正常工作的问题。 如果 IDE 运行不正常,您可以从 File(文件)菜单调用新的 Repair IDE…(修复 IDE…)操作。 它将通过一系列步骤引导您解决一些最常见的问题。

Kotlin 的 Constant conditions(常量条件)检查

Kotlin 的 Constant conditions(常量条件)检查

我们添加了新的 Constant conditions(常量条件)检查,协助 IntelliJ IDEA 报告静态已知始终为 true、false、null 或零的非普通条件和值。 它的工作方式与 Java 的类似检查相同,并且支持大多数相同的检查。 可以在 Preferences/ Settings | Editor | Inspections | Kotlin | Probable bugs(偏好设置 / 设置 | 编辑器 | 检查 | Kotlin | 可能的错误)中找到这个新检查。

Kotlin 调试器更新

Smart Step Into(智能步入)

当您想要调试具有链式方法调用和 lambda 的表达式时,Step Into(步入)操作可以默认提供 Smart Step Into(智能步入)的功能。 它将高亮显示能够步入的方法和 lambda。 要开始使用,请点击位于 Debug(调试)工具窗口顶部窗格中的 Step Into(步入)按钮或使用 F7 快捷键。 然后,IDE 将高亮显示能够步入代码的位置,您可以点击选择所需的行。

内联堆栈帧

调试器现在可以检测 Kotlin 内联函数并在堆栈跟踪面板中显示内联函数调用。 您可以导航到这些调用,还可以检查和评估每个帧的变量。

编辑器

更改所有标签页的字体大小

我们根据用户请求做出了更新,支持在 macOS 上使用 ⌘+鼠标滚轮或在 Windows 和 Linux 上使用 Ctrl+鼠标滚轮同时更改所有打开的标签页的字体大小。 要启用此功能,首先转到 Preferences / Settings | Editor | General(偏好设置 / 设置 | 编辑器 | 常规),选择 Change font size with Command + mouse wheel in(使用 Command + 鼠标滚轮更改字体大小),然后选择 All editors(所有编辑器)。 如果选择 Active editor(有效编辑器),则快捷键将仅在您当前处理的文件中更改字体大小。

改进了意图预览

IntelliJ IDEA 添加了一个实用选项,允许您在将意图操作和快速修复应用于代码之前预览其结果。 此功能在 Intention actions(意图操作)菜单中可用。 要激活预览,在 macOS 上按 F1 或在 Windows 和 Linux 上按 Ctrl+Q

自 v2020.1 引入意图预览起,我们就一直在持续改进。 在 IntelliJ IDEA 2021.3 中,它适用于 Kotlin 中的更多意图操作和快速修复,并且“预览不可用”消息已被替换为不支持的意图操作的更详尽 HTML 描述。 此外,对于修改多个文件的操作,预览会显示可能结果的一部分。 这一部分结果应该足以展现操作将带来的变化。

改进了 Markdown 支持

改进了 Markdown 支持

在 IntelliJ IDEA 2021.3 中,表的创建更加简单。 只需调用上下文菜单并选择 Insert | Table(插入 | 表)。 就是这样! 您可以使用鼠标悬停操作或键盘选择首选大小。

表中的单元格宽度将随键入做出调整。 您可以使用浮动工具栏编辑表内容。

要创建新行,您可以使用 Shift+EnterTab 导航到下一个单元格。

快速访问标签页的所有操作

快速访问标签页的所有操作

使用编辑器标签页变得更容易。 只需点击标签页窗格右上角的三点即可访问所有标签页操作。

用户体验

新的 Bookmarks(书签)工具窗口

我们引入了新的 Bookmarks(书签)工具窗口,取代与其类似的 Favorites(收藏夹)实例。 从现在开始,您只需在 macOS 上使用 F3 快捷键或在 Windows 和 Linux 上使用 F11 即可将文件、文件夹和类标记为重要。

添加书签时,IntelliJ IDEA 默认会将其置于 Bookmarks(书签)工具窗口下以项目命名的节点中。 每次添加新书签,它都会出现在此节点内的列表顶部。 您可以使用工具窗口设置中的 Sort Groups and Bookmarks(排序组和书签)选项按类型对书签进行排序。 您还可以创建新节点并在其中拖放条目。

拆分 Run(运行)工具窗口

拆分 Run(运行)工具窗口

在 v2021.3 中,可以拆分包含标签页的 Run(运行)工具窗口 。 这让您能够同时运行多个配置和查看所有结果。

要拆分窗口,请将要查看的标签页拖放到 Run(运行)工具窗口内的高亮显示区域。 要再次取消拆分窗口,请右键点击顶部窗格并从上下文菜单中选择 Unsplit(取消拆分)。

Search Everywhere(随处搜索)中基于机器学习的操作搜索

Search Everywhere(随处搜索)中基于机器学习的操作搜索

在搜索操作时,IntelliJ IDEA 中的 Search Everywhere(随处搜索)现在默认由机器学习驱动。 我们训练了一个基于机器学习的公式,它会考虑以下信息:

  • 特定用户的操作使用历史记录。
  • 整个用户群的操作使用频率。
  • 搜索查询的长度、操作的名称等。

我们希望基于机器学习的模型可以提高您的搜索质量并根据您的特定需求返回最合适的结果。

改进了 Find Usages(查找用法)

改进了 Find Usages(查找用法)

当您在 macOS 上通过 ⌥F7 或在 Windows 和 Linux 上通过 Alt+F7 搜索方法实现的用法时,IDE 不再询问您是否要在弹出窗口中查找基方法的用法。 取而代之的是,IntelliJ IDEA 将默认使用顶级层次结构方法作为搜索的目标。 要更改此行为,请点击齿轮图标,取消选中 Find Usages(查找用法)工具窗口设置中的 Search for base method usages(搜索基方法用法)复选框。

重新设计了 Show Usages(显示用法)

Show Usages(显示用法)对话框获得了多个新功能。 我们推出了基于发现的用法的源代码预览,您可以点击顶部工具栏窗格中的方形图标查看。 另一项更新让您可以使用位于 Preview(预览)图标旁边新增的下拉列表更改搜索范围。 此外,窗口的标题栏现在会显示您正在搜索的代码元素的类型和找到的用法数量。

另一个非常方便的小更新允许您设置对话框宽度,IDE 将在下次调用时保留该宽度。

重新设计了 Empty Project(空项目)并添加了新的 Multi-Module Project(多模块项目)节点

在 v2021.3 中,您会发现 IntelliJ IDEA 项目向导中的节点发生了一些变化。

您可以选择 Empty Project(空项目)节点创建一个基本项目,用于处理不同类型的单独文件以及添加 Java 和 Kotlin 类。 IDE 将自动配置项目,让您可以在存在 Java 或 Kotlin 类时对其进行编译。

新的 Multi-Module Project(多模块项目)节点让您可以从头开始创建具有复杂结构的项目。 创建项目后,Project Structure(项目结构)对话框将打开,您可以添加各种模块。

无障碍功能更新

IntelliJ IDEA 2021.3 解决了一些无障碍功能问题,让屏幕阅读器更为舒适。 我们根据请求,禁用了过去在鼠标悬停时出现的工具窗口微件弹出窗口和快速文档弹出窗口。 我们还修正了调用 Go to Declaration(转到声明)对话框时会出现的问题。

在此版本中,macOS 上的无障碍功能支持也得到了改进。 我们解决了 VoiceOver 焦点的几个问题,并使屏幕阅读器可以在您创建项目时检测 New Project(新建项目)向导中的列表项。 我们减少了播放声音的帮助工具提示的数量,以最大限度地降低编码时的干扰。

Java

用于跟踪不安全字符串的检查

IntelliJ IDEA 现在会针对 SQL 注入和 XSS 缺陷、敏感数据泄漏和不安全的反序列化等危险发出警告。 它还可以防止您将不安全的数据传递给安全的方法。 这些额外的警告由新的 Non-safe string is passed to a safe method(不安全字符串被传递至安全方法)检查提供。

要启用此检查,您需要将字符串注解为 @Untainted(“安全”)或 @Tainted(“不安全”)。 这些注解将在添加 org.checkerframework.​checker.​tainting.​qual 依赖项时生效。

其他新的 Java 检查

我们添加了两个可以帮助您简化代码的检查。 第一个会建议您将 collect(toList()) 替换为 .toList()。 您可以在 Java 16 及更高版本中使用此检查。 另一个检查会提示您将 collection.addAll(List.of("x")) 替换为 collection.add(x),将 map.putAll(Map.of("a", "b")) 替换为 map.put("a", "b")

改进的重构

在 Java 中引入局部变量时,适用的设置不会再出现在弹出窗口中,这个弹出窗口之前会覆盖您编写的代码。 更新后,您可以点击变量旁边的齿轮图标或者在 macOS 上使用 ⌥⇧O 快捷键或在 Windows 上使用 Alt+Shift+O 访问这些选项。

我们还改进了 Introduce parameter(引入形参)重构。 在 macOS 上使用 ⌥⌘P 或在 Windows 和 Linux 上使用 Ctrl+Alt+P 调用此重构时,IDE 会询问您要替换匹配项的位置。 完成选择后,将出现一个齿轮图标,点击该图标即可为重构配置更多设置。

Run/Debug Configurations(运行/调试配置)中的可自定义类路径

Run/Debug Configurations(运行/调试配置)中的可自定义类路径

有时您可能需要在 Run/Debug Configurations(运行/调试配置)对话框中针对不同的配置定义自定义类路径。 从这个版本开始,选择 Modify options | Modify classpath(修改选项 | 修改类路径)即可完成此操作。

Kotlin

Extract constant(提取常量)重构

Extract constant(提取常量)重构

我们引入了一种新的重构,让您可以在 Kotlin 中提取常量。 要使用这个重构,请将文本光标置于字符串上,然后在 macOS 上按 ⌥⌘C 或在 Windows 和 Linux 上按 Ctrl+Alt+C

改进了 Possibly blocking call in non-blocking context(可能在非阻塞上下文中使用阻塞调用)检查

改进了 Possibly blocking call in non-blocking context(可能在非阻塞上下文中使用阻塞调用)检查

如果您在错误的上下文中使用协程,Possibly blocking call in non-blocking context(可能在非阻塞上下文中使用阻塞调用)检查会发出警告。 在此版本中,此检查既提供警告,也提供上下文相关的快速修复。

另外,我们还做出了一些额外改进。 此检查现在涵盖更多情况,并且可自定义,能够更好地适应特定环境。

范围的内联提示

范围的内联提示

有时,Kotlin 所支持范围的各种声明方式可能较难理解。 为了将其简化,我们添加了内联提示,用简单的数学符号解释范围内单词或符号的含义。 如果您不需要此功能,可以右键点击提示并选择 Disable ‘Ranges’ hints type(禁用“范围”提示类型)将其禁用。

更出色的 New Project(新建项目)向导

更出色的 New Project(新建项目)向导

我们重新设计了 New Project(新建项目)向导的布局,为所有字段添加了工具提示,让您轻松了解所需信息。 模板部分也已更新。我们移除了一些冷门模板并添加了一个新模板,可供创建 Compose Web 应用程序。

最后,项目设置步骤也得到简化。 现在只有基本字段需要填写。

Scala

Scala 3 支持改进

Scala 3 支持改进

此版本的主要焦点是 Scala 3 支持。 我们为 end 标记添加了高亮显示、导航和自动补全。 现在,givenusingexport 关键字、软关键字和安静语法已具有自动补全。 TASTy 阅读器可以解析 package object,以及更高级类型中的差异和边界。 词法分析器和解析器错误的高亮显示速度已显著提升。 与 Scala 3 兼容的检查也已增加。 我们改进了 given 导入的解析并已支持 final 顶级成员和 abstract lazy val

将 Scala 3 / Scala 2 交叉编译项目作为 Scala 2 打开的选项

将 Scala 3 / Scala 2 交叉编译项目作为 Scala 2 打开的选项

许多应该针对 Scala 2 和 Scala 3 编译的项目被建模针对 Scala 2 交叉编译的 Scala 3 项目,而其实际上是 Scala 2 项目。

将此类项目作为 Scala 2 打开,可以让 IDE 使用正确的 Scala 版本,这种操作也更为可靠。

Scala 的数据流分析

Scala 的数据流分析

Scala 插件现在支持数据流分析,可以帮助您更轻松地检测编程错误。 您可以阅读我们最近的博文了解更多信息。

Scala 编译器选项的自动补全

Scala 编译器选项的自动补全

Scala 编译器中选项极多,很少有程序员能够全部掌握。 此外,这些选项还因所用 Scala 版本而异。

您现在可以自动补全适用的选项,还可以查看各个选项的快速文档。

范围的嵌入提示

范围的嵌入提示

您是否有过这样的疑问:1 to 3 是包含范围还是不包含范围? 1 until 3 又是什么? Range(1, 3) 呢? 现在,答案会清楚地呈现在您眼前。

JavaScript

用于更新依赖项的新检查

用于更新依赖项的新检查
Ultimate

IntelliJ IDEA 2021.3 允许您直接从编辑器将 npm 软件包更新到最新版本! 打开 package.json 文件,将文本光标放在要更新的软件包版本上,在 macOS 上按 ⌥⏎ 或在 Windows 和 Linux 上按 Alt+Enter,然后选择 Update ‘package name’ to the latest version(将“软件包名称”更新到最新版本)。 将鼠标悬停在软件包版本上时,还会显示快速修复。

改进了 HTML 代码补全

改进了 HTML 代码补全
Ultimate

我们改进了代码补全在 HTML 中的工作方式。 每当您在编辑器中输入标记名称或缩写或者调用代码补全,IntelliJ IDEA 都会立即显示相关建议。 先前,只有首先输入 < 才会显示。 此外,字符实体引用的代码补全现在也可以更好地工作。

SSH

SSH 连接的代理支持

这项备受期待的新功能允许您在 Preferences/Settings | Tools| SSH Configurations(偏好设置 / 设置 | 工具 | SSH 配置)中为 SSH 配置指定 HTTP 或 SOCKS 代理服务器。 在新的 HTTP/SOCKS Proxy(HTTP/SOCKS 代理)部分下,您可以选择代理类型,输入主机名和端口,并在必要时使用用户名和密码应用身份验证。 也可以将 SSH 代理设置与全局 IDE 设置同步。 选中 Use global IDE proxy settings(使用全局 IDE 代理设置)复选框即可。

性能分析器

比较 .jfr 快照

比较 .jfr 快照
Ultimate

更新后,可以更轻松地检查更改是适用于程序还是导致了回归。 为此,只需在 Profiler(分析器)工具窗口中打开两个要比较的快照。 在最近的快照中,点击差异图标,选择将用作基线的快照。 IDE 将以火焰图、调用树或方法列表的形式显示结果。

Windows 上的 Async Profiler 2.0 支持
Ultimate

在 v2021.2 中,我们为 macOS 和 Linux 版本的 IntelliJ IDEA 添加了对 Async Profiler 2.0 的支持。 从 v2021.3 开始,Windows 版本也将直接支持 Async Profiler 2.0。 这一支持将使分析更为流畅,也改进了原生函数在快照中的显示方式。

构建工具

重新设计了 Maven 配置

重新设计了 Maven 配置

我们在此版本中对运行/调试配置做出了多项改进,其中包括 Maven 配置的重新设计。 关键参数均集中在一个屏幕上,其他选项可通过 Modify options(修改选项)调取。

.mvn/maven.config 支持

.mvn/maven.config 支持

如果要在 .mvn/maven.config 文件中为每个项目配置 Maven 设置,首先请转到 Preferences/ Settings | Build, Execution, Deployment | Maven(偏好设置 / 设置 | 构建、执行、部署 | Maven),然后在屏幕底部选择 Use settings from .mvn/maven.config(使用来自 .mvn/maven.config 的设置)。 请记住,此文件中的设置会覆盖标准的 Maven UI 设置。

版本控制

远程分支的 Checkout and Rebase onto Current(签出并变基到当前分支)

远程分支的 Checkout and Rebase onto Current(签出并变基到当前分支)

如果需要签出所选分支并将其变基到当前签出的分支之上,现在您可以使用 Checkout and Rebase onto Current(签出并变基到当前分支)操作,该操作此前仅适用于本地分支。 在 IntelliJ IDEA 2021.3 中,您也可以将其用于远程分支。

重新组织了 VCS 设置

我们改进了 Preferences/Settings | Version Control(偏好设置 / 设置 | 版本控制)中设置的结构,并使部分关键配置更加醒目。 Version Control(版本控制)节点现在是导航的起点,带有指向所有可用设置的链接。 转到 Git 节点后,您可以发现所有设置已被划分为几个部分,对应最重要的流程:Commit(提交)、Push(推送)和 Update(更新)。 此外,这些部分中的参数现在组织得更合乎逻辑。 我们还为 Directory mappings(目录映射)添加了一个单独的节点,并将后台操作设为默认开启。 Background(后台)节点不再存在。

新的 Changes(更改)工具窗口

Changes(更改)工具窗口

从 IntelliJ IDEA 2021.3 开始,IDE 将在位于编辑器左侧的单独的 Changes(更改)工具窗口中显示每次提交的数据之间的差异。

新的 Push All up to Here(推送此前所有提交)操作

新的 Push All up to Here(推送此前所有提交)操作

新增操作允许您只推送您确信的提交,将其他提交留待以后处理。

这将使您可以推送您在 Git 工具窗口的 Log(日志)标签页中所选及其之前的提交。 要使用此操作,首先右键点击停止处的提交,调用上下文菜单,然后选择新的 Push All up to Here(推送此前所有提交)操作。

Align Changes Highlighting(对齐更改高亮显示)

Align Changes Highlighting(对齐更改高亮显示)

我们在齿轮图标下的 Diff(差异)屏幕设置中添加了新的 Align Changes Highlighting(对齐更改高亮显示)选项。 此功能可改良 Diff(差异)的易读性,使未更改的行对齐并并排显示,特别适用于复杂修改。 这有助于您更清楚地查看已添加或移除的代码。

终端

Windows 上的 ConPTY 支持

Windows 上的 ConPTY 支持

In v2021.3, we’ve introduced support for the new ConPTY API on Windows. It addresses several issues users were having with the old implementation, which was based on winpty, and adds support for 24-bit colors in the terminal.

键盘缓冲支持

键盘缓冲支持

我们在 IntelliJ IDEA 终端中新添加的键盘缓冲支持可预测文本修改并立即以浅灰色显示。 此功能将帮助您在本地和远程计算机上保持同样的终端输入速度。

调试器

从调试器计算表达式

从调试器计算表达式

在此版本中,我们改进了 Evaluate(评估)功能的曝光度。 此前,用户在进行评估时大多倾向于使用监视。 用户会创建一个监视再将其移除,而不会使用 Evaluate(评估)对话框。 Evaluate(评估)字段现在可在 Debug(调试)工具窗口中直接访问,这让计算表达式最便捷的方式更为醒目。

框架与技术

HTTP 客户端中的 gRPC 请求
Ultimate

IntelliJ IDEA 的 HTTP 客户端为 gRPC 请求提供了基本支持。 当您输入 GRPC 关键字来启动请求时,HTTP 客户端会提供代码补全。 因此,您的 IDE 会提示所有已知的 gRPC 服务、特定服务器的一元和服务器流方法,以及(最重要的)请求正文的字段。

另一个新功能允许您在 HTTP 客户端中生成 gRPC 请求。 为此,只需点击 .proto 文件中的装订区域图标。

HTTP 客户端中的二进制响应

HTTP 客户端中的二进制响应
Ultimate

HTTP 客户端可以检测响应中的图像并在响应控制台中显示预览。

对 HTTP 客户端中文本流和 JSON 流的支持
Ultimate

在 IntelliJ IDEA 中测试流应用程序时,HTTP 客户端将即时显示输出,您不再需要等待流结束。 这是因为我们添加了对以下内容类型的支持:text/event-streamapplication/stream+JSONapplication/x-ndjson。 当流结束时,您也会收到通知。

到 HTTP 客户端中自定义文件或目录的输出重定向
Ultimate

在 HTTP 客户端中,可以将输出重定向到自定义文件或目录。 您可以使用两个运算符进行强制重定向和软重定向:

  • >> 运算符始终会创建一个新文件,如果请求的文件名已经存在,则向文件名添加 -n 后缀。
  • >>! 运算符将重写已经存在的文件。

对 HTTP 请求标识符的支持
Ultimate

对于请求标识符,您可以通过 @name 将其添加为注释,也可以在第一个分隔符 (###) 中将其添加为文本。 IDE 能够理解这些标识符,并允许您从 Services(服务)工具窗口以及 Run Configuration(运行配置)、Run Anything(运行任何内容)和 Search Everywhere(随处搜索)对话框调用其请求。

Qute 模板语言支持

Qute 模板语言支持
Ultimate

Qute 现在也是受支持的模板语言。 这意味着 IntelliJ IDEA 将提供代码高亮显示、自动补全和其他实用功能,帮助您为 Quarkus 项目开发模板。

辅助规范文件中的引用解析和补全

辅助规范文件中的引用解析和补全
Ultimate

IntelliJ IDEA 可以检测 OpenAPI 规范是否位于多个文件中并通过 $ref 链接,也将提供补全。

反应式代码的新阻塞和非阻塞注解

反应式代码的新阻塞和非阻塞注解
Ultimate

We’ve made 2 additions to the JetBrains annotation collection. 将 'org.jetbrains:annotations:23.0.0' 添加到项目依赖项后,您可以将类和方法注解为 @Blocking@NonBlocking。 IDE 由此可在 Kotlin 协程或使用 Project Reactor、RxJava 和 SmallRye Mutiny 的反应式代码等非阻塞上下文中检测阻塞调用。

另外,IDE 已自动支持来自 Micronaut 和 SmallRye Mutiny 的相应注解。

改进了 Spring 和 Java EE 中的阻塞代码检测

改进了 Spring 和 Java EE 中的阻塞代码检测
Ultimate

IntelliJ IDEA 可以在 Spring 和 Java EE 中检测更多阻塞代码的情况,包括 Spring Data 的 JpaRepository 与 CrudRepository、RestTemplate 与 JdbcTemplate、Spring Feign 接口方法、JPA EntityManager 调用以及注解为 @Transactional 的方法和类。

改进了 Spring Boot 配置

改进了 Spring Boot 配置
Ultimate

我们重新设计了 Spring Boot 项目的 Run/Debug Configurations(运行/调试配置)对话框。 新设计类似于先前更新的 Java 配置。 新界面在一个屏幕上显示多个关键设置,并允许您通过 Modify Options(修改选项)配置更多参数。

改进了对 Spring Boot 应用程序文件的支持

改进了对 Spring Boot 应用程序文件的支持
Ultimate

当 spring.config.import 键用于引用另一个文件时,IntelliJ IDEA 将在额外配置文件(属性或 .yaml 文件)中提供代码补全。 它也更擅长设置复杂和自定义 Spring Boot 配置文件。

对 application.yaml 的引用

application.yaml 的引用
Ultimate

对于 Spring Boot 项目,IDE 现在支持代码补全和从 @Value@ScheduledEnvironment.getProperty() 中查找对 application.yaml 的引用的用法。

改进了对从 Spring Data 仓库使用的 @NamedQuery 的支持

改进了对从 Spring Data 仓库使用的 @NamedQuery 的支持
Ultimate

Query method completion(查询方法补全)现在适用于在 Spring Data JPA 项目中声明为 @NamedQuery 的查询。 您还可以通过装订区域图标导航到 @NamedQuery 的定义。

Kotlin 对 Java EE CDI 的支持
Ultimate

从 v2021.3 开始,您可以在 Kotlin 文件中使用所有 CDI 检查。 此前,这些检查仅在 Java 文件中可用。 另外,我们还在 Kotlin 文件中添加了 CDI 装订区域图标。 这将允许您轻松导航到注入点或注入候选项、Bean 标记、处置器方法和事件。

改进了 UML 类图
Ultimate

我们在 Java 和 Kotlin 中加快了 UML 类图的所有进程。 图打开、类别间切换、缩放和撤消/重做功能现在都可以更快完成。 其他显著变化包括新网格、成员高亮显示和快速文档预览弹出窗口。

如果需要控制图外观,请使用上下文菜单,选择 Appearance(外观)。

数据库工具

数据编辑器聚合

数据编辑器聚合
Ultimate

我们增加了显示一系列单元的 Aggregate(聚合)视图的功能。 这是一项备受期待的功能,可帮助您管理数据并免除编写额外查询的需求! 这使数据编辑器更强大、更易用,也更接近 Excel 和 Google 电子表格。

选择要查看视图的单元范围,然后点击鼠标右键并选择 Show Aggregate View(显示聚合视图)。

映射 DDL 数据源和真实数据源

映射 DDL 数据源和真实数据源
Ultimate

上一版本引入了基于真实数据源生成 DDL 数据源的功能,此版本是其逻辑延续。 现在,此工作流已获得完全支持。 您可以:

  • 从真实数据源生成 DDL 数据源:参阅 2021.2 公告
  • 将 DDL 数据源映射到真实数据源。
  • 在两个方向上比较和同步。

请注意,DDL 数据源是一种虚拟数据源,其架构基于一组 SQL 脚本。 将这些文件存储在版本控制系统中即可将数据库保留在 VCS 下。

数据配置属性中新增了 DDL mappings(DDL 映射)标签页,用于定义映射到各 DDL 数据源的真实数据源。

映射 DDL 数据源和真实数据源

新的数据库差异窗口
Ultimate

上下文菜单提供了新的 Database Diff(数据库差异)窗口。 它具有更好的 UI,并且在右侧窗格中清楚显示了执行同步后您将获得的结果。

右侧窗格中的图例显示了不同颜色潜在结果的含义:

  • 绿色和斜体:对象将被创建。
  • 灰色:对象将被删除。
  • 蓝色:对象将被更改。

Script preview(脚本预览)标签页显示结果脚本,可在新控制台中打开或从此对话框运行。 此脚本的结果是应用更改,使右侧数据库(目标)成为左侧数据库(源)的副本。

除了 Script preview(脚本预览)标签页,底部窗格中还有两个标签页:Object Properties Diff(对象属性差异)和 DDL Diff(DDL 差异)。 它们显示源数据库和目标数据库中对象的特定版本之间的差异。

内省级别

内省级别
Oracle
Ultimate

我们为 Oracle 数据库引入了三个级别的内省

  • 级别 1:所有支持对象的名称及其签名,不包括索引列和私有软件包变量的名称
  • 级别 2:除源代码外的所有内容
  • 级别 3:所有内容

内省在级别 1 上最快,在级别 3 上最慢。 使用上下文菜单根据需要切换内省级别。

内省级别可针对架构或整个数据库设置。 架构从数据库继承内省级别,但也可独立设置。

内省级别由位于数据源图标旁的药丸状图标表示。 药丸越满,级别就越高。 蓝色图标表示内省级别为直接设置,灰色表示继承。

QA 工具

页面对象编辑器

编辑 Selenium 页面对象

此次重大更新带来了对 Selenium 中 UI 测试自动化的支持,可视化编辑器可以帮助您维护现有的页面对象类。 此前,只能生成新的页面对象类,现在,您可以在没有可视化编辑器的情况下直接更新现有页面对象类。 IntelliJ IDEA 将自动检测页面对象类并在装订区域面板上以相应图标指示。 点击装订区域面板,即可打开可视化编辑器并查看待添加到页面对象类的新元素。

测试数据

测试数据

Test Automation Kit 的最新插件不仅修正了一些小错误,还添加了一个在多个数据生成器设置中使用的实用功能。 现在您可以使用多行定义修改前缀、后缀和分隔符。

测试管理

测试运行层次结构

我们实现了对多级测试运行的支持。 您现在可以为特定功能域或测试类型创建多个下级测试运行。 每个上级测试运行都会聚合下级测试运行的结果,并提供所有下级相关测试运行的汇总统计信息。

共享步骤

使用“本地 TMS”功能管理 Markdown 文件中的测试用例时,您能够轻松声明测试步骤并在多个测试用例之间共享。 共享步骤被声明为具有唯一数字 ID 的常规测试用例。 您可以在其他测试用例中引用该测试用例,IntelliJ IDEA 将在为自动测试生成预览、测试运行或代码模板时替换这些引用的测试用例步骤。

Kubernetes

改进了 Helm 模板的格式设置

改进了 Helm 模板的格式设置
Ultimate

您可以格式化 Helm 模板并确保结果正确。 我们已经修正了所有相关问题,让格式设置更加可靠。 要查看改进,转到 Code | Reformat code or Reformat file(代码 | 重新设置代码格式或重新格式化文件),或者在 macOS 上按 ⌥⌘L 或在 Windows 和 Linux 上按 Ctrl+Alt+L

Helm 模板中块元素的高亮显示

Helm 模板中块元素的高亮显示
Ultimate

我们在 Helm 模板中添加了对 ifelserangewithdefine 等块元素的高亮显示。 这将使包含 Go 模板 include 的代码更易处理。

ConfigMap 资源中的语言注入

ConfigMap 资源中的语言注入
Ultimate

IntelliJ IDEA 现在支持在 ConfigMap 资源中为带有 .yaml.json.properties 等扩展名的键自动注入语言代码。 注入的代码段以绿色高亮显示,支持代码洞察功能,包括代码补全、错误高亮显示等。

重复最新命令

重复最新命令
Ultimate

现在,可以从 Services(服务)工具窗口重新运行最新的 Helm 命令。 您只需要点击右上角的新图标。 例如,运行 helm lint 命令后,点击图标即可重复执行。

Docker

从 Minikube 连接到 Docker

从 Minikube 连接到 Docker

现在可以轻松地从 Minikube 连接到 Docker 守护程序。 在 Preferences/ Settings | Build, Execution, Deployment(偏好设置 / 设置 | 构建、执行、部署)中,选择 Minikube 单选按钮。 在旁边的字段中,IDE 将自动显示检测到的 Minikube 的 docker-daemon 环境以供连接。

更简单的连接过程

更简单的连接过程

双击必要的节点,或者在 macOS 上使用 ⌘Enter 或在 Windows 和 Linux 上使用 Ctrl+Enter 快捷键,即可快速连接到 Docker。 Start container(启动容器)操作也可通过此快捷键调用。

新的 Clean up(清理)操作

新的 Clean up(清理)操作

The new Clean up action works just like the prune terminal command. 右键点击 Networks(网络)、Volumes(卷)、Containers(容器)或者 Images(映像)节点,选择 Clean up(清理),随后 IDE 将删除未使用的对象。 您也可以将此操作应用于 Docker 根节点,一键修剪所有多余对象。

对 Compose V2 的支持

IntelliJ IDEA supports Compose V2, which allows you to run Docker Compose commands as docker compose, instead of docker-compose (with a dash).

要激活此选项,首先转到 Preferences/Settings | Build, Execution, Deployment | Docker | Tools(偏好设置 / 设置 | 构建、执行、部署 | Docker | 工具),然后勾选 Use Compose V2(使用 Compose V2)复选框。

镜像层

镜像层

Image layers allow you to track all the commands that are applied to images. 要访问镜像层,首先选择一个镜像,然后转到 Layers(层)标签页。 在这里选择一个命令后,点击屏幕右侧的 Analyze image for more information(分析镜像以获取更多信息)链接,即可获取应用于各个镜像层的更改的详细信息。

将容器另存为镜像

将容器另存为镜像

如果您想保留预配置的容器,可以将其另存为本地镜像,并根据需要推送以远程使用。 转到 Services(服务)工具窗口,右键点击容器,然后选择 Image | Save as a new Image(镜像 | 另存为新镜像)。

注册表更新

我们对 Docker 注册表进行了多项更改。 First off, the IDE now displays all available registries in separate nodes in the Services tool window. 此前,我们只支持 Docker Hub 注册表。 在 v2021.3 中,我们添加了对 GitLab (registry.gitlab.com)JetBrains Space (<username>.registry.jetbrains.space) 的支持。

您可以在 Services(服务)工具窗口中展开注册表节点,选择必要的镜像,并将其拉取到所需位置。 如果您有多个 Docker 连接,IDE 会询问您从何处拉取镜像。 镜像可被推送到任何添加的注册表,在 Push(推送)对话框中,IDE 会自动检测给定注册表中的可用命名空间,并让您从下拉列表中进行选择。

最后,您还可以对 JetBrains SpaceGitLabDocker Hub 注册表中的镜像使用镜像补全。

Podman 支持

IntelliJ IDEA now supports Podman as an alternative way to manage pods, containers, and images. Before using Podman in the IDE, configure a connection yourself.

在操作系统上安装和配置 Podman 后,转到 Preferences/Settings | Build, Execution, Deployment | Docker(偏好设置 / 设置 | 构建、执行、部署 | Docker),选择 TCP socket (TCP 套接字)单选按钮,填写必填字段,即可完成连接。

Space 集成

从 IDE 创建合并请求和代码审查

您现在可以在 Space 中为项目创建合并请求和代码审查。 您有 2 种选择:

  • 点击 Code Reviews(代码审查)工具窗口顶部工具栏上的 + 图标,选择所需操作。
  • Git 工具窗口的 Log(日志)标签页中,右键点击列表中的提交,选择 Space | Create merge request(Space | 创建合并请求) 或 Create code review(创建代码审查)。

有关详情,请参阅此博文或查看下方 gif。

将文件标记为已查看

将文件标记为已查看

执行代码审查时尚未修改的文件都将标有蓝点,蓝点会在您打开文件后消失。 这样可以避免错过重要的更改。 如果要稍后返回更改,可以从上下文菜单中选择 Mark as Not Viewed(标记为未查看)。 此功能也适用于 GitHub 拉取请求。

其他