IDEA 的 LiveTempleate 自動補全日誌程式碼
阿新 • • 發佈:2018-12-09
前言
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>