IntelliJ IDEA,这项功能有点强

117 篇文章 5 订阅

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

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

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

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

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

后缀补全

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

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

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

img

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

img

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

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

  • fori:通过索引进行列表迭代
  • forr:用索引按相反的顺序进行迭代
  • switch:生成switch表达式
  • sout:使用System.out.println打印表达式
  • null:检查表达式是否为空
  • notnull:检查表达式是否为非空

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

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

显示可用模板

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

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

  • Windows:Ctrl+J
  • macOS:⌘ + J

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

img

配置

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

img

你可以在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.StringInteger.parseInt($expr$)
    java.lang.Number → $expr$.intValue()
    NUMBER → ((int) ($expr$))

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

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

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

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

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

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

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

img

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值