Idea插件Custom Postfix Template,代码补全的一大利器

3 篇文章 1 订阅
2 篇文章 0 订阅

Custom Postfix Templates的存在本身是由于旧版本Idea官方不支持自定义后缀补全,而在官方支持自定义模板的今天,我们仍可以为了更大更全面的模板配置而使用它。

1.安装

在Setting -> Plugins -> Marketplace中找到Custom Postfix Templates并安装重启。

image-20200706150646081

若安装顺利将会在Setting -> Custom Postfix Templates 看到一系列自带的模板配置,并在此可以选择自动联网更新。

image-20200706150912746

如果在配置中找不到任何模板文件,可能是因为raw.githubusercontent.com地址无法访问,需要自行在hosts文件增加DNS解析,插件自带的由各个作者提供的模板文件地址维护在官方插件github地址下的templates文件夹下,在这里可以看到,所有的模板文件都在这个域名下。

image-20200706151339417

2.使用

插件自身已经加载了上步骤中的文件配置,直接使用.符号即可触发选择,也可以使用Ctrl + Space或Ctrl + Alt + Space主动触发选择,使用Tab或Enter键确定选择。

使用

在选择时按Alt + Enter可以进入当前模板的定义文件。

进入定义文件

快捷键Alt + Shift + P可以编辑用户设置,或查看插件配置。

编辑用户或查看插件配置

3.模板配置

3.1.配置综述

插件模板的自定义基本和Live Templates是一致的,并且支持所有Live Templates支持的变量表达式。

Live Templates定义:

配置图解

插件模板定义:

插件模板定义

除了原有的Live Templates和后缀补全配置(部分类型配置)之外,插件还支持了一些诸如:指定光标次序,条件启用等配置。

演示:

演示

3.2.类型匹配

可以为不同的变量类型配备不同的表达式(按顺序匹配 有匹配到的则直接采用):

.optmor : optional map orElse
    java.lang.String → Optional.ofNullable($expr$).map($map:typeOfVariable(expr):"item ->"$$method$).orElse("$else$");
    java.lang.Long → Optional.ofNullable($expr$).map($map:typeOfVariable(expr):"item ->"$$method$).orElse($else$);

演示:

类型配置

以下为官方支持的Java所有匹配类型:

类型名描述
ANY任意表达式
VOID任意空表达式(暂时没有测试出适用于什么场景,有知道的同学拜托评论指点一下)
NON_VOID任意非空表达式
ARRAY任意Java数组
BOOLEANboolean基本类型及其包装类型
ITERABLE_OR_ARRAY任意迭代器类型或数组
NOT_PRIMITIVE任意非基本类型
NUMBER任意数字基本类型及其包装类型
BYTEbyte基本类型及其包装类型
SHORTshort基本类型及其包装类型
CHARchar基本类型及其包装类型
INTint基本类型及其包装类型
LONGlong基本类型及其包装类型
FLOATfloat基本类型及其包装类型
DOUBLEdouble基本类型及其包装类型
NUMBER_LITERAL数字常量
BYTE_LITERALbyte常量
SHORT_LITERALshort常量
CHAR_LITERALchar常量
INT_LITERALint常量
LONG_LITERALlong常量
FLOAT_LITERALfloat常量
DOUBLE_LITERALdouble常量
STRING_LITERAL字符串常量
CLASS任意类引用类型

3.3.条件启用

类型匹配后跟随的[any class]配置,意味着只有该类存在,模板配置才会生效。

此配置便于我们定义第三方类库的模板且不需要担忧未引入对应第三方依赖时有多余的模板触发,干扰选择。

例如此项配置在未引入对应依赖时将不被启用:

.isBlank : isBlank
    java.lang.String [org.apache.commons.lang3.StringUtils] -> StringUtils.isBlank($expr$)

当->右侧表达式为仅有[SKIP](若非仅有将会被当做字符串处理)时,该类型将被忽略。

.isBlank : isBlank
    java.lang.String [org.apache.commons.lang3.StringUtils] -> [SKIP]

3.4.静态导入

在->右侧表达式末尾加入[USE_STATIC_IMPORTS]时,将使用静态导入的方式导入依赖,要使用静态导入时必须指定全限定类名:

.isBlank : isBlank
    java.lang.String [org.apache.commons.lang3.StringUtils] -> org.apache.commons.lang3.StringUtils.isBlank($expr$) [USE_STATIC_IMPORTS]

静态导入

以上为本文全部内容。

tks
猿枫小店

无人问津的小店弱弱的求一波大佬关注。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值