LiveTemplates概述
-
LiveTemplate能让你以简短的自定义单词缩写插入常用的代码段,比如main函数,循环,方法定义和类字段定义。输入简写后按Tab即可展开所代表代码。它的定义主要分为两种,一种是简单的文本替换,另一种可以在LiveTemplate中定义变量;对于带有变量的代码段,IDEA会自动定位到变量定义处,输入变量后按回车即可到下一处变量处,直到$END$光标将在此停住。一段LiveTemplate的简单演示:
IDEA默认定义的LiveTemplates(Java)
-
简单模板,简单的文本替换。
package cn.livetemplate.demo; public class LiveTemplateDemo { /** * 1 psvm -> main主函数定义 * 2 psfi -> private static final int * 3 psfs -> private static final String * 4 thr -> throw new * 5 sout -> System.out.println */ public static final int LPPO = 1; public static final String MSG = "HELLOWORLD"; public static void main(String[] args) { System.out.println(MSG); } } -
带变量的模板,主要应用于条件判断,循环,迭代等常用的代码片段。
package cn.livetemplate.demo; public class LiveTemplateWithVariable { public static void main(String[] args) { /** * 条件判断 * 1 ifn -> if (var == null) {} 其中var需要输入待判断的变量,会根据上下文智能提示 * 2 inn -> if (var != null) {} * 3 inst -> if (var instance varType) { varType variable = (varType) var; } 判断是否为指定类型的对象 如果是则转换 */ String o = null; if (o == null) { } if (o instanceof Object) { Object o1 = (Object) o; } /** * 循环 * 1 fori -> for(int i = 0; i < length; i++) {} length变量输入迭代的长度 * 2 iter -> for(varType i : arr) {} 对可以迭代的数组或者列表进行forEach迭代 arr类型会根据上下文推断 * 3 itar -> for(int i = 0; i < arr.length; i++) {} 对数组进行迭代,需要迭代的arr可根据上下文推断 */ for (int i = 0; i < 10; i++) { System.out.println(i); } } }
自定义LiveTemplates
-
自定义
Live Templates配置可通过File|Settings...打开配置界面,定位到Editor|Live Templates子标签即可。 -
创建自定义的
Live Templates可通过以下几步完成:-
点击
Live Templates配置界面右侧的+号选择2.Template Group...新建分组。 -
左侧窗口新建的分组选中状态,再次点击右侧的
+号选择1. Live Template...新建. -
在新建的
Live Template中Abbreviation,Description和Template text中填入相应的缩写,描述和模板文本等。如果存在变量,还可通过点击Edit Varaible编辑变量的默认值或者绑定IDEA预提供的函数方法。 -
指定该
Live Templates适用的语言和分类.
-
-
Live Templates的模板文本支持双$$符号定义的变量。此变量在展开时会被替换为用户指定的值、在定义该变量时的默认值或者配置了IDEA预定义函数值。模板变量可通过点击Edit Variable按钮调出配置框进行配置。 -
IDEA提供默认预定义变量$END$代表代码完成后的光标位置。支持的内置函数结合下篇的日常Live Templates进行说明。详细信息可见JetBrains官网
日常开发Live Templates
-
带时间和作者的
todo.其中变量USER使用user()函数获取登录系统的用户名。TIME变量使用time()函数用于获取插入该模板时的当前时间。$COMMENTS$需要用户输入todo的简短描述信息。// todo $USER$ $TIME$ $COMMENTS$ $END$ -
自定义类注释和方法注释模板。简写可使用
classc/** * All rights Reserved, Designed By $WEBSITE$ * @Title:$FILENAME$ * @Class:$PACKAGE$.$CLASSNAME$ * @Description:$DESCRIPTION$ * @author:$USER$ * @date:$DATE$ * @version:$VERSION$ * @Copyright:$WEBSITE$ Inc. All rights reserved. * 注意:本内容仅限于$COMPANY$内部传阅,禁止外泄以及用于其他的商业目 */ -
带
Javadoc注释的字段定义。如pic表示带javadoc注释的Integer变量定义。psc表示带javadoc注释的字符串变量定义。/** * $COMMENTS$ */ private Integer $INTEGERVARIABLE$; $END$ -
可定义Spring配置文件的xml schema,使用简写
beans就可以把schema配置信息导入。<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> $END$ </beans>