IntelliJ IDEA 2021.1 最新变化

IntelliJ IDEA 2021.1 引入 Java 16 和 WSL 2 支持、Space 集成、Code With Me、IDE 内部的 HTML 预览窗口、在 SSH 主机和 Docker 容器中运行代码的选项以及其他实用更新。 您可以观看这段视频概览或继续阅读,详细了解最重要的变化!

Space 集成

Space 集成

Space 集成,我们新的软件开发和团队协作平台,现在可以开箱即用。 您可以通过欢迎屏幕上的 Get from VCS 连接到 JetBrains Space 中的组织。 登录后,您可以查看和克隆项目仓库,检查队友的代码以及编写 Space Automation 脚本。

WSL 2 支持

UX 外部依赖项

Java 项目 WSL 2 支持

我们知道您一直在期待这次更新! 现在,您可以在 IntelliJ IDEA 中使用 WSL 2 中的 Java 项目。 IDE 可以检测 JDK 安装、安装 JDK、编译和运行 Maven 和 Gradle 项目以及使用 IntelliJ IDEA 构建系统的项目。

协作开发

Space 集成

Code With Me,一项用于协作开发和结对编程的新服务,已在 IntelliJ IDEA 中开箱即用。 它还具有视频和语音通话功能,让远程协作更上一层楼。 无论您何时想与同事交流,都可以直接从 JetBrains IDE 中发起音频和视频通话。 Code With Me 完美匹配 1:1 会议和小组会议,您可以邀请数十人参与。 要详细了解这些更新,请阅读我们的博文

运行目标

Space 集成

借助 Run Targets 功能,您可以在 Docker 容器或远程机器上运行、测试、分析和调试应用程序。 IntelliJ IDEA Ultimate 目前允许您在 Docker、SSH 和 WSL 目标上运行 Java 应用程序、JUnit 测试以及 Maven、Gradle、Micronaut、基于 Maven 的 Quarkus 和 Spring Boot 项目。 有关详情,请参阅此博文

用户体验

编辑器 HTML 预览

内置 HTML 预览

新的内置浏览器预览可以让您快速预览 HTML 文件。 在编辑器右上角,点击微件中带有 IntelliJ IDEA 徽标的图标即可将其打开。 您如果在 HTML 中进行了更改,或者改变了链接的 CSS 和 JavaScript 文件,则预览将即时更新。

UX 外部依赖项

在搜索范围内自定义外部依赖项

我们已经使搜索范围更易于自定义。 您可以将 External Dependencies 设置为包含在范围中或从范围中排除。 转到 Preferences/Settings | Appearance & Behavior | Scopes,使用右侧按钮更改 External Dependencies 的状态。

HPROF 内存查看器

在 Windows 上快速访问最近的项目

我们更新了对 Windows 跳转列表的支持,现在,右键点击任务栏或开始菜单上的 IntelliJ IDEA 图标即可打开您最近的项目。

改进了辅助功能

我们的一大关键任务是让所有用户都能不受阻碍地使用我们的 IDE。 在这个版本中,我们为欢迎屏幕、Project Structure 视图和 VCS 日志中的 UI 元素添加了更多标签。 启用屏幕阅读器后,现在可以正确读出这些元素以及装订区域图标。 我们也在努力改善对 macOS 用户的辅助功能支持。

在 Windows 中将高对比度模式与 IDE 主题同步

如果您在 Windows 上使用了高对比度模式,当您第一次启动 IDE 时,您的 IDE 将自动应用高对比度主题。

版本控制

Pull Request 支持

更好的 Pull Request 支持

Pull Request 可以更快完成创建:只需在 Pull Request 视图中点击 + 图标并填写所有细节。 视图顶部的新标签页包含关于您的 Pull Request 的所有信息。 双击 Files 标签页中的任意文件,IDE 将打开编辑器中的差异。 您还会发现对 Pull Request 模板的支持,其中包含 Pull Request 的描述文本。

Git 提交模板

支持 Git 提交模板

IntelliJ IDEA 支持 Git 提交模板。 如果要创建自定义提交消息,您可以使用模板,在其中填写必要信息。 然后,IDE 将把文本显示为初始提交消息。

提交前检查

为提交前检查配置配置文件

现在,在将更改提交到 VCS 之前,可以轻松选择代码检查配置文件。 点击齿轮图标显示提交选项,选中 Analyze code 复选框,点击 Choose profile,然后选择所需的配置文件。 您的 IDE 会在提交前用它来检查代码。

URL 嵌入提示

从另一个分支获取文件

在 v2021.1 中,您可以通过 Compare with branch 对话框从另一个分支获取文件。 您只需选择要获取的文件,然后点击 Show diff 旁边新增的向下箭头图标。

改进了分支

保存到 Shelf

您可以使用新的 Save to Shelf 操作将更改保留在本地并复制到 Shelf。 在 macOS 上按 ⇧⌘A(在 Windows 或 Linux 上按 Ctrl+Shift+A),然后输入 Save to Shelf 即可访问此操作。

Perforce 集成

Perforce 插件现在与 IntelliJ IDEA Community Edition 完全兼容,并与您的 IDE 捆绑。 The source code for this plugin is available on GitHub.

编辑器

可调整字体

字体粗细选项

在长时间的编码工作中,选择一个舒适的编辑器字体非常重要。 最近增加的版式设置让这个选择变得更加简单和个性化。 在 v2021.1 中,您可以在 Preferences / Settings | Editor | Fonts 中调整主字体和粗体字体的粗细。

最大化分割视图中的标签页

最大化分割视图中的标签页

打开多个垂直拆分编辑器的标签页时,可以双击其中任意一个以最大化该特定标签页的编辑器窗口。 只需再次双击即可将窗口恢复到原始大小。

JSONPath 支持

IntelliJ IDEA 现在支持使用 Goessner 或 Jayway 语法的 JSONPath 表达式。 对于 JSON 文件,您可以通过 Edit | Find 调用 Evaluate JSONPath Expression 操作,在 JSONPath 写入查询。 如果文件包含由 JSONPath 编写的部分,您可以使用相同的功能并添加 JSON 输入以测试 JSONPath 查询。

JSON Lines 支持

JSON Lines 支持

IntelliJ IDEA has support for the newline-delimited JSON Lines format, which is used for working with structured data and logs. IDE 将识别 .jsonl.jslines.ldjson.ndjson 文件类型。

分析器 Ultimate

我们重新设计了分析器 UI。 Home 窗口的信息量更大,将分析器附加到进程的速度也更快。 我们还添加了两个新操作,可以通过右键点击正在运行的应用程序来访问:Capture Memory Snapshot,用于获取应用程序的 *.hprof 快照;CPU and Memory Live Charts,会打开一个带有可视化工具的标签页,用于跟踪资源消耗。

Java

支持 Java 16

IntelliJ IDEA 具有对 Java 16 的基本支持,于 2021 年 3 月发布。 部分更新包括内部类声明显式或隐式静态成员的新功能,以及 Stream.collect(toUnmodifiableList()) 的变化,其已转换为 stream.toList()。 IDE 在流的代码补全列表上首先显示 toList() 项。

数据流分析的新检查

IntelliJ IDEA 会在数组初始化为负数时发出警告。 它还可以识别 Arrays.copyOf()Collection.toArray() 方法。 而且,IDE 还支持拆箱或转换整数的方法,如 Integer.longValueByte.intValue

其他改进的新检查

现在,您可以缩小 for-each 循环参数类型,避免不必要的转换。 如果筛选器使用的值与映射器生成的值相同,则另一项检查允许您通过互换 .filter().map() 调用简化代码语法。 此外,将 StringBuffer 替换为 StringBuilder 的检查已更新,涵盖了更多情况。

链式构建器方法的格式设置

链式构建器方法的新格式设置选项有助于提高其可读性。 您可以在 Chained method calls 下拉列表的 Preferences/Settings | Editor | Code Style | Java | Wrapping and Braces 中配置格式化程序。 builder methods 选项可以让您创建一列方法,IDE 将把这些方法视为构建器方法,把每个方法置于单独一行。 选中 Wrap first call 复选框时,第一个构建器方法也将出现在单独一行上。 您也可以手动添加缩进,如果勾选 Keep builder methods indents 复选框,IDE 将使其保持不变。

Kotlin

Kotlin 快速高亮显示

更快地高亮显示代码问题

实时代码分析能够更快地检测到错误和警告。 与之前版本相比,IntelliJ IDEA 2021.1 几乎可以即时高亮显示代码问题。 现在,代码补全机制可以更快地运行,并且 IDE 对冻结的响应有所改善。

Kotlin 快速高亮显示

改进的代码补全

Kotlin 中的代码补全机制提供了需要类型参数的函数。 选择此类函数后,IDE 会将正确的类型参数添加到前面的代码。

更好的代码覆盖率

IntelliJ IDEA 的 code coverage 运行程序现在完全支持 Kotlin 的内联函数和协程。

重构改进

我们重新设计了 Change Signature 重构的 UI,并添加了一个新复选框,用于将添加的参数设置为默认参数。

Kotlin 调试器更新

IntelliJ IDEA 调试器可以评估 Kotlin 中的 get 表达式,并将其显示在 Variables 视图中。 您也可以从 IDE 跳转到源。

Kotlin UML

适用于 Kotlin 的 UML 类图

UML类图现已适用于编译到 JVM 的 Kotlin 代码,并且可以同时显示 Java 和 Kotlin 类。 我们计划即将支持其他 Kotlin 后端的 UML 图。

Scala

Type Diff 中的 Kind

Type Diff 中的 Kind

Scala 开发者用到 kind 程度较高的类型时,往往倾向于采用独特的样式。 Type Diff 工具提示现在支持 kind。

机器学习补全

机器学习补全

该版本引入了基于机器学习的 Scala 代码补全。 您可以在 Settings | Editor | Code Completion | ML | Scala 中启用该功能。

编译图表中的阶段和单元

除了模块,编译图表现在还可以显示阶段和单元,让您更深入地了解编译。 打开 Build 工具窗口,选择 Chart 节点,选择细节的所需 Level

IntelliJ 平台插件模板

IntelliJ 平台插件模板

The sbt-idea plugin makes it possible to develop IntelliJ Platform plugins using Scala and sbt. 新增的内置 Project Wizard 模板将使过程更加简单(这个功能取决于 Plugin DevKit)。

构建工具

HPROF 内存查看器

我们已经恢复了导入 Maven 项目时自定义设置的功能。 要激活该选项,请在 File | New Projects Settings | Preferences for new Projects | Build, Execution, Deployment | Build Tools | Maven 中选择 Show settings dialog for new Maven projects

框架与技术 Ultimate

Pull Request 支持

支持替换 http:// 的新检查

您的 IDE 现在可以高亮显示 http:// 协议用法,并将其更改为 https://。 该检查默认启用。 您可以将 URL 添加到忽略的 URL 列表,或者在 Preferences/Settings | Editor | Inspections | SecurityLink with unencrypted protocol 中禁用对整个或部分项目的检查。

Pull Request 支持

改进了 HTTP 客户端

如果您从 HTTP 客户端运行请求,响应将出现于在此版本获得 UI 和 UX 更新的 Services 工具窗口。 您可以折叠返回的 HTML、JSON 或 XML,复制其正文,隐藏行号,选择显示格式,并快速滚动到响应的顶部和底部。

HTTP 客户端中的 SSL 支持

HTTP 客户端中的 SSL 支持

如果将 SSL 客户端身份验证用于 https:// 协议,则可以在 HTTP 客户端中配置 SSL 设置。 为此,请点击 Add environment file,然后选择 Private。 IDE 将自动创建一个文件,您可以在其中添加 SSL 配置。 代码补全将提供帮助。

Swagger UI 支持

适用于 JVM 框架的新项目向导

我们重新设计了用于创建 Spring、Micronaut、Quarkus 和 MicroProfile 项目的向导。 开始一个新项目现在只需两步! 第一个屏幕方便地包含了所有核心信息,第二个屏幕则显示了特定于框架的设置。 新的 UI 更加整洁,项目创建流程也更加直观。

Pull Request 支持

改进了 JPA 支持

我们为包含 JPA 实体的项目添加了重新设计的装订区域图标。 这些图标可以点击,并包含了对实体及其特性最实用的操作列表。 我们还改进了对 Kotlin 和多模块项目的 JPA 支持。

适用于 Jakarta EE 9 的 JPA 控制台

适用于 Jakarta EE 9 的 JPA 控制台

现在可以使用 JPA 控制台在 Jakarta EE 9 项目中编写和运行 JPQL 查询。

UML 图的新配色方案

UML 图的新配色方案

我们给使用浅色主题的用户带来一个好消息:UML 图现已拥有新的配色方案,更加整洁易读。

Swagger 改进

Swagger 支持带有外部文件引用 ($ref) 的规范。 此外,规范文件的 Structure 视图也获得更多节点,包括 SecurityCallbacksExamples

Selenium 页面对象生成器

IntelliJ IDEA 现在支持用于检测 Web 应用程序 DOM 元素的实验性工具。 使用前安装 Selenium UI Testing 插件。

您可以通过 Tools | Generate Selenium Page Object 访问这个新工具。 在打开的对话框中,输入网页地址,选择任意 DOM 元素,然后将其添加到下面的区域。 您可以在那里更改元素的语言或框架。 我们的页面对象生成器支持Java、Kotlin 和 Groovy 以及 Selenium、FluentLenium、Selenide、Geb、Atlas 和 JDI Light 等框架。

您可以自定义每个框架的代码模板

Kubernetes Ultimate

快速删除资源

快速删除资源

可以从编辑器中删除当前上下文中的所有集群资源 - 只需点击装订区域中的 Run 图标,然后选择 Delete

支持 Kustomize 3.7.0 组件

您可以在 Settings/Preference | Languages & Frameworks | Kubernetes 的 Kustomize 版本下拉列表中选择新的 Kustomize 3.7.0 组件。

支持 kind: List

支持 kind: List

如果您需要使用 kubectl get <resource type> -o yaml 命令返回的内容或将资源整理到列表,IDE 现已支持 kind: List。 在列表的每个资源中,您都可以重命名标签,并通过装订区域图标使用代码辅助和导航。 您还可以将列表与多文档 YAML 文件相互转换。

Helm 项目的非默认值

可以创建自定义 values.yaml 文件。 IDE 会将名称中带有“values”的文件视为值文件。 从上下文菜单选择 Configure Helm ParametersHelm LintHelm Template,打开对话框,配置图表模板将使用的值文件。 您也可以将值粘贴到对话框的 Additional values 区域手动添加值。

Docker

改进了 Run/Debug Configuration

Run/Debug Configuration 对话框现在更加简洁灵活。 要添加所有必要的构建选项,请点击 Modify options。 要添加运行选项,请点击 Modify。 IDE 现在会验证每个选项以确保其兼容。 我们支持 Docker Compose 的所有现有选项。 代码补全现在支持 Dockerfiles Run OptionsImage ID or name.

BuildKit 支持

BuildKit 支持

我们增加了对 BuildKit 的实验性支持,可加快项目构建速度。 同时简化了从整个多阶段 Dockerfile 分别构建命名阶段的操作。 您只需单击阶段名称旁边的 hammer 图标,IDE 即可使用 BuildKit 构建映像。

多阶段 Dockerfiles 中的 UI 增强

多阶段 Dockerfiles 中的 UI 增强

如果使用多阶段 Dockerfile,您现在可以折叠阶段并在阶段之间发现明显的分隔线。

取消 Docker 运行

取消 Docker 运行

正在运行的 Dockerfile 可以快速停止。 为此,请转到 Services 工具窗口,选择正在运行的项,调用上下文菜单,然后点击 Stop Deploy

Docker 挂载的环境变量和宏

Docker 挂载的环境变量和宏

使用 Bind mount 时,现在可以更快地输入主机上目录的路径。 补全机制允许您在 Run/Debug Configuration 的 Bind mount 选项中选择宏和环境变量。

Dockerfiles 中的映像补全

Dockerfiles 中的映像补全

代码补全现在可以用于映像名称。

JavaScript Ultimate

改进了对 Stylelint 的支持

Inspecting your CSS code with Stylelint is now easier. 现在,点击几下即可解决这个常见的 linter 的问题。 将鼠标悬停在文件中的问题上或将文本光标放在其上,然后按 Alt+Enter,选择 Stylelint: Fix current file。 此外,您现在可以在 Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint 的相应字段下指定配置文件的路径。

捆绑的 MDN 文档

MDN documentation is now bundled with IntelliJ IDEA. 这将有助于防止 MDN 网站的连接问题,并使编辑器内文档在 HTML、CSS 和 JavaScript 文件中显示得更快。 编辑器内文档也将提供更多信息 - 例如,您将看到有关 JavaScript API 受支持的浏览器版本的详细信息。

样式表的选择器特异性

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. 或者,将焦点放在选择器上,按 F1/Ctrl+Q 在 Documentation 弹出窗口中查看这些信息。

数据库工具 Ultimate

关于数据库工具更新的详细描述,请阅读最新变化

授权 UI

授权 UI

我们为修改对象时的授权编辑添加了一个 UI。 您可以使用 Cmd/Ctrl+F6 在数据库资源管理器中的用户上调用 Modify user 窗口,该窗口现在具有向对象添加授权的 UI. 这些更新适用于 PostgreSQL、Redshift、Greenplum、MySQL、MariaDB、DB2、SQL Server 和 Sybase。

上下文实时模板

上下文实时模板

我们推出了从数据库资源管理器直接生成简单语句的解决方案 - 实时模板。 您可以使用 SQL node 中的 Preferences/Settings | Editor | Live Templates 添加自己的模板或编辑现有的模板。

数据库复制粘贴

简单明了的操作

我们简化了导航 - 在 SQL 中的对象上调用 Go to declaration (Ctrl/Cmd+B) 现在会将您带到 DDL,而不是数据库树。 我们还为 Select in database tree 操作引入了快捷键:Windows/Linux 为 Alt+Shift+B,macOS 为 Opt+Shift+B

更好的数据库排序

更好的排序

我们改进了数据排序。 新的 ORDER BY 字段的工作原理类似于 WHERE 字段(之前叫做 Filter):输入工作子句将其应用于网格查询。 如果要在客户端使用排序(IntelliJ IDEA 不会重新运行查询,也不会在当前页面对数据进行排序),应取消选中 Sort via ORDER BY。 另一个更新是,排序默认不会“堆叠”;点击用于排序数据的列名后,基于其他列的排序将被清除。

数据库复制粘贴

轻松复制粘贴数据源

闻名世界的快捷键 Ctrl/Cmd+C/V/X 现在可以用于复制、剪切和粘贴数据源。 复制数据源时,XML 会被复制到剪贴板,然后可以通过通讯工具共享。 您也可以使用 Paste 操作从其他位置粘贴 XML。 如果您在项目中剪切并粘贴数据源,它会被直接移动,无需密码。 但在其他情况下都需要密码。

编辑 MongoDB 中的数据

编辑 MongoDB 中的数据

您现在可以编辑 MongoDB 集合中的数据。 还有语句预览可供使用。 为了使编辑更加灵活,我们引入了从 UI 更改字段类型的功能。 您可以从字段的上下文菜单或值编辑器中完成此操作。

其他

嵌入式共享索引支持

IntelliJ IDEA Community Edition 内嵌了对公开共享索引的支持。 您无需安装专用插件。 而可以从 IDE 使用共享索引功能。

Android

IntelliJ IDEA 现在支持所有 Android Studio 4.1.1 更新。

支持 bnd-maven-plugin

IntelliJ IDEA 现在可从 bnd-maven-plugin 导入 OSGI facet 设置。