IDEA自定义后缀模板

IDEA拥有优秀的代码补全功能。除此之外,还拥有动态模板(Live Templete)和后缀补全(Postfix Completion)功能,让编码更简单。

本篇文档以Java为例,带你领略后缀补全和动态模板的魅力。

后缀补全和动态模板

IDEA在2021年1月的版本上线了自定义后缀补全的功能,在此之前,只能使用预定义好的补全模板。不过现在功能还不甚完善,一些小细节没处理好,但是比起自定义动态模板,后缀补全更符合操作逻辑,也更方便。

动态模板

动态模板即输入一段缩写,然后按下enter后会自动根据前后文生成对应的代码,主要用于方法、类、表达语句内。动态模板中的变量会根据定义,自动获取上下文中的类名、方法名等,从而自动生成代码。

动态模板

例如,写下sout即可生成System.out.println();。甚至可以通过配置动态模板自动生成Swagger注释:https://blog.csdn.net/weixin_40596063/article/details/90897864

优点

  • 适合快速生成大段代码。
  • 适合用在起始语句中,如if、for、main等。

缺点

  • 不适合先写变量,之后再补全的情况。这种情况就十分适合后缀补全。

后缀补全

后缀补全是指在输入变量或代码串后,通过.等方式,按下tab/space/enter来快速生成代码的方式。例如我们非常常见的"字符串".sout就会生成代码System.out.println("字符串");

后缀补全

自定义后缀补全

通过自定义,我们也可以拥有自己的后缀模板。

以下以“输入toMap后补全代码为.stream().collect(Collections.toMap());”为例,设置一个自定义的后缀补全。该例子能够让一个列表类型的变量转换为一个Map。

第一步

打开后缀补全设置(Editor | General | Postfix Completion),点击加号新增一个Java后缀补全:


后缀补全设置

第二步

在key处设置后缀,支持语言最低版本具体选择。因为本例中Stream接口是Java 8才支持,故我们选择8版本。之后点击加号,设置要以哪种类型的变量作为后缀匹配的匹配变量。从上到下依次是:

  • void
  • 非void
  • 布尔类型
  • 数字类型
  • 非基本类型(即除了基本类型包装类外的对象)
  • 数组(不包括List、Set)
  • 在项目中选取类
  • 输入类名(需要输入全类名
设置匹配变量

因为是列表类型的变量才使用该后缀,故这里我们填写java.util.Collection

填写匹配变量

第三步

最后是输入展开后的表达式。使用$EXPR$来表示匹配的变量,使用$END$来表示光标结尾。

填写完毕

此处输入

$EXPR$.stream().collect(java.util.Collections.toMap($END$));

注意,这里使用的类名要使用全类名,否则之后还需要手动import类。

完成

保存设置后,便可以使用该后缀补全功能:

后缀补全演示

参见

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。