IntelliJ IDEA 2020.1 最新变化

IntelliJ IDEA 2020.1 添加了对 Java 14 的支持以及适用于各种框架的新功能,通过数据流分析辅助升级了调试器,新增了 LightEdit 模式,以及为您下载并配置 JDK 等!

Java

Java 14 支持:记录与模式匹配

IntelliJ IDEA 2020.1 支持 Java 14 及其新功能。 除了针对记录提供完整的代码洞察支持,IDE 还允许用户快速创建新记录,生成其构造函数与组件,以及对既有错误发出警报。 另外,IDE 现已支持 instanceof 运算符的模式匹配,其中包括新的检查以及快速修复,后者用简洁明了的新模式变量快速简化了冗长的 instanceof-and-cast 惯用代码。

详细了解通过 IntelliJ IDEA 使用 Java 14

下载 JDK

从 IDE 下载 JDK

您无需再从网络中搜索不可或缺的 JDK。 从 IntelliJ IDEA 2020.1 开始,在创建并配置项目时,您可以直接从 IDE 下载并配置 JDK 构建。 如果您打开下载的项目,IDE 将检查计算机是否安装了为此项目配置的 JDK。 如果未安装,IDE 将提示您下载 JDK。

新的 Java 检查

新的 Java 检查

在 IntelliJ IDEA 的每个新版本中,我们都会扩展其静态代码分析功能。 此版本也不例外。 除了上述改进外,我们还新增了多项代码检查。 它们可以检查 SimpleDateFormat 模式中的大写字母,分析日期格式设置,搜索其他冗余方法调用,以及报告并建议消除字符串文字中多余的转义字符等。

编辑器

LightEdit 模式

IntelliJ IDEA 2020.1 增加了期待已久的 LightEdit 模式。 如今,用户无需创建或加载整个项目,即可在类似文本的编辑器中快速修改独立文件。 您可以从命令行,IDE 的欢迎屏幕或操作系统文件管理器中,在此新的轻量级编辑器中打开文件。 此外,使用“Open File in Project” (Alt+Enter) 意图,可以从 LightEdit 模式切换至完整项目模式。

详细了解 LightEdit

就地 Rename 和 Change Signature

就地 Rename 和 Change Signature

在 IntelliJ IDEA 2020.1 中开发 Java 或 Kotlin 应用时,无需使用繁琐的模态对话框,即可更改方法或类的签名。 现在只需编辑类或方法的参数,然后点击新的边距图标或按 Alt+Enter,即可检查更改并应用到类/方法声明及其所有用法。

详细了解就地 Rename 和 Change Signature

编辑器中的 Javadoc 渲染

在编辑器中阅读 Javadoc 可能令人不胜其烦。此类文本中充斥着各种标记,在需要与参考链接和图像进行交互时,更是雪上加霜。 正因如此,我们在编辑器中增加了一种渲染 Javadoc 的方法。 通过 Help | Find actions | Render documentation comments on file opening 可以启用此功能。

详细了解 Javadoc 渲染

Code Vision

我们已迈出了实现 Code Vision 的第一步,这是一种专注于代码并同时获得有关代码更多信息的简便方法。 在 IntelliJ IDEA 2020.1 中,Code Vision 可以向您展示 Java 符号的用法和实现。 要启用该功能,请转到Preferences / Settings | Editor | Inlay Hints | Java,选择 Code Vision ,然后选中相关的Show hints…复选框。

改进的导航栏

改进了导航栏

IntelliJ IDEA 2020.1 提供了一种新选项来简化项目导航。 新导航栏可以显示 Java 类和接口中的方法,用户无需滚动屏幕,即可直接跳转到需要在文件中查看的行。 如果之前很少使用导航栏,那么何不体验一下这项功能。通过 View | Appearance | Navigation Bar 即可将其打开。

Zen 模式

Zen 模式

我们在编辑器中引入了新的 Zen 模式。 这种模式有助于消除所有干扰项,使您可以专注于源代码。 Zen 模式将“免打扰模式”和“全屏模式”完美融合,无需同时开启这两种模式。 从主菜单中选择 View | Appearance | Enter Zen Mode,全身心沉浸在代码世界中。

智能语法检查工具

智能语法和拼写检查工具

IntelliJ IDEA 2020.1 捆绑了 Grazie 插件,后者是一款融合了语法、拼写和风格检查等功能的综合性工具。 如今,IDE 不再局限于检查代码结构。 它支持 16 种自然语言,有助于编写清晰明了的字符串文字、注释、Javadoc、提交消息等。 默认情况下,IDE 仅会检查文本文件,但我们建议您在 Settings/Preferences | Editor | Proofread | Grammar 下同时为Java 文件开启这项功能。

快速类型定义

快速类型定义

灵活学习变量、字段、方法和其他符号的类型定义,无需切换代码中的焦点。 在不可或缺的符号处放置脱字符号,然后从主菜单中选择 View | Quick Type Definition。 IntelliJ IDEA 随后会在弹出窗口中显示相关信息,您在弹出窗口中还可以打开源文件并编辑代码。

调试器

数据流分析辅助

数据流分析辅助

IntelliJ IDEA 2020.1 为 JVM 调试器新增了数据流分析功能。 在代码实际执行前,这项功能可对执行情况进行预测。 当应用程序在断点处停止时,IDE 将根据程序的当前状态执行数据流分析,检查接下来的运行结果。 要在调试器中使用 DFA,请在 Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Java 下启用该功能。

阅读《将 Java 数据流分析与调试器集成》

置顶

置顶

另一项改进是能够将某个对象中任意数量的字段置于字段列表顶部。 当某个对象拥有许多字段,导致难以找到需要调查的字段时,这项功能便有了用武之地。

性能分析器

聚焦方法调用

聚焦方法调用 Ultimate

IntelliJ IDEA 不断拓展应用程序分析支持。 在此版本中,我们新增了多项新功能:Focus on Subtree、Focus on Call、Exclude SubtreeExclude Call。 借助这些选项,您可以更加专注于选定的方法调用,滤除不需要的方法调用。

折叠递归调用

折叠递归调用 Ultimate

在高层堆栈中调用相同的方法时,IntelliJ IDEA 中的分析器现在可以检测递归调用。 利用 IDE,您可以通过在子树外进行调用而避免递归,从而专注于消耗大部分资源的方法以及这些方法执行的调用。 在 Profiler 工具窗口的 Call Tree 标签页中,可以使用这种新的特殊图标标记递归调用。

初步支持 HProf 快照 Ultimate

IntelliJ IDEA 2020.1 可以打开 .hprof 内存转储文件,这种文件有助于识别内存泄漏,并找到优化内存使用率的方法。 例如,您可以查看总体大小、实例数量以及堆栈跟踪等基本文件信息。 这些文件还列出了按类分组的所有根对象、按实例数或大小排序的所有类以及带有字段值查看器的所有类实例。 要打开 .hprof 文件,请转至 Help | Find action,然后输入“hprof” 以找到 Open Hprof Snapshot 操作。 请注意,这项功能目前处于早期阶段,我们将在后续的主要版本中继续改进。

版本控制

 新 Commit 工具窗口

新 Commit 工具窗口

在 IntelliJ IDEA 2020.1 中,我们对用于向 VCS 仓库提交更改的界面进行了重新设计,现在,您可以充分利用专用的 Commit 工具窗口,无需使用 Commit 模态对话框。 这为修改的文件和差异的列表提供了更多空间,支持将就绪的更改添加到提交,以迭代方式编写提交消息,以及选择暂存更改对应的提交。 默认会为新用户启用新 UI;现有用户可以在 Preferences/Settings | Version Control | Commit 中切换到新 UI。

新的交互式变基对话框

Interactively Rebase from Here 对话框在重新设计后获得了名副其实的交互功能。 目前,除了支持您在分支中提交时灵活选择需要执行的操作外, 这项功能还能够以图表形式呈现已经应用的操作,显示提交详细信息,以及让您查看差异,以便根据需要检查或重置更改。

从 IDE 安装 Git

从 IDE 安装 Git

使用 IntelliJ IDEA 2020.1,无需手动预装 Git。 在您克隆现有的 Git 仓库时,IDE 将在计算机中查找 Git 可执行文件。如果无法找到,IDE 将自动下载并设置该文件。

分支弹出窗口

  • 分支弹出窗口具有一个允许您查找现有远程和本地分支的显式搜索字段。
  • Refresh 按钮已重新设计,因此您现在可以使用它来更新现有的远程分支。
  • 传入(蓝色)和传出(绿色)提交指示器已添加到状态栏。
  • 日志现在具有分支列表。

外观

JetBrains Mono

JetBrains Mono

虽然提高 IntelliJ IDEA 的效率是重中之重,但我们也为改进其外观界面和用户体验倾注了大量心血。 许多用户都知道,我们最近成功开发出专属字体,即 JetBrains Mono。 这款字体收到了大量的积极反馈,成为新版 IntelliJ IDEA 的默认字体。

统一的 IntelliJ 浅色主题

IntelliJ IDEA 2020.1 将新的浅色主题作为其在所有操作系统中统一使用的默认主题。 请热烈欢迎 IntelliJ 的浅色主题! 通过 View | Quick Switch Scheme | Theme,您可以随时回到之前使用的主题。不过,我们真心鼓励您体验一下 IntelliJ 的浅色主题。

框架与技术

Spring WebFlux Ultimate

我们始终在努力跟随软件开发者的前进步伐,力求支持当今最先进的技术。在 v2020.1 中,我们进一步加大了对 Spring WebFlux 框架的支持力度。 我们添加了请求映射。因此,如果 WebFlux 应用程序启动了 Actuator,您可以在 Run 工具窗口中访问映射,从而监控应用程序并与之交互。 此外,新版本提供代码自动补全和导航到相关视图功能,IDE 现在可与 Rendering API 结合使用,不会出现任何问题。 最重要的是,您可以充分利用代码洞察功能,例如 Find Usages (Alt+F7) 以及 Rename 重构 (Shift+F6)。

Spring WebFlux 的更多改进

Spring 配置文件 Ultimate

此前,IntelliJ IDEA 将 Spring 配置文件表达式作为字符串进行处理。 从 v2020.1 开始,IDE 可区分表达式中的不同配置文件,支持用户对其执行智能操作,例如 Find Usages (Alt+F7) 以及 Rename 重构 (Shift+F6)。 我们还提高了 Change Active Spring Profiles 弹出窗口的实用性,针对现有配置文件实现了补全。

Selenium

Selenium Ultimate

IntelliJ IDEA 2020.1 Ultimate 引入了一个新的 Selenium UI Automation Testing 插件,可对 Selenium 提供初步支持。Selenium 是一种用于测试 Web 应用程序的热门框架。 这款新插件支持用于 UI 测试和库报告的大多数 JVM 框架,包括 Selenium、Selenide、Geb、Serenity BDD 和 Allure Framework。

 

IntelliJ IDEA 为 Selenium 提供的增强功能包括新的项目向导,在 Java/Kotlin/Groovy 语言测试中提供突出显示、检查和代码补全,验证各种配置文件以及通过装订区域中的图标简化导航。

详细了解 IntelliJ IDEA 对 Selenium 的支持

JMS 和 Spring Messaging API Ultimate

IntelliJ IDEA 2020.1 针对 Java 和 Kotlin 应用程序为 JMS 和 Spring Messaging API 提供了一整套代码洞察功能。 其中包括代码补全、导航、Rename 重构 (Shift + F7) 以及引用注入 (Alt + Enter) 等。

Micronaut Ultimate

在之前的 IntelliJ IDEA 版本中,我们添加了对 Micronaut 框架的支持。 新版本扩展了此支持,可自动补全配置文件中的参数并支持导航和快速文档。 IDE 现在还可以自动补全基本数据类型并检测值是否无效。 此外,IntelliJ IDEA 可以识别 Micronaut URL 映射中的注入 RegExp 片段,语法的可读性更强。

RxJava Ultimate

IntelliJ IDEA 2020.1 通过增加许多实用性检查增强了对 RxJava 的支持。 IDE 现在可以检测未使用的发布者并在 Lambda 返回 null 时通知用户。 它还可以突出显示阻塞线程的方法调用并滤除过长的链。

Quarkus 和 MicroProfile 项目生成

Quarkus 和 MicroProfile Ultimate

使用 IntelliJ IDEA 2020.1,您现在可以直接通过 New Project 向导创建新的 Quarkus 和 MicroProfile 项目,该向导将引导您完成初始配置。

第三方 SQL 库的语言注入

第三方 SQL 库的语言注入 Ultimate

IDE 现在可以为主流的第三方库注入以前被视为普通字符串的 SQL 片段,同时为 SQL 语句和字段提供代码补全和导航。 支持的库列表包括 R2DBC、Vert.x SQL Client、Apache Spark SQL 和 Apache DB Utils 等。

Swagger Codegen

Swagger Codegen Ultimate

IntelliJ IDEA 2020.1 集成了 Swagger Codegen,Swagger Codegen 是一款强大的工具,可用于生成服务器存根、API 客户端以及支持多种编程语言的文档。 我们准备了专用的运行配置,您可以在其中进行设置,例如生成文件的路径、.mustache 模板文件夹路径、语言以及在发生兼容性问题时使用的其他 JRE。 为了让 Swagger Codegen 发挥作用,只需打开一个 OpenAPI/Swagger 文件,指定其设置并配置一些选项,然后点击 Run。

远程规范 Ultimate

IntelliJ IDEA 2020.1 支持使用 Openapi/Swagger 规范。 例如,它为规范提供了自动补全功能。 您只需要在设置中输入规范 URL,IDE 即可在输入过程中补全 URL 路径。 您还可以创建专属规范,与创建类和接口的常用方式相同:File | New | OpenAPI Specification

HTTP客户端

改进了自动补全等功能 Ultimate

IntelliJ IDEA 2020.1 中的 HTTP 客户端更加智能。 现在,它可以正确地自动补全路径变量和 URL 路径,引导用户直接从 HTTP 请求文件访问相关端点。 我们还为 Micronaut 和 Spring 用户提供了一项更新:请求处理程序方法现在获得了指示 URL 映射的装订区域图标。 使用它可以创建或打开现有的 HTTP 请求文件并导航到 HTTP 客户端。

Docker

简化的 Docker 拉取工作流

简化了 Docker 的拉取工作流

为了便于您从 Docker 注册表中拉取映像,我们重新设计了 UI 并移除了模态对话框。 现在,只需点击 Service 工具窗口左侧窗格中的 Images 节点,IntelliJ IDEA 即可在右侧窗格中打开 Images Console 标签页,您从中可以轻松拉取映像。 IDE 还为映像提供了补全功能。

Kubernetes

对 Kubernetes 文件应用命令

Kubernetes 文件的“Apply”命令 Ultimate

现在,通过直接从编辑器装订区域调用“Apply”命令,您可以更新 Kubernetes 集群,从而匹配在本地文件中定义的状态。

有关 Docker 和 Kubernetes 改进的更多信息

构建工具

Maven 和 Gradle 导入更新

Maven 和 Gradle 导入更新

IntelliJ IDEA 2020.1 为 Maven 和 Gradle 用户带来了一项更新,改动虽小但意义重大。 编辑器的右上方不再显示原有的自动导入功能,取而代之的是浮动通知。 使用此通知或新快捷方式(Windows 和 Linux 系统中为 Ctrl+Shift+O;Mac系统中为 Shift+Cmd+I),可以在修改构建文件后加载更改 。 更加优异的一点是,当 IntelliJ IDEA 检测到构建文件在 IDE 外部发生任何变化(例如 VCS 更新)时,它将自动重新加载相关项目。

Scala

Scala 3 支持

Scala 3 支持

毫无疑问,Dotty 必将成为 Scala 3 的一部分,所以我们已经着手推进全面支持 Scala 3。 目前,Scala 插件对 Scala 3 提供初步支持,包括新语法、错误突出显示、导航、类型信息以及其他基本的 IDE 功能。

语言和语言支持仍处于开发阶段,因此,如果您希望尽快获得新功能和错误修复,我们建议使用每夜更新的插件版本。

详细了解 IntelliJ IDEA 对 Scala 3 的支持

函数文字的细粒度错误突出显示

函数文字的细粒度错误突出显示

Scala 中经常使用函数文字。 它们与方法非常类似,具有独立的参数和主体。 然而,它们通常被视为函数类型的单一表达式,这就使查找或解释其中出现的错误更加困难。

在此版本中,我们为函数文字引入了细粒度错误突出显示,此功能可以帮助您依靠清晰准确的消息查明错误,而不必纠结于那些晦涩难懂的与函数类型相关的消息。

Unused Parameter 检查

Unused Parameter 检查

Scala 插件能够显示长时间未使用的变量和方法。 现在,它也可以找出未使用的参数。 方法或类内部未引用的参数以灰色突出显示。

与变量和方法相反,未使用的参数通常是编程错误的结果。 因此,新的检查功能不仅可以提升代码的简洁程度,还有助于防止各种错误。

Smart Step Into (智能单步执行)

Smart Step Into (智能单步执行)

在 Scala 中,我们通常在同一行中进行多个方法调用。 在此类情况下,在调试器中使用 Step Into 存在诸多不便,因为在达到目标方法之前,必须手动单步进出许多方法。

在此版本中,Step Into 升级为 Smart Step Into。 您只需选择方法,IDE 将执行相应操作。

BSP 支持改进

我们改进了 BSP 支持。 它的运行更加顺畅,支持更多的项目和构建工具。 您不再需要手动安装 Bloop 即可通过 BSP 导入 sbt 项目,原因是 Scala 插件可以将此类项目自动转换为 Bloop 格式。 现在,可以从 Build 工具窗口中取消 BSP 构建。 最后,您可以使用 BSP 微件查看和管理 BSP 连接。

JavaScript

新的智能意图和检查

新的智能意图和检查 Ultimate

使用新的智能意图和检查 (Alt+Enter) 可在编码时节省时间! 例如,您现在可以快速地将现有代码转换为可选链和/或空值合并,该语法已在最新版本的 JavaScript 和 TypeScript 中引入。

Vuex 和 Composition API 支持

Vuex 和 Composition API 支持 Ultimate

通过对 Vuex 库和即将发布的 Vue 3 中的 Composition API 的开箱即用支持,您可以更加顺畅地构建出色的 Vue.js 应用程序。

查看 WebStorm 最新变化,了解 IntelliJ IDEA 2020.1 中提供的其他 JavaScript 改进。

数据库改进

数据库改进

数据库改进 Ultimate

数据库改进包括以 Excel (.xlsx) 格式导出数据、直接在编辑器中以文本形式查看数据、创建运行配置等。

查看 DataGrip 最新变化,了解 IntelliJ IDEA 2020.1 中提供的所有数据库改进。

终端

拆分终端会话

拆分终端会话

我们新增了垂直或水平拆分终端会话的功能,便于用户并行运行多个会话。 您可以从 Terminal 调用上下文菜单来创建、导航和关闭拆分的终端会话。

运行配置

以文件形式存储运行配置

从 v2020.1 开始,运行配置可以灵活存储于项目文件夹中,以便可以通过版本控制与团队成员共享它们。 为此,请打开 Run/Debug Configurations 对话框,选中右上方的 Store as project file,然后点击齿轮图标。 之后将打开一个弹出窗口,您可以在其中选择运行配置的存储位置。

Android

Android Volley 支持

Android Volley 支持

IntelliJ IDEA 2020.1 现已支持 Android Volley 库。 它为 URL 路径引用提供了自动代码补全,您也可以导航到相关资源。

其他

  • 基于 IntelliJ 的 IDE 已从 JetBrains Runtime 8 (JBR8) 彻底过渡到 JetBrains Runtime 11 (JBR11)。
  • 不同主版本的 IDE 设置现在可通过自动导入的形式进行传递。
  • IDE 的配置文件的路径已更改。
  • 更新了 “Find/Replace” 和 “Find in Path” 对话框。
  • 统一的 SSH 子系统和配置 UI。