IntelliJ IDEA 2020.2 最新变化

IntelliJ IDEA 2020.2 让您可以直接在 IDE 内部审查并合并 GitHub Pull Request,通过 Inspections 微件在文件中的警告和错误之间快速导航,使用 Problems 工具窗口查看当前文件中的完整问题列表,并在您的更改会破坏其他文件时得到通知。 您可以使用 Jakarta EE,并获得对 Quarkus、Micronaut 和 OpenAPI 的更好支持。

Java

Java 15 支持

Java 15 支持

尽管 Java 15 将于 9 月份发布,但 IntelliJ IDEA 2020.2 已经为此做好准备。 已更新对 Records 功能的支持,现在该功能处于第二个预览版阶段。 我们还增加了对密封类的基本支持。 当然,IntelliJ IDEA 也提供了对文本块的全面支持。

Jakarta EE 向导

相关问题内嵌提示

如果您在更改具有外部用法的类、方法或字段的签名时引入错误,IDE 将通过内嵌提示发出通知。 点击相关问题内嵌提示,IDE 将打开 Find 工具窗口,列出外部文件中出现的所有相关问题。

Scala 3 支持

可以创建多个 Structural Search 和 Structural Replace 检查

IDE 允许您使用“Structural Search 和 Structural Replace”查找并在必要时替换匹配特定模式的代码块。 通过 IntelliJ IDEA 2020.2,您可以创建多个结构化搜索模板作为检查。 对于每个 SSR 检查,您可以指定严重性级别,添加描述以及分别启用或禁用。

Scala 3 支持

查明运行时异常的原因

我们为异常堆栈跟踪分析添加了数据流分析。 点击堆栈跟踪时,IDE 可能会将您带到代码中出现异常的确切位置,并提供建议来帮助您了解发生此错误的原因。

Scala 3 支持

更好的 Stream API 方法自动补全

IntelliJ IDEA 2020.2 与 Stream API 结合使用时效果更好。 您不必先键入 'stream()' 然后在流上键入正确操作,您可以在集合本身中开始键入流方法名,IntelliJ IDEA 会自动插入 'stream()'。 这适用于任何流操作。

Scala 3 支持

Introduce Variable 的范围

通过 IntelliJ IDEA 2020.2,Introduce Variable 重构可以选择性地替换中间范围中变量的实例。 现在,您可以选择各种替换选项,而不仅限于选择一个或所有实例。 当鼠标悬停在各选项上时,编辑器将高亮显示哪个调用将被新变量替换。

Java 实时模板简化

Java 实时模板简化

您不再需要搜索 Java 相关模板,因为新的 Java 节点包括所有普通、环绕、其他、输出和迭代组。 您将更容易找到适合您需求的实时模板。 也可以使用单独的 Groovy 节点。

编辑器

Problems 视图

Problems 工具窗口

我们添加了 Problems 工具窗口,显示与当前文件有关的警告和错误以及问题描述。 在此工具窗口中,您可以右键点击问题导航到遇到问题的代码行,然后使用 Alt+Enter 逐个修复。

编辑器 Inspections 微件

Inspections 微件

Inspections 微件简化了对警告、错误和其他问题的搜索,并让您可以通过按 F2 或点击箭头图标轻松导航。 在 Inspections 微件中,您可以选择是否高亮显示相关问题:不显示、仅显示错误或显示所有问题。

意图操作预览

意图操作预览

为了试验应用意图操作的可能结果,您可以预览其结果,然后再实际应用到代码中。 通过 Alt+Enter 调用 Show Context Actions,选择所需的意图操作,然后在 macOS 上按 Alt+Space 或在 Windows 和 Linux 上按 Ctrl+Shift+I 显示结果预览。

改进的拼写检查器

内置拼写检查器已改进:运行速度更快,可以滤除无关建议,并根据上下文对有效建议进行排名。 此外,IDE 从文件的前几段中检测语言,并建议启用相应的语言模型。

版本控制

全面的 GitHub Pull Request 支持

现在,在单独的垂直工具窗口中点击即可打开开放 Pull Request 的详细信息。 主编辑器窗口会显示对话,您可以直接添加评论。 预提交检查结果显示在窗口底部。 如果您有权管理 Pull Request,那么现在可以在 IDE 内部浏览、分配、管理与合并请求,查看和提交评论,以及接受变更。

我们的博客中了解更多详细信息

改进了 Git 操作对话框

在此版本中,我们修改了 Merge、Pull 和 Rebase 对话框的外观一致性。 我们还改进了对话框,使其可以清楚地标识待执行的 Git 命令,并加入一些缺失选项。 我们还向 Pull 和 Merge 对话框分别添加了 --rebase--no-verify

Compare Branches 操作改进的结果显示

改进了 Compare Branches 操作的结果显示

当您在 IntelliJ IDEA 2020.2 中比较两个分支时,IDE 会在编辑器中打开它们的日志以在一个视图中显示其提交。 与 VCS 工具窗口相比,此视图具有足够空间完整报告每个分支中的提交以及受影响的文件。

从日志 squash 本地提交

从日志中 squash 和删除本地提交

现在,您可以从本地分支中选择多个提交并对其进行 squash。 在 Git 工具窗口中,打开 Log 选项卡,选择本地提交,然后选择 Squash Commits。 如果您决定更改提交消息,则这些提交中的所有变更将与更新后的消息一起放入一个提交中。 此外,您现在可以从 Git 日志中删除提交。

支持 WSL 2 中安装的 Git

IntelliJ IDEA 2020.2 允许您使用 WSL 2 中安装的 Git 处理来自 Linux 或 Windows 文件系统的项目。 当您在 WSL 中打开项目时,IDE 将自动切换到 WSL 中的 Git,并允许您使用所有相关功能。

框架与技术

Jakarta EE 9 支持 Ultimate

我们准备在 9 月发布 Jakarta EE 9,并且已经支持 Jakarta EE 的所有可用功能,包括 CDI、JPA、批处理、Bean 验证、JSF、JAX-RS、WebSocket、Servlet、JSP、JSON- P、JSON-B、安全性以及 EJB 和 JTA 规范。

Jakarta EE 向导

Java Enterprise 项目向导 Ultimate

如果您需要创建 Java EE 8 或 Jakarta EE 9 项目,现在可以使用 New Project 向导。 只需几步即可新建 Jakarta EE 项目。 选择 Java 版本、构建工具、扩展和其他选项进行设置。

Quarkus 配置文件支持:.properties 和 YAML Ultimate

为了让您更容易地使用 Quarkus 配置文件,IDE 现在提供代码补全和高亮显示,并且它会为 .properties 和 YAML 配置文件将未使用的代码进行灰色处理。 此外,您可以从配置文件直接跳转到配置的 Bean,然后再跳回。

更好的 Quarkus CDI 支持 Ultimate

在最新版本的 IDE 中,您可以使用注入 Bean 的间距导航以及与 Quarkus 简化语法完美配合的最新检查。 此外,IntelliJ IDEA 2020.2 支持 @DefaultBean、@AlternativePriority 注解以及仅限定符注入(无需使用 @Inject)。

Swagger UI 支持

Swagger UI 支持 Ultimate

通过新添加的 Swagger UI 集成,现在可以在 IntelliJ IDEA 编辑器的内置面板中预览 OpenAPI。 这是简化测试的重要更新。

Jakarta EE 向导

Swagger 差异 Ultimate

IDE 已得到改进,可计算 OpenAPI 规范之间的结构差异。 了解 Swagger/OpenAPI 的特定信息后,IntelliJ IDEA 2020.2 会根据它们的结构比较 JSON 或 YAML 文件,并且您可以预览检测到的差异。 为此,需要从“上下文”菜单中选择 Compare Open API Specifications,或从 Search Everywhere 对话框中调用此操作。

Jakarta EE 向导

Micronaut 的项目生成 Ultimate

此为 New Project 向导和 Micronaut 框架的另一个实用更新。 我们添加了直接从向导新建 Micronaut 项目的功能。 逐步配置项目并迅速开始使用。

Micronaut 和 Amazon SQS API 的消息队列支持 Ultimate

如果您的 Micronaut 应用程序通过 RabbitMQ 或 Kafka 使用异步通信,则此更新适合您。 使用间距图标、查找用法和名称补全浏览消息队列和主题。 您可以从 Amazon SQS API 的同一组功能中受益。

JAX-RS 和 MicroProfile REST 客户端 HTTP 请求生成

JAX-RS 和 MicroProfile REST 客户端 HTTP 请求生成 Ultimate

为了轻松创建和测试 HTTP 请求,IntelliJ IDEA 将自动生成 JAX-RS 和 MicroProfile HTTP 请求,然后在内置 REST Client 中将其打开。 如果您的项目使用以下企业框架之一,您甚至可以使用意图操作在任何 URL 上生成 HTTP 请求:Spring、JAX-RS、Retrofit、OkHttp 或 Micronaut。

REST Assured 测试的 URL 代码补全

REST Assured 测试的 URL 代码补全 Ultimate

我们更新了 REST Assured 测试,并提供了 URL 路径引用代码补全和相关资源导航。

Selenium 插件增加 Selenoid 集成 Ultimate

Selenium 插件现在与 Selenoid 集成,并能够直接从 browsers.json 文件运行新的测试环境。 当 Selenoid 容器启动时,所有必需的浏览器图像将被自动拉取。

性能分析器

HPROF 内存查看器

HPROF 内存查看器 Ultimate

改进的查看器机制可帮助您分析堆,指出使用大量内存的代码部分,并检测内存泄漏的原因。 HPROF 内存查看器可显示计算出的对象保留大小、到垃圾回收器根的最短路径、对象(保留对象)的支配树以及传入引用。

用户体验

使用预构建的共享索引加快索引编制速度

现在,您可以下载另一台机器上生成的索引,无需在本地构建,从而加快索引编制速度。 对 JDK 使用预构建的共享索引,或生成自定义共享索引并将其分布到目标 IDE 构建。 只需安装 Shared Indexes 插件。 了解详情

索引编制期间的高亮显示和补全

索引编制期间的新选择

现在,当 IntelliJ IDEA 2020.2 为项目建立索引时,您可以继续编写代码。 现在,IDE 可以在索引编制期间为 Java 和 PHP 提供代码补全建议。

终端

可以从终端运行 IDE 功能

从终端运行 IDE 功能的选项

现在可以直接从终端调用 IDE 功能。 通过 IntelliJ IDEA 2020.2,您可以使用 Ctrl + Enter / Cmd + Enter 快捷键在相应 GUI 中运行高亮显示的命令。 如果您希望在调试模式下运行高亮显示的命令,请使用 Ctrl + Shift + Enter / Cmd + Shift + Enter。

您可以在我们的博文中详细了解此功能。

生成工具

Maven Wrapper 支持

IntelliJ IDEA 2020.2 现在支持 Maven 包装器,能够将必要版本的 Maven 自动安装到您的项目中。 如果 Maven 包装器存在并经过配置,IDE 会自动使用包装器并在需要时导入变更。

基于项目的 Maven 版本管理

现在,您可以为每个项目设置 Maven 版本,而不必像过去一样对所有打开的项目使用相同版本的 Maven。

构建工具输出演示

为了提供更一致的用户体验,我们现在在 Build 工具窗口中而不是在 Messages 工具窗口中显示 IntelliJ IDEA 原生构建器的构建输出。

build.gradle 文件中更好的代码洞察

IntelliJ IDEA 2020.2 为 build.gradle 文件中的项目名称提供项目名称补全和导航。

JavaScript 和 TypeScript

新的智能意图操作和检查

更高效的新意图操作 Ultimate

例如,您现在可以将带有数字索引的 for 循环快速转换为 forEach 数组方法。 阅读 JavaScript 和 TypeScript 文件中的文档注释也变得更容易,因为您现在可以在编辑器中直接呈现它们,这将最大程度地减少分心。

Vuex 和 Composition API 支持

Prettier 用作默认格式化程序 Ultimate

从此版本开始,可以更轻松地将 Prettier 设置为整理代码的默认格式化程序。 只需在设置中启用 On code reformat 复选框,IDE 就会在您重新格式化 .js.ts.jsx.tsx 文件时使用 Prettier。 如有必要,您也可以添加其他文件类型。

Java 实时模板简化

Nuxt.js 支持 Ultimate

我们添加了 Nuxt.js 支持和 Vue 特定的代码样式设置,增强了 Vue.js 框架的使用体验。

数据库

单独的单元格值编辑器

单独的单元格值编辑器 Ultimate

此版本针对单元格中存在较长值的情况引入了一些实用工具。 从此版本开始,您可以在单独的面板中查看和编辑长值。 编辑器面板具有自动换行模式,可以在右侧工具栏中进行切换。

布尔值的新 UI

为布尔值提供新 UI Ultimate

现在,布尔值显示为原始值而非复选框,因此更易于观察和编辑。 您可以键入 f、t、d、n、g 或 c,以输入相应的值 false、true、default、null、generated 和 computed。 输入任何其他内容都将显示一个包含可能值的下拉列表。

数据编辑器中的 DML 预览

数据编辑器中的 DML 预览 Ultimate

现在,您可以在数据编辑器中预览包含您的更改的查询。 为此,如果有未决的更改,请点击激活的 DML 按钮。

Scala 3 支持

Google BigQuery 方言 Ultimate

我们增加了对 Google BigQuery 的部分支持。 IDE 可以正确高亮显示查询并为其提供编码辅助。

Scala

隐式元素自动导入

隐式元素自动导入

虽然可以使用 View | Show Implicit Hints 显示隐式元素(甚至不存在的元素),导入隐式元素却始终不够简便。

新的隐式元素自动导入操作的工作原理与未解析引用的自动导入完全相同。 自动弹出窗口使该功能更易于发现,但也可以禁用自动弹出窗口,并使用 Alt + Enter 调用 Import… 快速修复(更多信息)。

隐式元素自动导入

基于缩进的大括号处理

添加和移除大括号是 Scala 程序员日常工作中不可或缺的一部分。 为了简化任务,我们首先添加了一个封装和解包表达式的意图操作,但是必须手动调用。 然后,我们支持自动添加和移除互补大括号。

现在我们又有了进一步改进 - 两个大括号都可以自动添加和移除,并根据代码缩进即时调整。 这样,即使在 Scala 2 中,您也可以尝试大幅度缩进,同时仍然保留大括号。 要利用此功能,不需要考虑大括号,让 IDE 完成工作。

一流的伴生项

在 Scala 中,伴随类或特征与伴随对象具有特殊关系。 我们早已在 Project 视图中反映了这一点,但除此之外,我们过去通常将伴随项视为其他类或对象。

现在,我们为伴随项显示可导航的间距图标(可在 Settings | General | Editor | Gutter Icons 下进行配置)。 您还可以对 classtraitobject 关键字使用 Go To 以导航到伴随项。 伴随对象成员现在可以轻松地自动补全或自动导入。

编辑器内 Scaladoc 渲染

编辑器内 Scaladoc 渲染

Scaladoc 标记易于编辑,但较难查看 - 您必须遍历 * 列、标记和宏。 现在,我们可以在编辑器中直接渲染 Scaladoc,使其看起来清晰简洁(您可以在 Editor | General | Appearance 中切换渲染)。

我们还在 Quick Documentation 弹出窗口中改进了 Scaladoc 渲染 - 现在可以正确处理段落、列表和宏。

代码补全改进

除了提高代码补全的准确性和速度之外,我们还引入了两个独特的新功能。 首先,只要当前范围中存在适当的值,您现在就可以在一个步骤中自动补全方法的名称及其参数。

其次,您现在可以使用点表示法将“static”函数应用于参数,点表示法可与代数数据类型 (ADT) 结合使用。 此功能是 Hoogle Completion 的一部分——我们尝试以不使用 Hindley-Milner 类型系统的语言重新构想 Hoogle(工作正在进行)。

Docker

安全连接到 Docker

安全连接到 Docker

IntelliJ IDEA 2020.2 允许您在 Windows 上安全连接到 Docker,因为我们添加了对从 IntelliJ IDEA 到 Docker 守护程序的 TLS 连接的支持。

Kubernetes

多个配置文件

多个配置文件 Ultimate

现在,您可以在 Preferences / Settings | Build, Execution, Deployment | Kubernetes 中指定自定义 kubeconfig 文件。 或者,选择 Kubernetes 根项时,在 Services 视图中点击 Show Settings… 按钮。 您还可以全局或为当前项目指定自定义 kubeconfig 文件。 换句话说,每个项目都可以有一个单独的 kubeconfig 文件。

ConfigMap 和 Secret 支持

ConfigMap 和 Secret 支持 Ultimate

我们在当前项目和群集中添加了 ConfigMaps/Secrets 补全。 群集中的项在补全列表中标记为蓝色。 现在,您可以从 ConfigMap/Secret 的用法导航到项目或群集中的相应 ConfigMap/Secret 资源。 同样适用于 ConfigMap/Secret 键。

其他

  • IntelliJ IDEA 2020.2 包含 Android Studio 4.0 中的所有变更。 立即了解详情。
  • IntelliJ IDEA 可以检测您是否正在使用屏幕阅读器,如果是,它将自动启用 IDE 的无障碍功能。
  • IntelliJ IDEA 2020.2 允许您在 Linux 上使用 Unicode 表情符号字符。 准备发射。 🚀
  • 为了避免性能和渲染问题,我们现在提供与 JCEF 的新集成以运行 IntelliJ Platform 插件。