1. 程式人生 > >IDEA 的 LiveTempleate 自動補全日誌程式碼

IDEA 的 LiveTempleate 自動補全日誌程式碼

前言
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);&#10;$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(&quot;$END$&quot;);" description="log日誌error級別" toReformat="false" toShortenFQNames="true">
<context> <option name="JAVA_CODE" value="true" /> </context> </template> <template name="logw" value="logger.warn(&quot;$END$&quot;);" description="log日誌warn級別" toReformat="false" toShortenFQNames="true"> <context> <option name="JAVA_CODE" value="true" /> </context> </template> <template name="logi" value="logger.info(&quot;$END$&quot;);" description="log日誌info級別" toReformat="false" toShortenFQNames="true"> <context> <option name="JAVA_CODE" value="true" /> </context> </template> <template name="logd" value="logger.debug(&quot;$END$&quot;);" 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);&#10;int n = in.nextInt();&#10;$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()){&#10; System.out.println(entry.getKey()+&quot; : &quot;+entry.getValue());&#10;}" 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&#10;private $TYPE$ $NAME$;&#10;" 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&lt;$TYPE$&gt; list=new ArrayList&lt;$TYPE$&gt;();" description="新建集合" toReformat="false" toShortenFQNames="true">
    <variable name="TYPE" expression="" defaultValue="clipboard()" alwaysStopAt="true" />
    <context>
      <option name="JAVA_CODE" value="true" />
    </context>
  </template>