本文轉載自https://www.jianshu.com/p/3974df6572af
live template是什麼?
live template是一個預定義的代碼模板,其中的內容能夠根據上下文信息自動推斷:
首先放下效果圖:
相對於手動打出整塊代碼,很簡潔有沒有?如果這種毫無技術含量的代碼都通過live template 來自動生成,有下面兩個好處:
- 有更多的時間關注於業務邏輯,核心代碼可以更優雅;
- 減少低級錯誤出現的可能,之前手寫拼錯和括號錯位真是血和淚的教訓。
筆者很早之前就注意到這個功能,也查看過官方文檔和博客,都不能盡如人意.本文會以上面爲例,從頭到尾完成一個live template,並介紹其大部分功能。
一個完整的示範:
- 新建一個live template
- 填寫縮寫和說明
這樣使用時如果輸入了對應的縮寫,會有如下的提示:
- 設置模板的作用範圍
剛創建模板時IDEA應該會提示設置作用範圍,我這裏是已經設置過了,所以提示更改,這裏應該相差不大。
這裏我只勾選了在表達式和語句時輸入會觸發,其他情況下不會觸發。例如在方法外輸入unq,IDE不會給任何提示。
- 設置模板
live template中模板變量使用$包裹的,並且是可複用的,下面的模板就是將會變動的字段提取爲變量。
Object result = $CACHE_NAME$.get(String.valueOf($PARAMETER$),
x -> getSession().createCriteria($RETURN_TYPE$.class)
.add(Restrictions.eq("$END$$PARAMETER$", $PARAMETER$)).setMaxResults(1)
.uniqueResult());
return result == null ? null : ($RETURN_TYPE$) result;
- 設置強大的預定義函數
關於預定義函數參見官方文檔。
進入編輯變量頁面,對變量設置需要的函數(這裏很坑,我還以爲是在模板裏直接使用預定義函數,結果是預定義函數要附在變量上),個人認爲這個功能很強大。
這裏可以調整變量的填充順序,設置需要的預定義函數,這裏就簡單介紹下用到的兩個函數:
complete()
光標跳轉到該變量位置時會打開智能補全,不確定要用什麼就用它;methodReturnType()
使用當前方法的返回類型設置當前變量。
補充:
$END$
是特殊的預定義變量,表示模板結束後的光標位置;- IDEA有很多預定義的live template.很值得參考。