IntelliJ IDEA Live Template(即時樣板)的使用與範例說明(IDEA #5)

Live Template,有的工具稱為程式碼片段(Code Snippets)-輸入簡短的縮寫關鍵字再按下特定的驅動按鍵而擴展為完整程式碼的功能-可以有效提升程式碼的撰寫效率,隨著樣板的累積,能有厚積薄發的效應。

  • IDEA預設的驅動按鍵是Tab鍵。
  • 完整程式碼裡可插入變數,擴展後不同變數之間按〔Tab〕或〔Shift+Tab〕往前或往後移動。
  • 變數欄位移動的順序以變數在【Edit Variables】裡的位置決定

設定Live Template的方法

  1. 按下〔Ctrl+Shift+A〕再輸入live template,點擊其Settings項目
  2. 按下〔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())

解說影片


##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *