強(qiáng)大的 IDEA 代碼生成
Java 開(kāi)發(fā)過(guò)程經(jīng)常需要編寫有固定格式的代碼,例如說(shuō)聲明一個(gè)私有變量,logger或者bean等等。對(duì)于這種小范圍的代碼生成,我們可以利用 IDEA 提供的 Live Templates功能。剛開(kāi)始覺(jué)得它只是一個(gè)簡(jiǎn)單的Code Snippet,后來(lái)發(fā)現(xiàn)它支持變量函數(shù)配置,可以支持很復(fù)雜的代碼生成。
基本使用
for (int i = 0; i < ; i++) {
}

自定義 Template
簡(jiǎn)單用法

==========
<out>
----------
System.out.println($END$)
==========
<pfs>
----------
private final static String $varName$ = "$var$";`
==========
<privateField>
----------
/**
* $COMMENT$
*/
@Getter
@Setter
private $TYPE$ $NAME$;
==========
<main>
----------
public static void main(String[] args) {
$END$
}
==========
$$包圍的字符表示一個(gè)變量。$END$是一個(gè)特殊的預(yù)定義變量,表示光標(biāo)最后跳轉(zhuǎn)的位置。每個(gè)變量的位置都可以跳轉(zhuǎn)過(guò)去。高級(jí)用法

<osgiRef>
----------
/**
* $END$
*/
@OsgiReference
@Setter
private $TYPE$ $NAME$;
clipboard():返回當(dāng)前粘貼板的字符串 decapitalize():將輸入的字符串首字母變?yōu)樾?/span>

<logger>
----------
/** logger */
private static final Logger LOGGER = LoggerFactory.getLogger($CLASS$.class);

最強(qiáng)大的 groovyScript()
groovyScript("code", ...)
| code | 一段Groovy代碼或者Groovy腳本代碼絕對(duì)路徑 |
| ... | 可選入?yún)ⅲ@些參數(shù)會(huì)綁定到`_1, _2, _3, ..._n`, 在 Groovy 代碼中使用。|
<bean>
----------
<bean id="$id$" class="$REF$" />
decapitalize(groovyScript("_1.tokenize('.')[-1]", clipboard())),首先取clipboard()的值得到類的全引用,然后執(zhí)行 groovy 代碼_1.tokenize('.')[-1](按.分割為字符串?dāng)?shù)組,然后取最后一個(gè)即可得到類名,然后用decapitalize()將首字母小寫即可得到id。
<printContext>
---------------
LogUtil.$TYPE$(LOGGER, "$MSG$ " + $params$);
groovyScript("'\"' + _1.collect { it + ' = [\" + ' + it + ' + \"]'}.join(', ') + '\"'", methodParameters()),就能夠自動(dòng)將當(dāng)前函數(shù)的參數(shù)格式化后輸出。
總結(jié)
作者 | Sharehub
鏈接 | blog.xiaohansong.com/idea-live-templates.html
--完-- 推薦閱讀:
怎么接私貨?這個(gè)渠道你100%有用!請(qǐng)收藏!
喜歡文章,點(diǎn)個(gè)在看
評(píng)論
圖片
表情

