阅读 3507

IntelliJ IDEA 2019.1 新特性

盼望着, 盼望着, 春天来了, JB的新年第一版IDEA终于发布了!闲言少叙, 介绍下新特性吧

  • 主题

自定义UI

通过书写配置文件的方式自定义UI

High contrast

高对比度主题套餐, 硬核的朋友可尝试一下


  • Java

Switch

  • 在Java12的新特性中, switch表达式可以被增强为类似箭头函数的形式;

  • 可以合并同样处理逻辑的switch选项.

变量提取

  • 变量提取得到了增强, 现在可以将相同语义的代码进行提取

  • 根据上下文的不同, IDE会将if表达式转换为三元表达式.

  • 三元表达式中更精确的警告

  • 在之前的IDEA中, 其对非空限定的三元表达式的检测为"高亮整个表达式", 现在可以精确高亮违法约定的那部分了;

表达式中的数学检测

注解

  • @Contract 注解

@Contract 注解用于标识方法所需遵循的限定, 它有2个属性:

value: 包含描述参数和返回值之间因果关系;

pure:  用于只返回新值不更改对象状态的方法, 参见

If its return value is not used, removing its invocation will not affect program state or change the semantics, unless the method call throws an exception (exception is not considered to be a side effect). A method should not be marked as pure if it does not produce a side effect by itself, but it could be used to establish the happens-before relation between an event in another thread, so that changes performed in another thread might become visible in current thread after invocation of this method. On the other hand, some synchronized methods could be marked as pure, because the purpose of synchronization here is to keep the collection internal integrity rather than to wait for an event in another thread. "Invisible" side effects (such as logging) that do not affect important program semantics are allowed.

  • 根据参数所使用的的方法, IDEA会建议加上注解

堆栈跟踪

  • 现在可以在进行堆栈跟踪时直接定位到具体位置了, 而非以前的只定位到所属行.

  • Gradle

  • 委托给Gradle

现在可以将构建和运行操作委托给Gradle(支持对每个项目单独分级)

可以为同一个项目的测试运行程序和应用程序运行程序设置不同的值 (此版本IDEA中默认将项目委指定为Gradle管理)

  • 从测试任务列表中选择

Gradle支持从测试任务列表中进行选择

  • HotSwap触发构建

  • Maven

  • 构建输出位置

构建的过程的输出位置从run窗口转移到build窗口

  • 依赖视图增强

  • 显示依赖冲突

  • 显示无边界视图

  • 显示相邻节点

  • 显示依赖路径

  • Version Control

  • 修正和压并

修正和压并操作被加入到了VCS选项中

  • Cherry-pick

cherry-pick可以从VCS日志中选择并应用

  • 传入和传出

查看传入和传出有效性

需要在Settings->Version Control->Git中修改

  • 还原已删除的文件

  • 批量选择

比较不同时可以通过全选框批量选择

  • "我的同事git名太长怎么办?"

别担心, 可以只看首字母

  • Diff

  • 拖拽到比较

现在文件比对可以把要比较的文件直接拖拽到比较区了

  •   互换差异内容

  • 更精确的高亮

现在可以精确到字符级别了

  • 最近(变动的)位置

CMD(Ctrl)+Shift+E 可查看最近访问和修改的痕迹, 按最近变动时间排序

  • JVM 调试器

支持“synchronized”、“assert”和“switch”

跳出代码块

可以在调试过程中跳出当前所属的代码块(妈妈再也不用担心我的for循环了)

指哪跑哪

选中行号后可选择"运行到所选位置"

  • Scala

理解

增强了对错误高亮 / 隐式提示 / GoTo / Quick Definition / Quick Documentation等的理解

查找隐式使用处

Find Usages可以作用于隐式定义、应用/不应用的方法、理解方法和单个抽象方法(SAM)类型


反编译

可以将没有源码的.class文件反编译为.java文件了

Scalafmt

在2018.2版本中已经加入了对Scalafmt的支持, 现在这个功能又得到了增强——可支持自定义的Scalafmt版本并可以通过IDEA下载

Hocon

Hocon插件被分离为一个独立的插件, 你可以按需启用/弃用

错误高亮

变动区域包括:

1.局部统一和类变量统一;

2.构造函数高亮,调用私有构造函数;

3.implicit0;

4.多态lambda;

5.Simulatrum:  higher-arity构造函数。


  • Groovy

支持Groovy3.0的Java风格lambda语法. IDEA提供了代码补全, 高亮和类型推断等编辑功能, Groovy的检测和提示将在其中可以正常工作. Java风格的lambda可以使用格式化和调试.

  • Kotlin

内置的Kotlin插件版本被升级到v1.3.21版本

动态模板生成main时为空参

kotlin1.3开始main方法可以不带参数

main缩写生成的是空参版, maina缩写生成的是带参版

String转化

可以优化掉不必要的toString()

lambda转换匿名类

代码风格提示

  • JavaScript & TypeScript

解构

现在支持JS和TS中的解构了

Promise转Async/Wait

更新CSS和HTML文档


JavaScript debug 控制台

Javascript和node.js调试工具窗口中的交互式调试器控制台现在使用树视图显示对象,它支持使用css设置日志消息的样式,并使用console.group()和console.groupend()对其进行分组。此外,它还允许您过滤掉任何类型的日志消息。

  • Docker

IDEA允许在从dockerfile构建或使用docker compose(docker compose.yml)创建的容器中进行调试Java程序。

  • K8S

外部资源支持


Helm

现在可以在helm资源模板文件的图表中使用重命名重构(需要安装Go模板插件)

  • 编辑器

导出编码格式

Soft-wraps

Soft-wraps可以指定适用范围(文件类型)了


键位对话框

初次在Windows上按Ctrl+Y时会弹出键位此对话框

Sublime Text键位

 在Keymap中可以使用Sublime Text这个预设键位了.

VS Code键位

提供了VS Code键位插件以支持使用VS Code的键位

  • Spring Cloud Stream

编辑器支持

IDEA现在为Spring Cloud流项目提供了丰富的编辑支持,例如语法突出显示、检查、快速修复和代码补全(包括application.properties或application.yml文件中值和引用的绑定器名称补全)。

生产者和消费者之间的导航

  • Thymeleaf

现在可以导航到“th:replace”和“th:include”属性中引用的模板片段。代码补全和重命名重构现在也适用于这些包含和替换的片段。

  • Database Tools

支持更多数据库

Intellij IDEA支持这些新数据库:

Greenplum——基于PostgreSQL的分析数据库。

Vertica——面向列的存储,用于处理大量数据。

ApacheHive——建立在Hadoop之上的数据仓库,用于提供数据查询和分析。

选项

变更了连接对话框的外观,并添加了几个重要的设置。现在,您可以在“启动脚本”字段中添加一个SQL查询,该查询将在每次建立连接时运行。此外,还可以设置超时,在超时之后,IDE将自动断开连接,或者设置每隔n秒运行一次查询的时间间隔,以保持连接的活动状态。


  • 结语

工欲善其事必先利其器   ——《论语·卫灵公》

提高工作效率的一个手段之一是使用强大的工具, 18年来JetBrains公司给我们带来了一次又一次惊喜. 一定程度上讲, 正是有着像IDEA,PyCharm等优秀的软件, 我们才得以在工作学习过程中能够持续性获得便利性的良好体验, 它们的诞生也一定程度上促进了当今社会的发展.

向那些孜孜不倦为行业提供优秀工具的人们致敬 !

关注下面的标签,发现更多相似文章
评论