前言
Live Template 是 IDEA 提供的一个自动生成代码的工具, 可以自定义一段小代码, 比如最常见的 System.out.println(“”); , 当然这已经被内置了, 输入 sout即可输出。
说明:
配置方式由两种;
1:直接 改idea 的配置文件
配置文件的存储位置
D:\ideaIU-2016.IntelliJIdea\config\templates\user.xml
2:通过 File -> Settings -> Editor -> Live Template 手动输入;
自定义 Live Template
打开 IDEA, 点击工具栏 File -> Settings -> Editor -> Live Template, 点击右边的加号 +。
输入下面的代码。
1、自动补全 logger 实例化
private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class);
$END$
然后idea重启后在代码中输入 logg 即可生成自动生成上面的代码;
1.1、通过修改配置文件方式批量加入多个命令
修改 user.xml
<templateSet group="user">
<template name="logg" value="private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class); $END$" description="log日志输出器" toReformat="false" toShortenFQNames="true">
<variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="loge" value="logger.error("$END$");" description="log日志error级别" toReformat="false" toShortenFQNames="true">
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="logw" value="logger.warn("$END$");" description="log日志warn级别" toReformat="false" toShortenFQNames="true">
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="logi" value="logger.info("$END$");" description="log日志info级别" toReformat="false" toShortenFQNames="true">
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="logd" value="logger.debug("$END$");" description="log日志debug级别" toReformat="false" toShortenFQNames="true">
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="can" value="java.util.Scanner in = new java.util.Scanner(System.in); int n = in.nextInt(); $END$" description="控制台输入" toReformat="false" toShortenFQNames="true">
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="pra" value="java.util.Arrays.toString($END$)" description="打印数组" toReformat="false" toShortenFQNames="true">
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
<template name="prm" value="for(java.util.Map.Entry entry : $VAR$.entrySet()){ System.out.println(entry.getKey()+" : "+entry.getValue()); }" description="打印Map集合" toReformat="false" toShortenFQNames="true">
<variable name="VAR" expression="" defaultValue="" alwaysStopAt="true" />
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
</templateSet>
这样 就设置了多样是日志输出补全代码了;
2、自动注入粘贴板中的 类
配置如下:
使用方法:
1:复制类名称
2:代码中 敲 aw 即可实现;
提供配置文件供参考
<template name="aw" value="@Autowired private $TYPE$ $NAME$; " description="自动注入" toReformat="false" toShortenFQNames="true">
<variable name="TYPE" expression="clipboard()" defaultValue="" alwaysStopAt="true" />
<variable name="NAME" expression="" defaultValue="decapitalize(clipboard())" alwaysStopAt="true" />
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>
3、同理,简化new list
使用方法:
1:复制 需要泛型的 类
2:代码中 敲入 newlist 即可
<template name="newlist" value="List<$TYPE$> list=new ArrayList<$TYPE$>();" description="新建集合" toReformat="false" toShortenFQNames="true">
<variable name="TYPE" expression="" defaultValue="clipboard()" alwaysStopAt="true" />
<context>
<option name="JAVA_CODE" value="true" />
</context>
</template>