代码编织梦想

2020年12月01日,IntelliJ IDEA 2020.3 正式发布,这是2020年的第三个里程碑版本本文主要介绍 IntelliJ IDEA 2020.3 的新功能。

format,png

用户体验

重新设置欢迎界面

这个版本的 IntelliJ IDEA 重新设计了欢迎页面。新的页面包含了四个选项卡的快速访问:

•管理项目入口•自定义 IDE 界面;•插件安装入口•用于帮助用户学习 IntelliJ IDEA 的资源

format,png

IDE 主题和操作系统同步

IntelliJ IDEA 现在可以将主题和操作系统同步,比如操作系统选用暗色主题,IDEA 也会自动切换主题。要启用此功能,请以此选择 Settings / Preferences | Appearance & Behavior | Appearance,然后选择 Sync with OS 选择框,可以点击 Sync with OS 选择框旁边的齿轮图标来选择我们喜欢的主题。

format,png

阅读模式

只读文件和来自外部库的文件现在默认在阅读器模式下打开。在这种模式下,注释看起来像格式化的文本,并启用了字体连接,以帮助使用户更好地阅读代码。我们可以在 Settings / Preferences | Editor | Reader Mode 中自定义阅读器模式。

format,png

改进的 LightEdit

在 IntelliJ IDEA 2020.3 中,改进了 LightEdit 模式的用户体验。要从命令行以 LightEdit 模式打开文件,只需要加上 -e 选项,并且后面跟着要打开的文件的名称,比如 idea -e iteblog.txt。

format,png

更好的拼写和语法检查

现在,当我们按 Alt+Enter 时,IDE 会调用纠正语法或拼写的建议。更重要的是,这个版本开始使用新版本的 LanguageTool 语法检查引擎,它改进了英语文本检测,并增加了对10多种语言的支持。

format,png

更新了 Search Everywhere

这个版本在 "Search Everywhere" 对话框中添加了一个新的 Git 选项。也就是说我们现在可以利用 git commit hashes、messages、tags 以及 branches 来进行搜索了。

format,png

Preview tab

现在,只需单击 preview 选项卡就可以打开文件。当我们通过 Preview tab 打开文件时,它的名称将以斜体显示。如果我们开始编辑这个文件,它将不再是预览,而变成普通文件。如果我们单击另一个文件以预览模式打开它,它将出现在相同的标签,取代以前打开的一个。要启用此功能,单击项目视图中的齿轮图标并选择 Enable Preview tab

format,png

Linux emoji 选择器

这个版本添加了一个 Linux emoji 选择器。可以通过 Ctrl+Alt+; 快捷键打开它。我们可以按类别过滤表情符号,改变它们的肤色,以及按名字搜索表情符号。当然,我们也可以用键盘来操作表情符号选择器。

format,png

通过 IDE 来更新 JDK

从v2020.3开始,只要有更新可用,就可以从弹出窗口更新到最新的 JDK,我们可以选择是安装它还是跳过它。

format,png

编辑器相关更新

新的 Extract method 页面

我们更容易提取Java方法——只是媒体⌥⌘M在Mac或Ctrl + Alt + M在Windows或Linux,或选择重构/提取/介绍/方法,IDE会提取。当然,我们也可以依次选择 Refactor / Extract / Introduce / Method… 。

format,png

更直观地访问重命名设置

有了 inlay 提示中出现的新的重命名首选项,现在可以选择是希望重命名注释和字符串文本还是可打印文本中的字符。调用这个提示,Mac 用户可以 按 ⇧F6,Windows/Linux 用户可以 Shift+F6,然后按 Tab 键。我们可以通过 Settings / Preferences | Keymap. 来更改显示选项弹出的快捷方式。

format,png

拖放标签

如果希望在处理一个项目时打开几个选项卡,您现在可以通过拖放文件选项卡来水平或垂直地分割编辑器。

format,png

固定标签的改进

在v2020.3中,固定选项卡会显示新的 pin 图标。当你点击它时,文件就被 unpin(相当于解除固定)。你也可以通过拖放标签到其他固定或未固定的文件上来固定和取消固定标签。

format,png

改进了 Markdown 文档的编辑和预览

Markdown 工具现在有一个更好的预览 UI 和改进的用户体验。您可以在 Settings / Preferences | Editor | Code Style | Markdown 自定义 Markdown 格式。Mac 用户可以按 ⌘+Alt+L;Windows/Linux 用户可以按 Ctrl+Alt+L 来应用这个格式。同时,这个版本还增加了对 mermai.js 的支持。

format,png

将 IntelliJ IDEA 设置为打开文件的默认应用程序

现在我们可以将 IntelliJ IDEA 设置为打开文件的默认应用程序。在 Preferences | Settings / Editor / File Types ,点击 Associate file types with IntelliJ IDEA… 按钮。在打开的对话框中,选择要在 IDE 中打开的文件的扩展名。如果使用的是 macOS,则需要重新启动计算机来应用这些更改。

format,png

调试相关的提升

交互式提示

当应用程序在调试模式下运行时,我们可以单击变量以获得包含可以更改其值的相关字段的内联提示。在这个新的内联提示中单击 Create Renderer 打开一个对话框,在这里我们可以配置所有调试器视图中的内联值的显示。

format,png

Java 调试器中的基本内存分析

在调试器运行时,可以使用基本的分析功能。可以从调试工具窗口的上下文菜单中调用新的分析功能。第一个功能是 Show referring objects 它可以查找从对象到 GC 根的最短路径。第二个功能是 Calculate retained size,它计算对象的保留大小并显示其保留集。

format,png

版本控制

VCS 菜单被 Git 替代

VCS 菜单现在将根据我们当前使用的版本控制系统命名。新的菜单更加简洁,删除了除对项目版本化最有用的操作外的所有操作。比如如果我们的项目只使用Git,我们的 VCS 菜单将看起来如下图所示

format,png

分支功能的改进

当我们创建新的分支时,IDE 会自动更正分支名称中不支持的符号。同时这个版本已经重新修改了当前分支的上下文菜单,以显示相关的操作。对于远程分支,分别将 Merge into Current 和 Rebase Current onto Selected 修改为 Pull into Current Using Merge 和 Pull into Current Using Rebase

format,png

Java 支持相关的新功能

Record 转换成类

这个版本添加了一个新的功能,它允许我们将 Record 转换为类。当我们想降低代码库时,它会很有用。

format,png

完全支持 sealed classes

在这个版本中,为 sealed classe 添加了代码自动完成、代码洞察和重构等功能。当我们使用 sealed 修饰符时,我们将一个类声明为一个 sealed 类,它允许我们定义哪些其他类可以扩展它,以及哪些类可以防止被扩展。子类可以是 final 的、non-sealed 或者 sealed的。

format,png

基于机器学习的代码完成

代码补全建议现在基于机器学习技术,如果想要查看新的排名系统是如何工作的,请到 Settings / Preferences | Editor | General | Code Completion,然后选中 Mark position changes in the completion popup

format,png

更好的代码完成

当我们使用 String.toUpperCase 或 String.toLowerCase 时, 下拉框会弹出带有 Locale.ROOT 的方法;当我们调用 String.getBytes() 时,IDE 将建议使用 UTF_8 字符集。

format,png

Scala 支持相关的新功能

并行编译

Scala 编译器现在可以并行地编译独立的模块。这个版本的默认的 VM 选项中最多支持4个编译线程,这可以大大加快编译速度。如果我们的机器有很多 CPU 内核和大量内存,那么可以随意调整默认值以进一步改进编译时间。

format,png

支持 MUnit

Scala 插件已经支持JUnit、ScalaTest、uTest 和 Specs2。这个版本添加了对 MUnit 的支持,

format,png

format,png

Scala 3 改进

IntelliJ Scala 插件已经包含了对即将发布的 Scala 3 支持。Scala 新插件现在能够解析 Main 方法的新语法。

format,png

由于篇幅有限,完整版的新功能请参见 What’s New in IntelliJ IDEA 2020.3[1]

引用链接

[1] What’s New in IntelliJ IDEA 2020.3: https://www.jetbrains.com/idea/whatsnew/

Java与大数据架构

7年老码农,10W+关注者。【Java与大数据架构】全面分享Java编程、Spark、Flink、Kafka、Elasticsearch、数据湖等干货。欢迎扫码关注!

format,png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/w397090770/article/details/111087559

2020/12/12 栈队列堆(牛客网)-爱代码爱编程

栈队列堆 数据流中的中位数 数据流中的中位数 题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。题解思

北大硕士毕业,人大在读博一,IJCAI资深审稿人-爱代码爱编程

文末包邮送6本价值百元的书籍 最近一直在为了学业奔波,认识了很多真·大佬,开阔了挺多眼界。 其中一位老哥是在北大念得cs硕士,现在在人民大学大牛实验室读博一。看起来平白无奇,谁也想不到小小年纪顶会一年产量和顶尖教授一般水平。 和他认识不是在昨天,因为都是一个团队,所以很早就认识了,但是也没太多的交流沟通。 老哥是很开朗的一个人,他就说公司

Android 事件分发机制抽象--钓钩模型-爱代码爱编程

用户体验小姐姐巧妙地利用有限的手机屏幕空间,完美地设计出简单实用的交互功能,如果多问一句 “怎么做到的” ? 答案必须是从事件分发机制的高超运用说起。 在我 Android 应用业务开发职业生涯中,接触到最多的也正是如何运用事件分发机制和自定义控件,堆砌出一幅幅可交互的精致业务功能画面。下图是我分别在手机百度 App 和美团 App 上研发的“列

5 分钟理解一致性哈希算法-爱代码爱编程

点击上方“Java基基”,选择“设为星标” 做积极的人,而不是积极废人! 源码精品专栏  原创 | Java 2020 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件

Bitmap - 性能和原理研究-爱代码爱编程

Bitmap可以说是一个很万能的存储了,无论是空间消耗,还是查询响应,在最佳实践下,都可以达到很好的效果。最近做了不少Bitmap的研究,简单的基于上面的Paper去做一个记录。 History 从最原始的Bitmap到RoaringBitmap(可能是目前大多数场景的最佳选择?),虽然仔细研究Roaring的原理并不复杂,但也是经过了十几年的变

Java 泛型中的通配符 T,E,K,V,?,你确定都了解吗?-爱代码爱编程

点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏  原创 | Java 2020 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sh

炫酷!用Python制作漂亮的流动桑基图-爱代码爱编程

点击上方蓝色小字,关注“涛哥聊Python” 重磅干货,第一时间送达 来源:Python数据之道 作者:Peter 整理:Lemon 桑基图绘制实践 本文中介绍的是如何制作桑基图,使用的可视化库是强大的 Pyecharts (版本1.7.1,版本一致很重要)。文章将从如下几个方面进行介绍: 什么是桑基图官网的两个 demo桑基图绘制

我终于决定要放弃okhttp、httpClient,选择了这个牛逼的神仙工具!贼爽-爱代码爱编程

作者:伍陆七  链接:https://juejin.cn/post/6898485806587969544 在SpringBoot项目直接使用okhttp、httpClient或者RestTemplate发起HTTP请求,既繁琐又不方便统一管理。因此,在这里推荐一个适用于SpringBoot项目的轻量级HTTP客户端框架retrofit-spri

腾讯推出高性能 RPC 开发框架-爱代码爱编程

Tars是基于名字服务使用Tars协议的高性能RPC开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。 Tars是将腾讯内部使用的微服务架构TAF(Total Application Framework)多年的实践成果总结而成的开源项目。Tars这个名字来自《星际穿越》电影中机器人Tars

5 分钟理解一致性哈希算法-爱代码爱编程

点击上方“Java基基”,选择“设为星标” 做积极的人,而不是积极废人! 源码精品专栏  原创 | Java 2020 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件

Bitmap - 性能和原理研究-爱代码爱编程

Bitmap可以说是一个很万能的存储了,无论是空间消耗,还是查询响应,在最佳实践下,都可以达到很好的效果。最近做了不少Bitmap的研究,简单的基于上面的Paper去做一个记录。 History 从最原始的Bitmap到RoaringBitmap(可能是目前大多数场景的最佳选择?),虽然仔细研究Roaring的原理并不复杂,但也是经过了十几年的变

NeurIPS 2020 | 微软亚研院论文摘录之强化学习&GAN篇-爱代码爱编程

编者按:12月6日至12日,国际人工智能顶级会议 NeurIPS 2020 在线上举办。相比前几年,NeurIPS2020 无论是论文的投稿数量还是接收率都创下了记录:论文投稿数量创历史最高记录,相比去年增长了38%,接收率却为史上最低。 上周我们与大家分享了,NeurIPS 2020 | 微软亚洲研究院论文摘录之目标检测篇。今天,我们精选了微