前言
Live Template是IDEA提供的一个自动生成代码的工具, 可以自定义一段小代码, 比如最常见的 System.out.println("");
, 当然这已经被内置了, 输入 sout
即可输出。
自定义xml的存储位置
- Windows: 用户目录/.IntelliJ IDEA/config/templates
- Linux: ~IntelliJ IDEA/config/templates
- macOS: ~/Library/Preferences/IntelliJ IDEA/templates
当然这在官方文档中有提到
自定义Live Template
打开IDEA, 点击工具栏File -> Settings -> Editor -> Live Template, 点击右边的加号+。
输入下面的代码。
1 2
| private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class); $END$
|
再点击右边的 Edit variables
, 选择 Expression
为 className()
在代码中输入 logg
即可生成自动生成上面的代码, $CLASS_NAME$
表示当前的类名。
自用的Live Template
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| <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>
|
参考资料