Java

Java 12

IntelliJ IDEA 2018.3 初步支持 Java 12! 在 IDE 中预览 原始字符串文字 (Raw String Literals) (JEP 326 ),并利用大量有用的检查和快速修复。 例如:将多行字符串文字转换为 原始字符串文字, 反之亦然,检测冗余的前后引号 (`) 等。 了解更多

阅读此处的法律声明

请注意:Java 12 尚未发布。 您必须接受 beta Java 规范的法律声明条款才能启用对 Java 12 的支持。 实施在 Java Community Process (JCP) 下开发的早期草案规范仅用于测试和 评估目的, 并且不兼容 JCP 的任何规范。

检测更多重复项

即使在更复杂的情况下(例如变量名称不同),IntelliJ IDEA 现在也可以快速发现重复项。 IDE 将 在 diff 查看器显示重复项, 因此您可以将它们彼此并排比较。

Java Stream API 改进

IDE 检测在后续最小调用之前,不必要的已排序调用的情况。 还提供了用于移除冗余排序调用的快速修复。

增强数据流

我们新建了基于数据流的检查,其名为 Condition is covered by further condition (条件由进一步的条件覆盖)。 它检测到因为第一个条件被第二个条件覆盖而没必要有第一个条件的情况。 IDE 提供快速修复以删除此类冗余条件。

被抑制检查的冗余用法

IntelliJ IDEA 现在检查 @SuppressWarning annotation,或 // noinspection line comment,或 /** noinspection */ JavaDoc 注释 的冗余用法。 当被抑制的检查不再解决相关方法体、类或语句中的任何警告时,IDE 不仅会发出警告, 而且还 提供快速修复以删除此类不必要的注释和评论。

编辑器

多行 TODO 注释

IntelliJ IDEA 2018.3 现在支持多行 TODO 注释,第一行和所有后续 TODO 注释行现在都在编辑器中高亮显示,并列在 TODO 工具窗口中。 只需在多行 TODO 注释的第二行开头添加缩进, IDE 就能 将其与普通注释区分开来。

禁用特定文件和文件夹的代码格式化

我们已经可以锁定某些文件,使其不能格式化、导入优化和代码重新排列 - 实际上是禁止 涉及 格式化的任何操作,无论显式还是隐式。 只需创建一个范围,并向内添加任何不可以格式化的文件!

新缩进状态栏

IntelliJ IDEA 在新的缩进状态栏显示当前文件的缩进大小。 如果文件的缩进 与项目的 当前设置不匹配,则会在缩进视图中添加星号。 您现在可以在状态栏弹出窗口中选择操作来控制当前缩进。

改进对 EditorConfig 的支持

IDE 现在提供 EditorConfig 文件的语法高亮显示和代码补全。 您也可以使用新的缩进状态栏弹出窗口轻松导航到正在使用的 EditorConfig 文件。

版本控制

GitHub 拉取请求

IntelliJ IDEA 初步支持 GitHub 拉取请求。 在 GitHub 拉取请求工具窗口 预览 GitHub 储存库 中的所有拉取请求。 使用 diff 预览更改,或通过上下文菜单从拉去请求创建本地分支, 然后将其合并为 常规分支。

“迄今为止的历史 (History up to Here)”可以显示全部历史

以前,History up to Here 操作仅显示直到所选提交的文件历史记录,但现在可以显示 之后 文件发生了什么,只需在工具栏切换到 显示所有分支 (Show All Branches)。 如果稍后删除了该文件,这项功能可能特别有用,因为找出这些事件并非易事。

VCS 日志中的高级导航

当您从提交哈希导航到 VCS 日志标签页的提交之后, 或者使用 Go to hash/branch/tag 操作之后, 在 VCS 日志中时,现在可以使用“前进和后退 (Forward and Back)”导航操作。 使用向左和向右箭头键在子提交或父提交之间导航。

忽略空格

现在,IDE 在合并过程中可以忽略空格变化。 在合并修订 (Merge Revisions for) 对话框新增 忽略 (Ignore) 下拉菜单,提供在合并时隐藏或修建空格变化的选项。

将文件从一个 Git 分支复制到另一个分支

IntelliJ IDEA 2018.3 使您可以通过方便的新操作 从分支获得 (Get from Branch),将文件从一个 Git 分支复制到另一个分支, 可以从 比较分支 (Compare branches) 对话框的 Files 标签页使用该操作。

提交对话框的分支名称

IDE 在 Commit 对话框直接显示文件提交至的分支名称。 我们为 Git、 Mercurial 和 SVN 实现了此功能。

在文件历史 (File History) 标签页预览差异

现在在版本控制 (Version Control) 工具窗口的 File History 标签页提供差异预览 (Diff Preview)

支持 Git 子模块

IntelliJ IDEA 2018.3 现在支持 Git 子模块! 克隆或更新项目、提交更改、查看不同和解决冲突。

搜索和替换

新的 Search Everywhere(随处搜索)

IntelliJ IDEA 2018.3 采用了更好的新方法在项目和 IDE 中导航。 请热烈欢迎重新设计的 Search Everywhere! 实际上现在不只是 Search Everywhere 功能了,它融合了所有其他导航对话框:Search Everywhere查找操作 (Find Action)转到类 (Go to class)转到文件 (Go to file)转到符号 (Go to symbol)。 请注意,所有这些导航对话框仍和以前一样,可以通过键盘快捷键访问。

通过“在路径中查找 (Find in Path)”搜索多行片段

现在可以在在路径中查找/在路径中替换 (Find in Path / Replace in Path) 对话框执行多行片段的 search / replace。 无需再使用正则表达式执行多行搜索。

新的 Structural Search 和 Structural Replace 对话框

IntelliJ IDEA 2018.3 提供更新和简化的 Structural Search 和 Structural Replace 对话框。 现在,自动补全可以在搜索字段的预定义模板中使用。 可以通过搜索图标下的下拉菜单查看搜索历史。 范围配置也更加轻松灵活。 以筛选器面板代替了复杂的编辑变量 (Edit Variables) 表单,可以在更新的 对话框中找到前者。

插件偏好设置页

我们更新了 Preferences (Settings) 中的 Plugins 页面,让您能够更轻松地管理、安装、卸载和更新插件。 现在不仅可以按名称搜索插件,还可以按标记搜索。 更美妙的是,您现在还可以按下载次数、名称、评分、精选或更新来排序结果。

运行任何内容

运行任何内容

IntelliJ IDEA 2018.3 通过新的 Run Anything 操作(按两次 Ctrl),以新的集中方式在 IDE 中运行命令行。 使用新操作启动运行配置(包括 Maven 和 Gradle),运行一个 Gradle 任务或运行终端命令。

Debug Anything(调试一切)

只需按下 Shift 键,将 Run Anything 对话框切换到 Debug Anything 模式。

Kotlin

IDE 捆绑的 Kotlin 插件已更新至 v1.3

支持 Kotlin 1.3

最近,Kotlin 发布了主要版本,更新了语言、工具和库。 IntelliJ IDEA 可以帮助您将 Kotlin 项目迁移到 Kotlin 1.3,并对过时代码执行所有必需的更改,使其符合库的最新状态。

增强对多平台项目的支持

为了提高表现力和灵活性,并且更容易共享公共代码,在 Kotlin 1.3 中,多平台项目的 model 已完全重新设计。 IntelliJ IDEA 提供了一套项目示例,囊括最常见的用例。

新的 Kotlin 检查和快速修复

自从 IntelliJ IDEA 2018.2 发布以来,Kotlin 插件已获得 30 多个新检查、快速修复和意图,这些工具可以帮助您更有效地编程。

Spring 和 Spring Boot

支持 Spring Boot 2.1

IntelliJ IDEA 2018.3 fully supports the recently released Spring Boot 2.1. Configuration values annotated with @DataSize are validated using the default @DataSizeUnit, if specified.

改进了 Spring Initializr

现在,当您使用 Spring Initializr 新建项目时,IDE 将建议安装或启用相关插件,以确保支持所有选定技术。

改进了 Kotlin 的 JPA 和 Spring Data 支持

现在,IDE 可以自动将 JPQL 注入查询字符串,提供实体名称和参数补全。 您可以在 Kotlin 中编写 Spring Data 接口,而 IntelliJ IDEA 将了解您使用的实体。 IDE 为方法名称提供智能补全,并为参数提供快速修复。

可访问性

高对比度主题

我们致力于为所有用户提供优异的体验。 在 IntelliJ IDEA 2018.3 中,我们推出了一些重要的辅助功能改进,例如全新的高对比度主题。

改进对屏幕阅读器的支持

我们改进了对屏幕阅读器的支持,使其可以读取行号、VCS 注释、调试器和我们的装订区域图标。

JVM 调试器

附加到 java 进程

附加到没有通过调试代理启动的 Java 进程。 附加到某个进程后,您将能查看当前线程 状态和 变量值,并且使用内存视图。

如果您想要将调试器附加到本地进程,可以使用方便的新操作 Attach Debugger,此操作位于 Run 工具窗口

自动重启侦听远程连接

现在,在调试远程进程时,IDE 可以自动重启配置。 只需启用新选项 Auto restart,此选项用于远程调试配置。

远程 JVM 中的异步堆栈跟踪

IntelliJ IDEA 2018.3 now supports async stack traces in remote JVMs. To start using the agent remotely:

  • 将 /lib/rt/debugger-agent.jar 复制到远程计算机。
  • 在远程 JVM 选项中增加 -javaagent:debugger-agent.jar。

现在可以在异步注释配置 (Async Annotations Configuration) 对话框定义自己的异步注释 (Async annotations)

删除所有断点的操作

IntelliJ IDEA 2018.3 提供方便的新操作,可以删除项目或文件中的所有断点。 您可以在 Preferences (Settings) | Keymap | Debugger Actions 中分配自己的快捷键。

Maven

现在,可以将所有生成和运行操作委托给 Maven。 进入 Preferences (Settings) | Build, Execution, Deployment | Build Tools | Maven | Runner,选择新选项将 IDE build / run 操作委托给 maven (Delegate IDE build / run actions to maven)

终端

已改进了嵌入式终端, 所以现在关闭项目或 IntelliJ IDEA 时, IntelliJ IDEA 2018.3 将保存终端标签页名称、 当前工作目录和 shell 历史。

我们还重新设计了终端标签页,使其看起来像其他工具窗口标签页。

运行配置

Java 运行配置中的宏

IntelliJ IDEA 现在允许您在 ‘Application’ 和 ‘npm’ 运行配置中使用宏。 您可以在 Program arguments 字段中输入预定义的宏。

能够用文本文件作为输入

如果想使用文本或日志文件作为输入,只需选择 Run/Debug Configurations 对话框下的 Redirect input from 选项, 然后指明存放输入数据的文件路径。

运行配置默认仅作为单个实例运行

运行配置现在默认仅作为单个实例运行。 不过,Run/Debug Configuration 对话框中有一个 Allow running in parallel 选项,如果您想要并行运行相同运行配置的多个实例,可以启用该选项。

JavaScript和TypeScript

JavaScript 中的自动导入

IntelliJ IDEA 现在可以从项目依赖项自动为符号添加导入,在 JavaScript 文件中。 只要软件包中存在 TypeScript 定义文件,或者软件包中含有编写为 ES 模块的源代码即可。

改进对 Angular 的支持

现在,Angular 模板中变量、管道、异步管道和模板引用变量的代码补全和 Go to definition 更加准确。

支持 Node.js 工作线程

现在,您可以在 IntelliJ IDEA 中调试 Node.js 工作线程 - 只需确保使用 Node.js 10.12 或更高版本和 --experimental-worker 标志。 IDE 为 worker 线程的 API 提供代码补全。

更灵活的 ESLint 和 TSLint

可以从 linter 的配置文件覆盖严重级别,并将来自 linter 的所有问题视为错误或警告。

对于 TSLint 错误,按下 Alt-Enter 接着按下向右键。 现在,您可以为此规则添加特殊的 TSLint 禁用注释。

Kubernetes

支持 Helm 资源文件

IDE 现在可以正确解析 Helm 资源模板文件,并提供我们著名的编辑支持:代码补全、rename 重构,当然还有检查和快速修复。

在 Helm 资源文件导航

IDE 使您可以从值的用途导航至其在图表的 values.yaml 文件中的声明。 可以使用装订区域图标在标签定义及其选择器之间导航。 此外,在 values.yaml 文件中有新的装订区域图标,可用于导航至 overridden / overriding 值。

Helm 模板结果预览

IDE 现在可以预览在 diff 中渲染的 Helm 模板结果。 只需从上下文菜单中选择新操作 Kubernetes | Helm Template

Helm dependency update (Helm 依赖项更新)

可以使用新操作 Helm Dependency Update 下载外部 tgz 依赖项(或更新现有依赖项),并在项目树中显示它们。

数据库工具

Cassandra 数据库

我们在这个版本中增加了对又一个 NoSQL 数据库 – Cassandra 的支持。

改进了 SQL 代码补全

现在,代码补全适用于:GROUP BY 中的非聚合字段,在 SELECT、MERGE 和 INSERT INTO 表变量中列示的所有列,存储过程的命名参数,SUM() 和 AVG() 中的数字字段、FILTER (WHERE) 子句和 SQLite 中的字段类型。

Introduce table alias (引入表别名)

您现在可以使用 Introduce table alias 操作直接在表上创建别名,此别名将自动替换表名称的用法。

单连接模式

每个新控制台都意味着新连接。 不过在 IntelliJ IDEA 2018.3 中,只能为数据源使用一个连接,并让所有控制台随后都使用这个连接。 可以在数据库树中查看任何临时对象。 也可以在不同控制台中使用同一个事务。 进入数据源属性 | 选项 | 单连接模式 (Data source properties | Options | Single connection mode) 可以打开这个选项。