飞道的博客

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

234人阅读  评论(0)

前言

周末愉快好兄弟萌

北京时间2021年4月7日,IntelliJ Idea 2021.1新版本正式上线,跟去年第一版上线时间差不多
又到了开心的写IDEA博客时间

这里有一段小插曲给大家唠嗑一下
春节在家,2月13日那天,心想着要更新Idea博客了嘛,我就去Youtube上搜了一下关键字Idea2021,结果弹出来这么一个视频
Working with Gradle in IntelliJ IDEA(2021)


当时没注意看标题就点进去了
看了一遍我就傻了,为什么“新特性”全是跟gradle有关的啊

废话,你点的就是gradle相关的好嘛

平时工作和学习都用的maven,疏于对gradle了解的我,那天的就没提起兴趣继续往下写
暂告一段落

这不这周二不是BetterIntelliJ这个插件用不了了嘛,突然无法“科学编码”了
我就IDEA官方看了一下,诶,新版本视频怎么跟我当时看的不一样呢


后知后觉的我才意识到当时可能开错视频了,我yue了
不过正好,离新版本2021.1正式版上线也差不了几天,现在写博客不算晚

言归正传

今天我就照旧根据视频中Trisha Gee的解说思路,给小伙伴们总结和翻译一下2021.1新特性,开始开始~

先给大家看一下官网首页的介绍

IntelliJ IDEA 2021.1 introduces Java 16 and WSL 2 support, Space integration, Code With Me, a HTML preview window inside the IDE, the option to run code on SSH hosts and in Docker containers, and other useful updates. You can watch this video overview or read on to learn about the most significant changes in more detail!

照例翻译一下:
1.IDEA 2021.1 引入了对Java16和WSL2的支持
2.引入了对Space社区的集成,内置Code with me (协助开发) 插件和HTML文件预览等
3.新增了将代码运行在SSH和Docker容器中的选项
4.其他有用的更新
5.你可以观看这个视频概览或者继续阅读来详细了解更重要的一些更新

这两天抽空看了几遍并上手试了一下,视频中Trisha Gee说的跟这些差不多
我个人感觉这个版本的更新不是特别大
没有去年最后一个版本给我的那种“哇,更新好多东西”的赶脚
今年第一个版本更多的是一种补充和锦上添花

新的改变

Run Targets(运行目标)

一般来说我们在项目中一个程序,都是运用IDE上的所有设置去在本地环境启动它
现在我们可以指定程序运行的目标
通俗来说就是你可以把你的程序运行在本地之外外部环境
比如docker容器,WSL系统或者SSH服务器上

以docker为例

我们可以点击小锤子右边的

  • edit configurations
  • manage targets 管理目标
  • 然后选择docker为目标
  • 拉取jdk16的镜像
  • 设置完成之后运行,就可以跑了

此处涉及到docker知识,而且操作是纯配置,开发同学如果嫌烦可以不看
(其实是因为我截图太累了,此处放上一个官网的动图)

这个东西还是挺有用的,场景比方说当你想更换某些环境配置的时候,就可以使用这个功能去测试

Analyze Code Bofore Commit(提交之前分析代码)

这个功能小伙伴们不会陌生
注意到箭头的小齿轮了吗
这里就是设置提交选项的

Analyze Code现在可以选择自己的配置文件了
其实这个功能一直都有,但是2021.1版本支持配置
我们可以自定义怎么去分析code
之前的IDEA这个选项叫做perform analyze code
现在更名为 Analyze code ,并支持配置
我觉得默认配置就够用了

这个地方我猜还是有很多小伙伴没用过
主要作用就是就是在提交之前,IDE会帮你分析一下代码,检查一下哪里有问题
如果我们不把这个勾选上,可能会提交一些无法编译,或者包含严重错误的代码

说到这个,我很有发言权,因为就上个月,我的同事就在其分支上提交了不能编译通过的代码,因为他修改了目录结构,但是没有编译就提交了。
导致我那天合并完分支,总是报错,都是类路径问题,我还以为我哪里合并出错了,头非常大,处理了好久,这边建议小伙伴们上手IDEA2021.1版本的时候,尽量打开这个设置

这时候,可能有部分小伙伴会问了,欸,那其他选项都是干嘛的呀
以前的博客我没写过这个,这里就全部介绍一下

小齿轮点开以后出现的多选框

  • Author:作者,没啥好说的
  • Reformat code::根据项目代码样式设置执行代码格式化
  • Rearrange code:根据排列规则首选项重新排列代码
  • Optimize imports:删除多余的导入语句
  • Analyze code:在提交修改的文件之前,先对其进行分析。单击配置以选择检查配置文件,IDE将从该配置文件运行检查
  • Check TODO:查看与指定过滤器匹配的TODO项目,自己写的TODO,含泪都要写完哦
  • Cleanup自动将当前检查配置文件应用到要提交/搁置的文件 我不常用
  • Update copyright根据所选的版权资料-范围组合添加或更新版权声明 我不常用

HTML内置预览

Trisha说:Java开发程序员有可能不止和一种语言打交道,比如HTML
现在2021.1现在内置了HTML的预览功能
用法就是在HTML右上角的地方点击IDEA的标志
Built-in Preview
就可以在右侧看到预览的样子啦

有一说一现在的公司应该都前后端分离了吧
我能想到的应用场景比较少,这个功能聊胜于无,别吃我内存就行

支持JSONPath表达式

JSONPath好东西,终于支持了

part1-计算JSONPath表达式窗口

打开一个json文件
点击IDEA选项卡的edit-》find-》Evaluate JSONPath Expression
然后就可以用表达式去更直观的查看数据啦


JSONPath的语法还是比较简单的,有兴趣的小伙伴可以去看看,提高生产力的好东西

part2-注入语言

当我们在代码中有JSONPath表达式的String字符串的时候

我们可以在字符串的地方点击alt+Enter
点击 Inject language or reference
输入或者找到JSONPath,就可以把字符串变成JSONPath表达式的形式,这样编辑就会出现代码提示啦

将string转换成JSONPath表达式,就像下面动图的操作一样

或者我们可以在字符串的地方点击alt+Enter
点击第一个选项Evaluate JSONPath expression来计算JSONPath表达式
就会在桌面的最右边弹出和Part1一样的效果,来更直观的观察json内部的数据

Java16的支持

java14,15的新特性中有很多预览功能(Preview Feature)
比如:Instanceof ,stream流新特性,Record类等
现在成为Java16的标准功能(Standard Feature)

IntelliJ IDEA现在支持对Java16这些特性的代码提示和相关操作

part1-Record类

我可以在2021.1版本IDEA中利用编辑器提示,将Record类和普通类进行转化,动图演示

小贴士:
什么是Record?
Record 是Java新增的库类,在Java 14和Java 15中以预览(preview)形式公布。Record类用来自动生成对定义数据进行创建、设置、访问以及比较等代码,所以又被称作数据类(data class)。在一些编程语言中,例如Kotlin,已经使用数据类来处理数据模式建立(Object Relational Mapping-ORM)以及传输(Data Transfer Objects-DTOs)等处理。Record类似于Java 的枚举类(Enum),用来简化、定义和处理数据。传统的枚举类的编程方式和自动生成代码的Record类,这两者使得Java编程在保持简单性和灵活性中相互平衡和补充。

part2-instanceof新语法支持


现在IDEA会提示将第一种写法转化为下面新语法

part3-Stream语法简化支持

当我们对Stream流的操作结束后,收集结果不用再写.collect(Collectors.toList())
直接写toList()就可以

ArrayList<Object> list = new ArrayList<>();
// 原来的写法        
list.stream().map(Object::getClass).collect(Collectors.toList());
// 现在的写法
list.stream().map(Object::getClass).toList();

这个其实是Java16的写法

IDEA现在可以自动将上面的写法转换成最新的语法糖

这只是对Java语法支持的小部分展示,还有很多,等着小伙伴们一起探索

part4-Sealed类(还在Preview Feature版本中)

Sealed类(密封类)是一种控制类的继承层次结构的类
现在IDEA会支持对这个类的代码提示
其实很好理解,JDK支持了,你编辑器不支持,不就相当于在写txt嘛
小贴士:想尝试这个Sealed类的小伙伴,需要把编辑器的语言等级调整到
16(Preview)版本-Sealed types

同时你的pom文件需要加上这个maven 插件,指定版本和开启–enable-preview

			<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <release>16</release>
                    <compilerArgs>
                        <compilerArg>--enable-preview</compilerArg>
                    </compilerArgs>
                </configuration>
            </plugin>

pom中不加这个插件的话会报错的哦

其他Java支持

Kotlin支持

我对Kotlin知道的不多,就直接把文字贴上来~

  • 更快地高亮显示代码问题
  • 改进的代码补全
  • 更好的代码覆盖率
    IntelliJ IDEA 的 code coverage 运行程序现在完全支持 Kotlin 的内联函数和协同程序
  • UI重新设计等

改进了对WSL2的支持

WSL2,,全称Windows subsystem for linux
翻译过来就是 适用于Linux的Windows子系统

改进了Profiler

CPU和内存的分析工具
官方介绍
CPU-Profiler

2020.3版本和2021.1版本都新增了这个底部导航栏
后者改进了Profiler的使用体验


点开之后会进入这样一个页面

右键一个你想看的进程弹出三个选项,分别是

  • 新增分析器
  • 捕捉内存快照
  • Cpu和内存实时图标

比如我们点击第三个选项,就会出现这样的图标,让我们来实时监控本机资源使用情况

上手很简单,但是实用性如何,我日后在工作中会慢慢去探索并反馈

可用性修复

修复一些IDEA自己的bug,做了一些UI改变

Space插件

Space是一个JetBrains团队出品的新的协作工具,这个插件现在内置在IDEA2021.1中

现在可以开箱即用
你可以通过欢迎屏幕上的 Get from VCS 连接到 JetBrains Space 中的组织
登录后,你可以查看和克隆项目存储库,检查队友的代码以及编写 Space Automation 脚本

简单来说就是内置了一个代码管理的插件,这个代码管理是JetBrain官方出品的

或者可以点击IDEA右上角的位置,从这个图标计入space探索

当然Space的功能不止代码管理
插件的演示较长,这里就略过了~
奉上IDEA官方介绍视频链接Space

Code With Me插件

我在上一个博客2020.3新特性中介绍过这个插件虽然说的不多

本身也是一个协作插件,它还具有视频和语音通话功能,现在还能打字聊天

现在这个插件内置在IDEA2021.1中
去年的疫情,大家都开始远程办公了,这个插件从推出到内置
一直是最近几个版本更新的亮点之一

在编译锤子旁边有个人形图标,从这里进入开始使用

其他更新

以上都是Trisha Gee在视频中为我们所展示的新特性,不过在官网中,还有一些小东西我需要跟大家继续分享一下一些实用的小东西

Recent Projects(快速访问)

这个更新只有windows用户才有

现在可以在Windows上快速访问最近的项目

Get files from another branch(从其他分支获取文件)

这个也是我看下来比较不错的功能
当我们和同时协作开发的时候
经常会用到这个功能,就是和其他分支比较工作树的区别

点击Show Diff whti Working Tree

右键你想要的文件,点击Get from Branch
就可以从其他分支获取这个文件

非常的有意思
跟上个版本新增的git stage一样属于非常实用的功能,有兴趣的小伙伴可以阅读我上一个博客
IntelliJ IDEA 2020.3 新特性

结尾

以上就是我通过IntelliJ IDEA官方视频和文档总结的在开发过程中比较常用的一些新特性
喜欢的小伙伴们请点赞,评论收藏支持一下,谢谢啦~~

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

更新建议

(2021.4.8)

短暂实用了3天,暂时没有发现一些明显的bug,有顾虑的小伙伴可以不升级,而是单独下载一个最新的去尝试一下

参考文献


转载:https://blog.csdn.net/weixin_41529708/article/details/115798493
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场