IntelliJ IDEA 2019.2 最新变化

Java

Java 13

Java 13

IntelliJ IDEA 即将支持全新的 Java 13 Preview 功能。 IDE 支持更新的 Switch 表达式及其新语法:现在, 如果您需要在 Java 13 中从多行代码块返回值,可以使用 yield 关键字,而不用换行。 我们还更新了对文本 块的支持,允许您将更长的多行文本块嵌入源代码中,例如 HTML 或 SQL。 借助此功能,您可以粘贴 两种格式:在粘贴到字符串中时转义值,或者在粘贴到文本块中时省略转义。

带有多个出口点的重构方法

我们添加了一个新意图,您可以运行此意图,将带有多个返回的方法转换成单个出口点并进行准备,以便用于 Inline Method 重构。 一个方法可能通过定义多个返回语句的方式包括多个出口点。 当您在 IntelliJ IDEA 中内联这样的方法时,可以对其 进行修改,以单个返回语句的形式定义一个出口点来退出该方法。 此类方法不容易引起混淆,因为您有一个可以 定位它们的路径并且不需要搜索出口。

「Constant conditions & exceptions」确定问题根源

「Constant conditions & exceptions」确定问题根源

我们使用一种名为「Find Cause」的新操作替换了传统且效果非常好的「Constant conditions & exceptions」检查。 除了会通知您 可能或实际的问题外,此检查还会将您导航到可疑代码段。 不用再通读文件和搜索 必要的代码行。

修改后的检查可从您的代码中清除重复项

修改后的检查可从您的代码中清除重复项 Ultimate

我们将用于 Java 的「Duplicated code fragment」检查与用于其他语言的「Locate duplicates」工具合并,为您提供了一种名为 「Duplicated code fragment」的新检查。此检查功能十分强大,汲取了前两种工具的精华。 新检查可以配置,动态运行,并支持除了 Java 外的 许多语言。

Java HTTP 客户端支持

更新的补全弹出窗口提供更正错误输入的模式的建议

在 IntelliJ IDEA 2019.2 中,我们更改了代码补全弹出窗口的外观,使其可以提供更多帮助。 从现在开始,补全会识别错误输入的 模式并建议可能的修复,因此若您意外输入「retru」,IDE 会建议将其替换为「return」。

Java HTTP 客户端支持

Structural Search 即时显示实例

Structural Search 是一个强大的功能,允许您在项目中搜索特定的代码模式。 在您输入时,IntelliJ IDEA 会在编辑器中高亮显示 与您的搜索匹配的字符串。 此外,IDE 还会直接在 Structural Search 对话框的编辑区域中显示筛选值。 在您 试验模式时,不再需要连续不断地重复运行搜索。

分析工具

IntelliJ IDEA 现在提供分析工具 Ultimate

现在,您可以直接在 IDE 中分析应用程序的性能,因为 IntelliJ IDEA 已在 Windows、macOS 和 Linux 上与 Java Flight Recorder 集成。

macOS 和 Linux 用户还可以使用 Async Profiler。 此工具可以轻松成为您的最佳伴侣,因为它可以提供内存和 CPU 在您的应用程序分配的所有信息。

服务

Services 工具窗口:适用于所有连接和配置等的单一控制面板

Services 工具窗口:适用于所有连接和配置等的单一控制面板

现在,您可以在一个视图下获取控制所有操作的一切信息。 全新的 Services 工具窗口整合并封装了最有用的工具: RunDashboard、Database Console、Docker 和 Application Servers 视图。 它还为连接、运行与调试配置、应用程序服务器、数据库控制台等提供了单一的显示和控制点。 对于数据库,该工具窗口还有一个查询生存计时器,可以显示运行查询的每个连接的持续时间。

借助正在运行的 Docker 容器查看文件系统

借助正在运行的 Docker 容器查看文件系统

在 IntelliJ IDEA 2019.2 中,您可以在 Services 工具窗口内 Docker 节点的 Files 标签页中查看正在运行的 Docker 容器的文件系统。

性能

Java HTTP 客户端支持

此版本改进了文件系统刷新的性能和 UI 响应,并缩短了由处理文件系统更改引起的大多数延迟。 我们竭尽全力优化了启动性能,因此您应当能够在启动 IDE 时感受到提升。

编辑器

每个目录都可以有自己的代码样式

每个目录都可以有自己的代码样式

您现在可为每个文件夹使用单独的代码样式配置。 想要试试吗? 将 EditorConfig 文件置于模块或软件包的根目录中,然后即可看到效果。

IDE 现在通过 EditorConfig 文件管理所有代码样式设置。 所有调整现在都可以在预览中看到,因此您漫无目的地尝试设置的日子已经一去不复返了。

了解详情

语法高亮显示可用于 20 多种语言

语法高亮显示可用于 20 多种语言

IntelliJ IDEA 现在与 TextMate 编辑器集成,可为 20 多种不同的编程语言提供开箱即用的语法高亮显示。 如果要为任何其他语言添加高亮显示,您只需为语言下载 TextMate 捆绑包,然后将它导入到 IDE。

为「Move Caret to Next Word」操作提供选项

为「Move Caret to Next Word」操作提供选项

现在,您可以选择将脱字符号置于何处:当前单词的结尾或者下一个单词的开头。 在 Settings/Preferences | Editor | General 的 Caret Movement 选项中选择最适合您的行为。

Tab 键现在让您跳出右中括号或引号

Tab 键现在让您跳出右中括号或引号

另一个可以帮助您更快输入的功能现在默认处于启用状态:Tab 键现在可以让您跳出右中括号或引号。 此功能仅在您输入时运行。

要禁用此选项,请转到 Settings/Preferences | Editor | General | Smart Keys,然后取消选择「Jump outside closing bracket/quote with Tab when typing」复选框。

选定代码自动用引号或大括号包围

选定代码自动用引号或大括号包围

虽然不是全新的技术,但这个超级方便的功能现在已默认启用:当您输入大括号或引号时,IntelliJ IDEA 会自动使用大括号或引号包围选定的代码。

如果您不喜欢我们提供的这个功能,请转到 Settings/Preferences | Editor | General | Smart Keys,然后取消选择「Surround selection on typing quote or brace」复选框。

macOS 现在采用新的默认按键映射

macOS 现在采用新的默认按键映射

我们为从 Mac OS X 至 macOS 10.5+ 的 macOS 更改了默认按键映射。 我们还重命名了按键映射:Mac OS X 10.5 现在叫作 Default for macOS,过时的 Mac OS X 现在为 IntelliJ IDEA Classic。

IntelliJ IDEA 可以流畅地处理大文件

现在,您可以在 IntelliJ IDEA 中轻松打开大于 25MB 的文件,并且不用等待很长的时间即可完成搜索。 对于处理日志文件的用户来说,这是一项非常好的小改进。

外观

Inspection 弹出窗口显示最相关修复

Inspection 弹出窗口显示最相关修复

此版本可以更快地提供由代码检查建议的修复。 检查弹出窗口现在不仅会描述问题,还会直接为您显示最相关的解决方案。 如果修复适合您,请按 Alt+Shift+Enter,或者使用 Alt+Enter 快捷键从列表中选择其他选项。

New Class 对话框采用新外观

New Class 对话框采用新外观

New Class 对话框具有新的外观。 此外,此对话框现在还可让您预览您能够创建的类的类型。

Windows 用户介面拥有全新的优雅外观

Windows 用户介面拥有全新的优雅外观

在 Windows 10 上,IDE 现在采用全新的现代无边框外观。

Project 视图现在显示文件大小和修改时间

Project 视图现在显示文件大小和修改时间

新选项可以帮助您监视项目动态,并显示 Project 视图树中所有项的大小和修改时间戳。 要启用此功能,请在树形视图中选择 View | Appearance | Descriptions。

编辑器和调试器标签页采用统一的外观

编辑器和调试器标签页采用统一的外观

编辑器和调试器标签页的设计在 Light 和 Darcula 皮肤下已改为拥有一致的外观。 在 Light 皮肤下,我们将标签页的高度调整为工具窗口标题的高度。 我们还移除了标签页下面的白线以最大程度减少视觉混乱。

Find Usages 工具栏变得更简练

Find Usages 工具栏变得更简练

随着从工具栏移除不受欢迎的图标并在视觉上减少它们加载的趋势,我们精简了 Find Usages 工具窗口的工具栏。 一部分图标现在已群组,一部分则被移除。

Gradle

Gradle 采用新的依赖关系图 Ultimate

在此版本中,我们添加了期待已久的 Gradle 依赖关系图。 只需点击 Gradle 工具窗口工具栏上的 Show Dependencies 图标,或者按 Alt+Shift+Ctrl+U/Alt+Shift+Cmd+U。 从此关系图中选择节点可以查看它们的相邻节点,然后点击节点即可查看它们连接到根节点的方式。

为 build.gradle 文件添加了更多编码辅助功能

为 build.gradle 文件添加了更多编码辅助功能

从 2019.2 版本开始,您可以更轻松地编辑 build.gradle 文件。 IntelliJ IDEA 现在支持任务声明语法和各种依赖关系表示法,并在依赖关系块和依赖关系配置闭包中提供代码补全。

Gradle 任务输出得到了改进

Gradle 任务输出得到了改进

Gradle 操作的状态树和输出控制台现在并排显示,可以帮助您监视同步/生成过程。 这样可以提供更详细和熟悉的 Gradle 输出信息。

使用 Gradle 设置变得更容易

使用 Gradle 设置变得更容易

我们弃用了多个选项,对 Gradle 设置对话框进行了简化。 此外,IntelliJ IDEA 还会在您打开、导入或创建 Gradle 项目时自动为您配置设置。

Maven

Maven 同步输出在 Build 工具窗口中显示

Maven 同步输出在 Build 工具窗口中显示

现在,IntelliJ IDEA 在 Build 工具窗口中报告 Maven 导入过程和 Maven 生成输出。 这提升了进度和错误报告的可见性,简化了导航,并让 Gradle/Maven 体验更加一致。

Maven 依赖关系补全开箱即用

Maven 依赖关系补全开箱即用

pom.xml 中的依赖关系代码补全现在开箱即用。 之前,只有在您触发 Maven 代码库的索引编制时,补全才会运行。

版本控制

原生支持忽略文件

原生支持忽略文件

在此版本中,我们为 Git 添加了原生忽略文件的处理功能。 从现在开始,原生忽略文件处理开箱即可用于所有受支持的版本控制系统。

您不再需要于 .gitignore 列表中手动添加文件。 现在一切都更简单:从 Project 树或 VCS 工具窗口的 Local Changes 标签页中将文件添加到忽略文件的列表。 用于提供 Git 忽略和 HG 忽略支持的 .ignore 插件现在仅提供 VCS 忽略的高级功能,因为主要功能是平台的一部分。

从 Local Changes 标签页提交文件

IntelliJ IDEA 2019.2 为使用 Git 或 Mercurial 的项目带来了重大变化。 无需打开一个单独的对话框来提交文件;您现在可以从 Version Control 工具窗口的 Local Changes 标签页中提交文件。 在此标签页中,您可以检查修改的文件并根据需要进行更改,因为提交对话不会妨碍 IDE 的其他部分。

要进行尝试,请在 Settings/Preferences | Version Control | Commit Dialog 中选中「Commit from the Local Changes without showing a dialog」复选框。

智能 VCS 集成提醒您提交文件

IntelliJ IDEA 2019.2 可以提醒您修改您通常随最近修改的文件一起提交的文件。

IDE 建议将外部复制的文件添加到 VCS

IDE 建议将外部复制的文件添加到 VCS

IntelliJ IDEA 可以提示您将从 IDE 外部复制的任何文件添加到项目中,或者将在控制台中或代码执行期间创建的文件添加到版本控制中。 您还可以将 IDE 配置为自动添加此类文件。

VCS Log 标签页允许您选择要显示的信息

VCS Log 标签页允许您选择要显示的信息

现在,您可以选择想在 VCS Log 标签页中看到哪些列。 点击眼睛图标,选择显示列 (Show Columns),然后选择您想要显示的列:作者、日期或提交哈希。

可以从 UI 中放弃 Git Merge 和 Cherry-Pick

可以从 UI 中放弃 Git Merge 和 Cherry-Pick

现在,您不用切换到终端即可放弃 Git Merge 或 Cherry-Pick。 在进程运行时,Abort Merge/Abort Cherry-pick 选项会出现在 Branches 弹出窗口中。

文件夹的 Show History 在 Git Log 标签页上显示结果

轻松跟踪项目中的更改。 现在,当您在 Project 视图中的选定目录上使用 Git | Show History 操作时,IDE 会在按照各自路径筛选的 Log 标签页中显示结果。

您还可以同时查看在多个文件夹中进行的更改。 右键点击您想要检查其更新的文件夹,然后选择 Git | Show History。

Update Project 操作后的 Update Info 以 Log 标签页形式显示

Update Project 操作后的 Update Info 以 Log 标签页形式显示

之前,当您使用 Update Project 和 Pull 操作时,IDE 会在 Version Control 工具窗口的 Update Info 标签页中显示更新文件的树。 在 v2019.2 中,Update Info 以更新期间收到的提交列表形式显示。 Update Info 标签页现在与 Log 标签页类似。

比较分支变得更加方便

比较分支变得更加方便

Branches 弹出窗口中的「Compare with Current」现在分成 2 个单独的操作:「Compare with Current」和「Show Diff with Working Tree」。 更新的「Compare with Current」操作现在可以显示提交中的差异,而全新的「Show Diff with Working Tree」则可以显示文件差异。

Diff 现在显示包含修改代码的方法

Diff 现在显示包含修改代码的方法

在「Collapse Unchanged Fragments」模式下,Diff 现在可以显示在当前代码块中修改的方法。 您不仅会更容易地看到更改,还可以理解上下文。

Kotlin

IntelliJ IDEA 中捆绑的 Kotlin 插件现在已更新到 v1.3.41。

JPA for Kotlin 获得了更多编码辅助功能 Ultimate

IntelliJ IDEA 2019.2 提供了更多适用于 Kotlin 的 JPA 编码辅助功能。 现在,您可以使用 Generate Kotlin Entities 脚本在选定的表上生成 Kotlin 实体类。 此脚本可轻松自定义;转到 Scripts Directory,通过修改脚本以解决特定任务来对脚本进行试验。 此外,IDE 现在还可以使用「Go to Declaration(Cmd+B/Ctrl+B) 」操作将您导航到相应的列或表。

「Async stack trace」显示挂起的最后一个点处的变量状态

「Async stack trace」显示挂起的最后一个点处的变量状态

当您在挂起函数或 lambda 内的某个断点处停止时,「Async stack trace」现在可以向您显示挂起的最后一个点处的变量的状态。 您可以浏览从当前协程开始的挂起函数的整个堆栈跟踪,并检查变量的存储值。 这可以帮助您了解到达执行的当前点的方式。

临时文件的交互模式动态显示更改

临时文件的交互模式动态显示更改

如您所知,在 Kotlin 中,您可以使用临时文件对代码库进行小规模试验。 现在,您可以使用交互模式,此模式会在特定的超时之后向您实时显示结果,而无需显式重新运行脚本。

TODO 列表为 Kotlin 显示多行注释

TODO 列表为 Kotlin 显示多行注释

您多久检查一次项目中的 TODO 列表? IntelliJ IDEA 现在会在 Kotlin 中正确地高亮显示多行 TODO 注释,并在 TODO 工具窗口中以列表的形式显示它们。

IDE 警告您注意不正确的外部注释

IDE 警告您注意不正确的外部注释

如果您为 Java 使用外部为 Null 性注释,IDE 现在可以在 Kotlin 中警告您注意不正确的注释 Java 方法的用例。 请注意,这是一种纯粹的 IDE 功能;相应的代码将由 Kotlin 编译器编译并且没有警告,而 IDE 将显示附加警告。

Groovy

我们扩展了 Groovy 3.0 语法以及对嵌套式代码块的支持。 而且,IDE 现在还会在默认情况下将闭包表达式中的大括号和箭头加粗,这样您就可以轻松地理解代码的结构并将代码块与闭包区分。

您还可以使用快速修复,它们会为没有明确定义参数类型的 Groovy 方法的方法声明中的所有参数添加显式类型。

Scala

高亮显示类型不匹配的新方式

高亮显示类型不匹配的新方式

IntelliJ IDEA 现在会显示类型归因提示并高亮显示与预期类型不匹配的部分,而不是使用红色波形曲线为类型不匹配错误添加下划线,后一种方式可能会延伸到多个行。

了解详情

类型不匹配工具提示显示差异

类型不匹配工具提示显示差异

类型不匹配工具提示现在进行了精细的垂直对齐,并提供成对比较。 算法会考虑语法糖、子类型、差异和其他棘手的方面。

类型提示变成交互式

类型提示变成交互式

类型注释提示现在支持动态折叠、工具提示、导航和大括号匹配。 类型提示现在仅在真正需要时显示。

表达式在您输入时包围/解包

表达式在您输入时包围/解包

之前,您必须使用意图将表达式包围在大括号中或从中解包。 现在,IntelliJ IDEA 可以在您输入时自动执行此操作。

冗余代码现在不再高亮显示

冗余代码现在不再高亮显示

IntelliJ IDEA 总是使用灰色将未使用的导入或不可到达的代码标记为「冗余」(依配色方案定义)。 不过,一些其他冗余代码被高亮显示为「一般警告或错误」,这会污染代码并隐藏真实错误。 现在,我们使用灰色来一致地标记所有冗余代码,因此高亮显示不再醒目。

改进的代码补全

改进的代码补全

您现在可以补全整个 case 子句 (之前,您只能在 case 子句中补全模式)。 补全不仅适用于 match 语句,也适用于更高阶函数。

增强的语言注入 Ultimate

现在,您可以将语言注入包含边距的多行字符串文字。

完全支持 Build Server Protocol

完全支持 Build Server Protocol

IntelliJ IDEA 现在支持 Build Server Protocol (BSP),此协议将生成工具(服务器)与 IDE(客户端)彼此沟通的方式标准化。 很长时间以来,BSP 支持都是一项实验性功能。现在它已正式成为 IDE 的重要功能。

JavaScript和TypeScript

新意图使用另一个解构替换额外变量

新意图使用另一个解构替换额外变量 Ultimate

借助新的「Propagate to destructuring」意图操作 (Alt+Enter),您可以在可行的场景下将一个额外变量替换为解构。 要完全移除解构,请使用名为「Replace destructuring with property or index access」的意图操作。 如果条件中的布尔表达式含有不必要的部分,IDE 现在将发出警告,并且提供简化该表达式的建议。

JavaScript 的 Rename 重构已增强 Ultimate

重命名 JavaScript 或 TypeScript 文件中的符号时,IDE 现在会将动态用法组合在一起,并且默认会从重构中排除它们。 这使重构更准确,并且使您可以更严格地控制应该在重构预览工具窗口中重命名的东西。

对 Vue.js 的改进支持可以实现更好的补全

对 Vue.js 的改进支持可以实现更好的补全 Ultimate

在 Vue.js 应用程序中使用 Vuetify 或 BootstrapVue? 我们为这些库在 IDE 中采用了新方式。 从现在开始,这些和其他 Vue 组件库的组件及其属性的代码补全更加准确。

Node.JS 现在与 IntelliJ IDEA Ultimate 捆绑 Ultimate

现在,Node.JS 插件已预先安装在 IntelliJ IDEA Ultimate 中。

数据库工具

全文检索提供全面结果

Full-text Search 提供全面结果 Ultimate

现在,即使您不知道其确切位置,也可以搜索需要的数据。 右键单击您想要在其中搜索的单个数据源或一组数据源,然后选择 Full-text Search,或者按 Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F

结果将进行筛选,仅向您显示在其中找到数据的字符串。 如果由于列过多而无法定位数据,请在数据编辑器中使用文本搜索 (Ctrl/Cmd+F)。

在搜索和导航中按数据源筛选

在搜索和导航中按数据源筛选 Ultimate

在 GoTo 弹出窗口中定位对象并不总是非常容易,尤其是在有很多相似项的情况下。 在 IntelliJ IDEA 2019.2 中,您可以选择搜索的位置:在特定的数据源中或一组数据源中。 这些同样适用于 Find In Path。 如果您要在其他对象的 DDL 中查找源代码,这将特别有用。

JVM 调试器

Step Into 操作为您提供了一种单步执行方法

Step Into 操作为您提供了一种单步执行方法

当您在包含多个方法调用的行上进行「单步执行」时,可以选择您想要单步执行的方法、lambda 或方法引用。

Shell 脚本

IntelliJ IDEA 引入 shell 脚本支持

此版本为 shell 脚本提供了丰富的编辑支持,包括单词和路径补全、快速文档,甚至是文本更名。 您还可以创建用于执行 shell 脚本的运行配置 - 这只是一部分功能。 我们将多个外部工具集成到 IntelliJ IDEA 中,提供更高级的 shell 脚本支持。 从现在起,您可以使用 Shellcheck 检测和修复脚本中的错误,使用 Shfmt 正确地格式化 shell 脚本,使用 Explainshell 获得必需命令的完整描述 (按 Alt+Enter)。

HTTP客户端

HTTP 客户端支持 cURL 请求

HTTP 客户端支持 cURL 请求 Ultimate

现在,您可以将一段 cURL 请求字符串粘贴到 HTTP 客户端中,并让 IDE 自动将其转换为完整请求。

HTTP 客户端保留 cookie

HTTP 客户端保留 cookie Ultimate

假设您向服务器进行身份验证请求,在随后的请求中,您调用一些需要额外权限的端点。 之前,您会丢失第一个响应的 cookie。 但现在不会这样了:IDE 现在会为您保留所有 cookie,并在后续请求中进行传输。

终端

终端自动换行得到改进

终端自动换行得到改进

之前,终端有时会在换行时断开链接,且有些换行不正确。 现在,在您运行输出长行的命令时,终端会顺利地自动换行,且能确保所有链接处于有效状态。 如果您点击换行的链接,它会立即发送到您的浏览器。

从命令行退出文件合并代码

在用作合并文件的命令行工具时,IntelliJ IDEA 现在会返回正确的退出代码。 您现在可以在任何自定义工作流中将 IntelliJ IDEA 用作合并工具。 我们还支持 --wait 命令行选项,用于以块的方式从终端中编辑文件。

插件

Plugins 页面变得更符合人体工学

Plugins 页面变得更符合人体工学

IDE 现在可以立即在 Settings/Preferences 对话框的 Plugins 页面上显示插件详细信息,因此,您不用逐个点击各个插件。 我们移除了 Updates 标签页,并将「Update」按钮置于 Installed 标签页中的插件名称附近。 我们在齿轮图标下添加了新选项,允许您同时禁用或启用下载的插件。 帮助您省去众多点击次数,并将时间用在更重要的事情上。

Kubernetes

表达式在您输入时包围/解包

Kubernetes 插件获得 Kustomize 支持 Ultimate

带有 Kubernetes 插件的新版本 IntelliJ IDEA 2019.2 为 Kustomize 提供了编辑支持,包括键和路径补全以及适用于 Kustomize 资源文件的许多检查。

更名重构现在可以用于 Kustomize 资源文件的文件和目录更名。 您可以使用 Ctrl+B/Cmd+B 快捷键,从 Kustomize 资源文件中声明的路径跳到 Project 工具窗口中的相关软件包或文件。

类型提示变成交互式

可以使用 URL 添加外部资源 Ultimate

现在,您可以使用 URL 从外部源加载自定义资源定义 (CRD) 规范。 要添加规范,请转到 Settings/Preferences | Languages & Frameworks | Kubernetes,然后添加 CRD 规范的 URL。 (之前,只能从本地文件添加 CRD。)