IntelliJ IDEA 2018.2 支持 Java 11、MacBook Touch Bar 等新特性

阅读数:3788 2018 年 8 月 30 日

近期,JetBrains发布了其旗舰产品IntelliJ IDEA 的2018.2 版本。新版本支持即将推出的Java 11、断点意图(Breakpoints Intentions)、MacBook 的Touch Bar 等特性,并改进了Spring Boot、Scala 和Docker 插件。

Java

IntelliJ IDEA 2018.2 支持 Lambda 参数使用的本地变量新语法(即 JEP 323 )。这是定于 11 月推出的 Java 11 中的一个新特性。该特性支持开发人员在 Lambda 表达式中使用var

复制代码
//Java 8,不支持 var。
BiConsumer<Processor, String> consumer = (Processor x, String y) -> x.process(y);
//Java 11,支持 var。
BiConsumer<Processor, String> consumer = (var x, var y) -> x.process(y);

为配合 Java 11 对var的支持特性,在 IDE 中按住“Ctrl/⌘”键并将光标驻留于var上,将会显示该变量的类型。

对于代码中冗长的方法链,IntelliJ IDEA 将会给出类型提示(Type Hint)。面对具有泛型的长方法链时,开发人员可通过该功能查看每个调用的类型提示。

2018.2 为使用 Extract Method(提炼方法)的重构新添了一个预览面板。它有助于开发人员在确认更改前查看重构的可能情况。

IntelliJ IDEA 改进了对 @org.jetbrains.annotations.Contract 标注的支持。该标注支持开发人员为特定参数的传递指定一个响应方法,这将为空性(Nullability)分析以及其它一些代码检查提供帮助。其约束新增的支持值包括:new,方法应该返回一个非 Null 的新对象;this,方法应该返回一个非 Null 的本身(this)指向;paramX,方法应该返回第 X 个参数。

Stream API 支持也做了改进。它将会显示不必要的排序操作,以及错误使用了收集器(Collector)或集合(Colleciton)。此外,它还新增了对collect()(toSet()) 方法之前冗余调用distinct()方法给出警告。

Java 项目的调试也做了大量的改进。如果开发人员组合使用 Alt+Enter 键及其他一些可用意图(Intension),就可能会看到三种新的断点意图:在类中只停(stop only)、类中不停,以及在当前对象中只停。此外,调试中还提供了一种新的 Caller 过滤器,支持开发人员从指定方法调用时在一个断点处只停,或是从指定方法调用时跳过一个断点。

用户界面

新版本还交付了一系列用户界面上的改进。现在 IDEA 直接支持 MacBook 的 Touch Bar,并在 Touch Bar 界面的中间显示 TouchJ IDEA 按钮。这使得开发人员可以直接从 Touch Bar 运行、调试、提交更改和更新项目。对于 macOS 上的 IntelliJ 主题,现在支持以更暗方式显示标题栏,并添加了一些新的图标。而 Linux 上的 IntelliJ 主题也做了一些更新。

Scala

IntelliJ IDEA 对 Scala 插件做了多项改进。它支持开发人员以内联提示的方式查看隐式转换和参数,并在一个提示工具(Tooltip)中浏览并扩展显示信息。现在,Scala 插件中添加了 Scalafmt 格式化工具。要配置 Scala 插件,可依次点击菜单项“Preferences/Settings”>“Editor”>“Code Style”>“Scala”。

类型标注的自动完成和模式匹配功能也做了改进。如有可能,Scala 插件会对类和接口给出一组建议的类型模式,参见下图:

JavaScript/Typescript

2018.2 还改进了对 JavaScript 和 TypeScript 的支持。开发人员可以使用新的提炼组件(Extract Component)重构特性新建一个 React 组件,使用新的 Code Coverage 特性发现并未在客户端使用的 JavaScript/TypeScript 代码,并对代码做手工功能测试。为此,开发人员需要使用 Code Coverage启动一个JavaScript Debug 配置,并与Chrome 中的应用进行交互。配置完成后,IntelliJ IDEA 会在Coverage 工具窗口中给出一个代码覆盖情况报告。

此外,开发人员可使用一系列 JavaScript 和 TypeScript 意图,例如实现接口、创建派生类、实现接口或抽象类的成员、生成switch语句中的case,以及使用“for..of”实现迭代运算。

Spring

在 2018.2 中新添了一个 Spring Integration Diagram。它使用 XML 或 Java 标注显示了 Spring 应用的配置情况,包括 gateway、channel 和 bridge 等。

2018.2 针对 Spring Boot 应用做了一些改进。新的 Diagram Model 支持开发人员对 Spring Boot 应用运行时 Bean 之间的依赖关系做可视化。开发人员可以通过 Run Dashboard 管理 HTTP 请求映射。

Docker

IDEA 的 Docker 插件日渐成熟。新支持的特性包括使用新的 Use Soft Warps 操作支持 Docker 日志换行(wrap word)。开发人员也可以从 Compose 节点和容器浏览对应的 Compose 和 Docker 文件。此外,现在支持定义一个用于为 Docker 文件执行 docker build 命令的根目录。

更多信息,以及完全的改进列表,提供于“新特性”页面中。

查看英文原文:  IntelliJ IDEA 2018.2 Supports Java 11, MacBook Touch Bar and More

收藏

评论

微博

发表评论

注册/登录 InfoQ 发表评论