当前位置:   article > 正文

IntelliJ IDEA 2020.3 新特性——Show me the code系列

idea 2020.3

北京时间2020年12月1日,JetBrain公司推出了二十周年第三个稳定版的IntelliJ IDEA 2020.3 。
距离上一个稳定版IDEA,过去了小五个月,这次的更新来得比较晚,我的博客也是。如果不是同事提醒,我也差点忘记了自己其实是打算把IDEA编辑器这个系列给一直更新下去的哈哈哈,话不多说,让我们先进官网看看。
以下是官网的原话:

IntelliJ IDEA 2020.3 adds interactive hints and inline watches in the debugger, improves support for Java 15, and introduces support for Git staging, along with a variety of other features. Continue reading to learn about them all!

照例翻译一下
1.IntelliJ IDEA 2020.3在调试器中添加了交互式提示和嵌入式监视器
2.改进了对Java 15的支持
3.并引入了对Git暂存的支持
4.其他各种功能
继续阅读以了解所有内容!

这四点是官网欢迎页面的简单描述,我本人观看了1<<1<<1遍官网介绍视频后感觉总结得还算到位。
没写上去的功能基本就是锦上添花,提及的部分是真的非常提高生产力,尤其是debug中的嵌入式监视Git暂存,那简直是Nice中的Nice。
其余一些表情包功能,阅读器模式,主题和系统一致,相较于2020.2更强的search功能,还有一个重磅,那就是可以远程协助写代码了!!以后不会写的代码,可以找个大佬给我们解决了,棒棒棒!!

本篇博客中的更新要点全部来自官网首页的介绍视频,下面就按照视频中的顺序给大家一一实际展示一下

视频链接(需翻墙):https://www.youtube.com/watch?v=KffXqIZ0tYg&ab_channel=IntelliJIDEAbyJetBrains

新的改变

新的启动页

在这里插入图片描述

新的首页

在这里插入图片描述
全新的UI设计,将平时我们不太会操作的New ProjectOpenGet From VCS按钮放在了右上角的位置,突出新的重点:原有项目(毕竟我们的主要操作就是打开旧项目)。

同时,logo被移动到了左上角,更灵动了,下方排布了四个新的导航栏

  • Projects 项目(这个没啥好说的)

  • Customize 自定义界面样式
    现在可以直接在初始界面就设置IDEA主题,字体大小
    同时新增了跟系统主题保持一致的配置选项Sync with OS在这里插入图片描述

  • Plugins 插件(就是将配置里的插件设置弄到了初始页面)

  • Learn Intellij IDEA 了解,学习IDEA
    好家伙,我随手点了一下图中的Start Learning按钮,简直就是米老鼠进了米奇妙妙屋,妙到家了
    一个非常完整的教程
    如果退出教程,教程会在下次打开IDEA的时候展示在Projects
    推荐刚上手Idea的小伙伴点进去看看,帮助快速上手IDEA

在这里插入图片描述

搜索窗口支持数学计算

双击Shift打开搜索全部窗口
输入简单运算加减乘除、幂运算这些,可以直接得到结果,按Enter或者鼠标点击,复制到剪切板,不用像以前打开系统的计算器了

这里存在一个精度损失的问题,不过搜索窗口做做简单计算就好了
在这里插入图片描述

眼尖的小伙伴可能已经看到了,我们的选项卡最后一个是git,现在的搜索框也支持搜索git的commit内容了!

分屏预览

在这里插入图片描述

  • 现在支持拖动tab来分屏预览
    其实!!
    IDEA早就支持分屏了,只不过以前需要设置分屏快捷键,或者直接点击split
    我以前是这样操作的,在文件栏目右键,找到split
    或者双击Shift打开搜索框,然后输入split
    不过拖动更加方便嘛

    2020.3搜索split关键字,出现的提示相较于2020.2版本,变得通俗易懂了
    左旧右新
    split horizontally 水平分割 ==> split down 向下分割
    split vertically 垂直分割 ==> split right 向右分割

  • 可以拖动其他tab到编辑窗口了

    比如我们可以拖动Terminal Tab到编辑窗口,不过我个人认为,Terminal还是放下面好看一些

机器学习(排序你的方法)

当我几年前第一次接触IDEA的时候,就被它强大的代码自动补全能力深深吸引了,甚至开始担心自己以后会不会因为用太多IDEA变得不会写代码了。。。后面证明我想多了,哈哈

Now,最新的IDEA来了,他带来了更强大的代码补全以及方法提示

视频中@Trisha Gee说道:

IDEA一直致力于提供代码编写早期的相关建议,2020.3引入了这方面的机器学习能力

此新版本IDEA中表现为机器学习你的编程习惯,根据你对完成方法的使用情况进行智能排序

那么我们怎么去使用这个新功能呢?照图上设置就可以啦。

默认是开启对于Java代码的机器学习的,
但是我们是没有直观感受的,所以IDEA提供了一个开关,我们可以点击,开启箭头提示
在这里插入图片描述
下面就是效果:重新排序完成建议,并用箭头标出最近的使用情况
在这里插入图片描述
你的编辑器,越用越懂你

这里强烈推荐一款插件Codota,跟新特性配合效果更佳~
链接:Codota插件地址,IDEA

更好地支持 Java 15

大部分开发者基本都使用Java8 或者Java11,这里我就不多赘述了,涉及到语言的新特性

内联方法 Inline Method

当开发人员使用多语言开发(图示Kotlin调用Java),同时存在语言之间互相调用方法的情况
我们可以使用Inline Method 选项来内联方法,将Java代码的方法转换成Kotlin代码并写进Kotlin文件中(图源来自视频)
在这里插入图片描述

更强大的 Structurally Search

2020.2版本新出的结构化查找,2020.3版本现在查找Kotlin文件了

具体使用方法在我的上一篇博客中有详细提及
视频中@Trisha Gee也推荐我们程序员要习惯去使用,是一个非常实用的东西
这里附上我上一篇博客的地址,对结构化查找有详细介绍,感兴趣的小伙伴动动手指~
链接: Show me the code系列之IntelliJ IDEA 2020.2 新特性

超实用,2020.3对于debug的提升

以下几个地方,非常非常地好用,正确的debug能帮助你飞跃提升生产力

交互式内嵌提示 Interactive Inline Hint

现在支持交互式Inlay hints内嵌提示,注意是交互式,因为内嵌提示早就有了
当我们在debug的时候遇到了断点,代码行内会出现行内提示
2020.3以后可以直接点击这些提示,查看这个对象的完整信息
在这里插入图片描述

同时我们可以右键去做设置这个对象的属性,或者复制等操作
在这里插入图片描述
如果是旧版本,只能在底部的Debug的ToolBar去看了,总的来说这个改变还是人性化的

内联监视器 Inline Watcher

上一个功能点我们提到交互式内嵌提示,接下去讲,现在我们可以在内嵌行中直接添加监视器Add to Watches,也就是Inline Watcher内联监视器

我们假设一个场景,我们需要遍历一组数据,且其中一条数据出了问题,会导致不可预测的情况发生
我们现在需要debug把那条数据找出来

首先我们做一下准备步骤

-创建一个测试类-DebugTest
-测试类里写一个Hero内部类,拥有id,name和god属性值
-main方法中创建三个Hero对象,添加到list中
-循环输出hero的名字

public class DebugTest {
    public static void main(String[] args) {
        Hero superMan = new Hero(1,"超人2028",true);
        Hero batMan = new Hero(2,"BatMan",false);
        Hero wonderWoman = new Hero(3,"WonderWoman",true);
        ArrayList<Hero> list = new ArrayList<>(3);
        list.add(superMan);
        list.add(batMan);
        list.add(wonderWoman);

        for (Hero hero : list) {
            System.out.println(hero.getName());
        }
    }

    @Data
    @AllArgsConstructor
    public static class Hero {
        Integer id;
        String name ;
        boolean god;
    }
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

在这里插入图片描述
现在我们在循环输出名字的地方打上一个断点(上图step4)
然后debug我们的main方法
在这里插入图片描述
这个时候我们可以观察到提示有两个对象,一个是hero,一个是list
我们平时debug的时候需要看到hero内部的参数,会选择在Debugger的工具栏里点击当前循环的hero对象,然后打开hero,来查找他的属性值,我们假设是name,就像下图

在这里插入图片描述
此从有了交互式内嵌提示,我们只需要在行内点击提示就可以做到
在这里插入图片描述
现在我们可以直观地看到内部的属性值了
那么问题来了,如果这个类的成员变量非常非常地多,我们不仅要点进去,还要往下拉很久才能找到这个值,不是很麻烦嘛

这个时候,我们的Inline Watcher就派上用场了
我们假设我们要找的属性值是name,我们点击属性值name,然后点击右下角的Add as Inline Watcher
在这里插入图片描述
出现hero.name,先不用管,我们点击回车(这里其实可以写代码比如hero.name+hero.id这样)
在这里插入图片描述
这个时候我们发现hero对象前面多了一个东西
小眼镜和hero.name
在这里插入图片描述
这样就完成了一个Inline Watcher的设置,相当于直接把对象的属性值单独提出来展示
不用每次都点开对象再查看属性啦
在这里插入图片描述

这样我们debug起来是不是就特别容易找到有问题的那条数据了~~~~~

小贴士:当我们这条数据会导致某个异常发生的时候,我们可以使用IDEA2020.2版本,也就是上个版本的新特性,在异常的地方添加异常断点Exception BreakPoint,同样也可以找到这条数据哦,省去了手动遍历,眼睛查找的时间

创建渲染 Create Renderer

继续上面往下讲,还是上面那个例子
我们不仅可以创建一个watcher去监视某个属性
我们也可以把hero对象渲染成别的东西
点击Create Renderer
在这里插入图片描述
点击User following expression来使用下面的表达式渲染对象
在这里插入图片描述
接下来我们会看到
在这里插入图片描述
hero会根据表达式被渲染成不同的对象了呢,是不是很神奇!!
这样是不是也可以一眼就能找出“人”,也就是一组数据中出问题的那一条

这个新特性,真心希望每个使用IDEA的小伙伴都能学会使用!

其他更新

添加默认运行选项

在Run/Debug Configuration 对话框中,我们可以选择其中一个应用入口,来添加默认运行选项,就像是用于运行的命令行参数,使其在运行前,会先运行我们的配置,如下动图
在这里插入图片描述
像动图中那样操作后,每次我们在运行这个测试类的时候,会先去运行一下mvn clean这个命令

Git暂存代码 Git Stage

Git的stage和stash功能早就存在,IDEA中的stash是什么时候支持的我不清楚
但这个版本IDEA支持stage了

stash和stage的区别我就不赘述了,白话来说

stash有一个缺陷就是,粒度只能最小到文件
而我们使用IDEA的暂存功能后,粒度可以最小到行

小贴士:想知道更多关于git stage的内容请查看官方文档
https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging

想象一个场景,我们在一个类中修改了一个接口,新增了一个接口,两个不同的任务写在同一个文件里,怎么去提交呢,提交信息不是很乱吗

有的小伙伴可能会说,谁让你一开始没有规范切分支呢?
有道理,但是现在有了Stage功能,你可以将文件中的两端代码分别提交,这样就省事多拉

在我的另一篇博客 git分支与提交规范一文中
我提到过,代码提交的粒度要小到接口
只有粒度足够小,才便于同事间的协作和维护,回滚等操作

那么Git Stage怎么用呢
打开设置,进入Git选项卡,点击Enable staging area
在这里插入图片描述
这时候,我们的commit内容会分为Staged和Unstaged

当我们这样设置后,Staged中的内容才会允许被commit
如果不想提交,可以右键你修改的代码或者文件去Unstatged区域

在这里插入图片描述

而不是原来的changeList和Unversioned
在这里插入图片描述

gif动图演示一下,当我们开启stage的使用方法
在这里插入图片描述

想要使用原来的那种方式,只要再次点击配置中的Enable staging area就好了,具体看第一步操作

Code With Me!!

官方推出的新插件 Code With Me
直接在Plugins的市场搜索就可以下载
在这里插入图片描述

支持实时分享当前IDEA中打开的工程,并且协作写代码
最骚的是,对方甚至可以不需要安装IDEA甚至JDK,远程办公不再是梦(终于可以把家里的台式机用起来了)

有小伙伴可能会问,这不就是远程协助吗
确实是,但是这个插件可以设置安全级别,而且不共享桌面
我可以设置你能不能写,甚至能设置你能写,但是不能运行
官方出品,必属精品

Lombok现在内置在2020.3中了

Lombok作为插件内置在IDEA中,但是项目想用,还是得导入依赖哦

推荐lombok版本1.18.16,其余旧版本会出现部分兼容问题

阅读器模式 Reader Mode

这个模式默认开启
现在看文档,更美观了,不像以前全是反斜杠和星号/****/之类的

在这里插入图片描述

导航栏VCS的变化

以前的当行蓝中的VCS现在变成了Git,或者SVN,项目是用什么版本管理,导航栏就显示什么

这是旧的
在这里插入图片描述
这是新的

在这里插入图片描述

JDK可以直接在内部升级

之前能下载我是知道的,现在可以升级了,有新版本会提醒,我们可以选择跳过或更新

不过大家好像都不会热衷于升级JDK
在这里插入图片描述

支持简化版的Maven Pom

即将发布的Maven 3.7.0将具有简化结构的新POM。 IntelliJ IDEA 2020.3已包含对它们的支持
现在我本地的maven是3.6.3,还无法给大家测试
对于即将到来的3.7.0,我们拭目以待

其他对于kotlin,javaScript,databaseTool和微服务相关的优化

IDEA的httpClient,推荐小伙伴们去试一试

其他的我不太懂,就不说了哈哈

结尾

工欲善其事必先利其器,个人感觉新版本2020.3IDEA的变化还是挺实用的,有许多提高生产力的改动,非常地人性~

文章整理不易,转载请注明出处,CSDN超人2028
文章中有任何不对的地方,望不吝赐教~

更新建议

(2020.12.9)

强烈推荐:虽然我在写博客的时候,为了演示,发现了两个UI上的bug,就是输入表达式的窗口无法关闭这些。
但是瑕不掩瑜,整体而言,改动不大,能轻易上手,居家旅行必备

(2020.12.24)

今天我的IDEA闪退了两次,以为是新版本idea的问题,后来百度了一下,原来各个版本的IDEA都出现过闪退,查了一下,跟mybaits 插件有关,disable了之后,就没有闪退了

这里老生常谈了,新版本编辑器更新肯定伴随着插件的过期,过期的插件可能会导致编辑器异常,不过都是小问题,每个版本lombok的bug也挺多的
我依旧强烈推荐大家下载使用最新版本IDEA~~

(2021.1.12)

截至目前没有发现过其他bug,大家可以安全上岸了

参考文献

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号