写点什么

IntelliJ IDEA,有点强!

作者:Jackpop
  • 2022 年 7 月 23 日
  • 本文字数:1885 字

    阅读完需:约 6 分钟

DevWeekly 收集整理每周优质开发者内容,包括开源项目工具资源技术文章等方面,每周五首发于DevWeekly,欢迎大家 Star 并收藏!


还在把 IntelliJ IDEA 当成文本编辑器一样使用?那就亏大了!


今天就来给大家介绍一下非常好用的 IntelliJ IDEA 技巧--后缀补全


后缀补全是一个非常强大的功能,它可以让你使用后缀补全来生成一个现有的表达式。


这大大减少手动输入、光标移动等时间,从而提高了工作效率。

后缀补全

每当你有一个现有的表达式时,你可以在一个点后面附加一个特定的后缀,并使用 Tab 键来应用它。IntelliJ IDEA 接收表达式,并根据提供的后缀对其进行转换。


加入,你有一个字符串列表名为 items,现在你需要遍历它,按照常规操作,就应该开始敲击键盘输入 for ...,写一大串循环遍历语句。


如果通过后缀补全,你只需要输入 items.for,IDEA 就会自动识别 for 这个后缀自动创建一个 for-each 表达式,如下图所示:



是不是很有意思?接下来再试试 try 这个后缀后缀:



它会快速生成一个 try-catch 表达式,是不是很高效?


除了这两个之外,还有很多后缀补全模板:


  • fori:通过索引进行列表迭代

  • forr:用索引按相反的顺序进行迭代

  • switch:生成 switch 表达式

  • sout:使用 System.out.println 打印表达式

  • null:检查表达式是否为空

  • notnull:检查表达式是否为非空


通过一个简单的后缀,就可以补全一串表达式,效率也得到了很大的提升。


该功能最初在 ReSharper 中可用,然后作为 IDEA 的一个单独插件,后来在 13.1 版本中作为核心功能被引入 IDEA。

显示可用模板

不同类型的变量、表达式有不同的后缀补全,而且这些后缀模板也没必要死记硬背。


IDEA 为我们提供了一个非常方便的快捷键,可以显示可用的模板:


  • Windows:Ctrl+J

  • macOS:⌘ + J


通过快捷键,它会打开一个弹出窗口,只显示与给定类型相关的后缀模板。也就是说,如果你在一个列表后面触发快捷键,它只会显示一个和列表相关的后缀模板。


配置

如果你觉得默认的后缀补全不匹配你的使用习惯,你可以进行个性化配置。



你可以在Preferences→Editor → General → Postfix Completion设置中,浏览可用的后缀模板,你可以禁用个别模板或整个功能。

自定义模板

虽然 IDEA 提供了相当多的内置模板,但是,开发者众多,个性化需求自然也很多,所以,内置模板不一定能够满足每个用户的需求,这时候就会想到,能不能自定义模板呢?


很不幸,它不允许定义自己的模板。


不过,有一个 IDE 插件可以解决这个问题,它的名字叫Custom Postfix Templates


该插件带有各种各样的附加模板,你可以使用或编辑这些模板来更好地满足你的需要,在语言方面,它还支持 Java, Scala, SQL, PHP, Kotlin, Python, Dart, JavaScript, Ruby, Rust, Go 和 Groovy。


而且,更重要的是,你实际上可以添加自定义模板。


这款插件目前支持通过 Java 语言自定义模板,后续会支持更多语言当然。


不会 Java 的也不用担心,Custom Postfix Templates 真正好的地方在于,模板语法真的很容易读和写。


下面来看看一个具体的例子:


.toInt : convert to int    java.lang.String → Integer.parseInt($expr$)    java.lang.Number → $expr$.intValue()    NUMBER → ((int) ($expr$))
复制代码


解释一下这段自定义模板的代码。


第一行由后缀模板以及描述组成,它触发了模板.toInt,在冒号后有一个文本描述。


然后是若干行代码,这些行定义了在不同的输入类型下应该产生什么样的结果,而后缀则适用于不同的输入类型。


换句话说,当给定的变量类型不同时,同一个后缀模板可以给出不同的结果。


在上面的例子中,你可以看到,使用.toInt 后缀将字符串转换为整数,处理方式是 Integer.parseInt()。


然而,将相同的前缀应用于数字时,处理方式就变成了(int) ()。


该插件在 Editor→Custom Postfix Templates 的设置中增加了一个新的模块,在这里你可以看到所有模板的列表,也可以编辑它。



很多功能刚开始接触时都会觉得麻烦,但是一旦习惯了之后就会真正体会到它带来的效率提升,后缀补全就是这样的一项功能,我们可以用一个简单的后缀转换成几行甚至几十行代码,它的便利性可想而知。感兴趣的同学赶紧用起来吧!


建议大家有空可以多浏览 Github,有很多好用的开源免费工具。但是,目前 Github 上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐 Github 上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖 C++、JAVA、JavaScript、Python、Go 等不同编程语言。此外,还有一些开源工具、优秀的技术文章,喜欢的同学可以 Star 并收藏一下,每周五会定期更新:


GitHub - Jackpopc/DevWeekly: 每周五发布,精选优质开发者内容,包括开源项目、工具资源、技术文章等方面。

发布于: 39 分钟前阅读数: 6
用户头像

Jackpop

关注

还未添加个人签名 2020.09.16 加入

公众号:平凡而诗意,微信:code_7steps,全网粉丝超20万,技术进阶、优质资源、实用工具,欢迎关注!

评论

发布
暂无评论
IntelliJ IDEA,有点强!_Jackpop_InfoQ写作社区