1. 程式人生 > >IDEA自定義模板

IDEA自定義模板


原文:https://github.com/caojx-git/learn/tree/master/notes/idea
IDEA可以自定義符合自己風格的模板註釋,比如說 類模板註釋、方法模板註釋、屬性模板註釋或定製一些快捷生成程式碼操作等

一、IDEA類模板配置

1.1 Class程式碼模板設定

File -> Setting -> Editor -> File and Code Templates -> Templates Class

/**
 * \$Id: ${NAME}.java,v 1.0 ${DATE} ${TIME} caojx
 * 
 * @Copyright (c) ${DATE}, xxx All Rights Reserved.
 */
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end /** * 類註釋,描述 //TODO * * @author caojx * @version \$Id: ${NAME}.java,v 1.0 ${DATE} ${TIME} caojx * @date ${DATE} ${TIME} */ public class ${NAME} { }

設定後新建Class的效果

/**
 * $Id: Test.java,v 1.0 2018/7/13 下午3:22 caojx
 *
 * @Copyright (c) 2018/7/13,  xxx All Rights Reserved.
 */
package com.lianjia.cto.ke.model; /** * 類註釋,描述 //TODO * @author caojx * @version $Id: Test.java,v 1.0 2018/7/13 下午3:22 caojx * @date 2018/7/13 下午3:22 */ public class Test { }

1.2 Interface程式碼模板設定

/**
 * \$Id: ${NAME}.java,v 1.0 ${DATE} ${TIME} caojx
 * 
 * @Copyright (c) ${DATE},  xxx All Rights Reserved.
 */
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end /** * 類註釋,描述 //TODO * * @author caojx * @version \$Id: ${NAME}.java,v 1.0 ${DATE} ${TIME} caojx * @date ${DATE} ${TIME} */ public interface ${NAME} { }

1.3 Enum程式碼模板設定

/**
 * \$Id: ${NAME}.java,v 1.0 ${DATE} ${TIME} caojx
 * 
 * @Copyright (c) ${DATE},  xxx All Rights Reserved.
 */
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end

/**
 * 類註釋,描述 
 *
 * @author caojx
 * @version \$Id: ${NAME}.java,v 1.0 ${DATE} ${TIME} caojx
 * @date ${DATE} ${TIME}
 */
public enum ${NAME} {
}

二、IDEA方法模板配置

參考文章:

2. 1 配置註釋模板

File–>Settings–>Editor–>Live Templates–>Template Group 自定義

File–>Settings–>Editor–>Live Templates–>Template Group Live Template

2.2 設定應用場景

注意:應用場景要先設定,要先於 2.3 2.4

2.3 編寫自定義方法註釋

注意: 註釋只能以 * 開頭,不能以 /** 開頭, 生成的時候可以使用 /** + Tab 鍵生成

2.4 設定相關變數的表示式

對於方法引數的表示式IDEA提供了自帶的methodParamters(),但是生成的效果可能不是我們想要的,我們可以換成Groovy指令碼

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 1; i < params.size() +1; i++) {result+='* @param ' + params[i - 1] + ' ' + ((i < params.size()) ? '\\n ' : '')}; return result", methodParameters())

2.5 生成案例

groovy 指令碼生成的引數風格

/**
 * @author caojx
 * @description //TODO
 * @date 2018/11/7 11:52 AM
 * @param age 
 * @param name 
 * @return void
 **/
public void test(String age, String name) {

}

methodParamters() 自帶模式生成的引數風格,自行嘗試一下,風格大概如下

/**
  * @author caojx
  * @description //TODO
  * @date 2018/11/7 12:49 PM
  * @params [age, name]
  * @return void
  **/
 public void test(String age, String name) {

 }

三、其他

3.1 新增main方法快捷模板



3.2 新增屬性快捷模板