Live Template,有的工具稱為程式碼片段(Code Snippets)-輸入簡短的縮寫關鍵字再按下特定的驅動按鍵而擴展為完整程式碼的功能-可以有效提升程式碼的撰寫效率,隨著樣板的累積,能有厚積薄發的效應。
- IDEA預設的驅動按鍵是Tab鍵。
- 完整程式碼裡可插入變數,擴展後不同變數之間按〔Tab〕或〔Shift+Tab〕往前或往後移動。
- 變數欄位移動的順序以變數在【Edit Variables】裡的位置決定
設定Live Template的方法
- 按下〔Ctrl+Shift+A〕再輸入live template,點擊其Settings項目
- 按下〔Ctrl+Alt+S〕到【Editor】→【Live Templates】內設定
Live Template的基本設定
- Abbriviation: 用來擴展內容的縮寫關鍵字
- Description: 樣板的描述,輸入縮寫部份字串顯示出的視窗會顯示描述
- Template text: 樣板擴展後的內容,可含有變數的文字,變數使用要點如下:
- 變數名稱前後為 $: 如$DATE$、$TIME$等
- 內建變數有兩個:$END$與$SELECTION$,$END$是輸入完所有變數後最後游標停留的位置
- 變數可使用 Edit Variable 來定義其初始值 (於Expression欄位以下拉選單選用函數或輸入運算式)
- 如 date() 傳回系統日期
- time() 傳回系統時間
- methodName() 傳回當前方法的名稱
- Define/Change:指定適用的場合
常用內建函數
內建函數 | 功能說明 | 範例 |
---|---|---|
className() | 取出類別名稱 | |
currentPackage() | 取出當前的package名稱 | |
date([sDate]) | 取出系統日期,sDate是格式字串 | date("yyyy年MM月dd日") |
enum(s1,s2,…) | 彈出選單 | enum("選項",date(),time(),user()) |
escapeString(s1) | 將傳入字串做escape處理 | |
fileName() | 取出檔名 | |
fileNameWithoutExtension() | 取出檔名(無副檔名) | |
firstWord(s1) | 取出傳入字串的第一個Word | firstWord("public class Main")取出public |
groovyScript("groovy程式",參數) | 取出Groovy程式傳回字串;_1表示第一個參數 | |
jsXXX() | JavaScript相關函數 | jsMethodName()等 |
lineNumber() | 取出當前行號 | |
methodName() | 取出當前方法名稱 | |
methodParameters() | 取出當前方法的參數名稱 | |
methodReturnType() | 取出當前方法的傳回型態 | |
suggestVariableName() | 取出建議的變數名稱 | |
time([sTime]) | 取出系統時間 | |
user() | 取出使用者帳號 | |
variableOfType(" |
以型態傳回變數名稱; <type>為空字串表示任意型態 |
範例
1. soutv
- 功能:顯示變數名稱與值(V1)
- Template Text:
System.out.println("$EXPR_COPY$ = " + $EXPR$);
- Edit Variables:
Name Expression Default value Skip if defined EXPR variableOfType("") "expr" EXPR_COPY escapeString(EXPR)
2. sop
- 功能:顯示變數名稱與值(V2)
- Template Text:
System.out.println("@@$FILE$.$METHOD$ #$LINE$:$EXPR_COPY$=" + $EXPR$);
- Edit Variables:
Name Expression Default value Skip if defined FILE fileNameWithoutExtension() METHOD methodName() LINE lineNumber() EXPR variableOfType("") EXPR_COPY EXPR
3. sopp
- 功能:顯示方法的參數名稱與值
- Template Text:
System.out.println("@@$CLASS$.$METHOD$ $END$$PARAMS$);
- Edit Variables:
Name Expression Default value Skip if defined CLASS className() METHOD methodName() PARAMS groovyScript() 見下列Groovy程式
groovyScript("
def result='參數: ';
def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split(',').toList();
for(i = 0; i < params.size(); i++) {
result += params[i] + '="+' + params[i];
if (i < params.size()-1) {
result += '+ ",';
}
};
return result",
methodParameters())
解說影片
##
您可能也會有興趣的類似文章
- 快速建立IntelliJ IDEA的Live Template的步驟 (0則留言, 2014/02/21)
- [IntelliJ IDEA] Java / JavaScript除錯小技巧 (0則留言, 2014/08/14)
- 用IntelliJ IDEA寫第一支Java程式;程式結構說明;Live Tempate用法 (0則留言, 2019/08/09)
- 用IntelliJ IDEA的GUI Designer開發Swing程式 (0則留言, 2014/02/14)
- IntelliJ IDEA的啟動設定與建議安裝的外掛(IDEA #3) (0則留言, 2019/07/21)
- 使用IntelliJ IDEA 12的Android UI Designer輕鬆寫Android App (1則留言, 2012/08/09)
- 方便的IntelliJ IDEA Markdown外掛idea-multimarkdown (0則留言, 2015/11/14)
- Migration Guide: Eclipse ✈ IntelliJ IDEA (0則留言, 2015/07/07)
- 如何在啟動IntelliJ IDEA idea64.exe時指定特定JDK (0則留言, 2015/11/14)
- 第一次執行IntelliJ IDEA與初始設定(IDEA #2) (0則留言, 2019/07/14)
- IntelliJ IDEA直接開啟專案的方法 (0則留言, 2010/06/03)
- 原來IntelliJ IDEA也有中文的網站 (0則留言, 2008/08/22)
- 使用IntelliJ IDEA學習Java程式設計 (IDEA #1) (0則留言, 2019/07/14)
- 由桌面啟動IntelliJ IDEA 14 64-bit執行檔 (0則留言, 2014/11/07)
- IDEA的編輯web.xml的圖形介面 (0則留言, 2005/06/06)