Idea Live Templates定義與模闆變量使用
Live Templates可以在寫代碼時快速建構一些常用的代碼塊,但idea預設的配置有時候不能滿足個人使用習慣,這時可以自定義一些Live Templates來優化代碼編寫體驗。
在Setting -> Editor -> Live Templates中可以自定義活動模闆
這裡 $CLASS$ 是自定義變量,可以點選 Edit variables來定義,也可以對已經定義的變量使用表達式進行一些處理來生成另一個變量。模闆變量表達式含義表
以下是定義變量時支援的表達式基本含義(當比對多個結果時結果将出現在待選清單中):
表達式 | 含義 |
annotated(<annotation>) | 傳回具有指定注解的類,方法或字段名 |
arrayVariable() | 傳回目前範圍内數組變量,最近的優先展示 |
lineCommentStart() | 傳回目前語言訓示行注釋開始的字元 |
blockCommentStart() | 傳回目前語言訓示塊注釋開始的字元 |
blockCommentEnd() | 傳回目前語言訓示塊注釋結束的字元 |
commentStart() | 傳回目前語言訓示注釋開始的字元,對有行注釋的傳回行注釋開頭 |
commentEnd() | 傳回目前語言訓示注釋結束的字元,對有行注釋的傳回空(行注釋通常沒有結束字元) |
camelCase(<String>) | 将字元串轉換為駝峰形式 |
snakeCase(<String>) | 将字元串轉換為下劃線分割形式 |
spaceSeparated(<String>) | 将字元串轉換為空格分開形式 |
spacesToUnderscores(<String>) | 将字元串的空格替換為下劃線 |
capitalize(<String>) | 将字元串首字母設為大寫 |
capitalizeAndUnderscore(<String>) | 将字元串轉換為大寫并用下劃線隔開 |
decapitalize(<String>) | 将字元串首字母設為小寫 |
underscoresToCamelCase(<String>) | 将下劃線形式字元串轉換為駝峰形式 |
underscoresToSpaces(<String>) | 将下劃線形式字元串轉換為空格隔開形式 |
lowercaseAndDash(<String>) | 将字元串轉為小寫并使用中劃線分割 |
escapeString(<String>) | 将字元串中的特殊符号進行轉義,便于在java字元串中使用 |
substringBefore(<String>, <Delimeter>) | 截取字元串在<Delimeter>之前的部分 |
firstWord(<String>) | 傳回字元串中的首個單詞 |
castToLeftSideType() | 擷取左側變量的類型判斷是否需要強轉 |
rightSideType() | 擷取右側表達式的變量類型 |
className() | 傳回目前所在類(在内部類則傳回内部類)類名 |
currentPackage() | 傳回目前所在包名 |
qualifiedClassName() | 傳回目前所在類(在内部類則傳回内部類)的全限定類名(包+類名) |
classNameComplete() | 觸發類名相關的代碼補全 |
clipboard() | 傳回系統剪貼闆的内容 |
complete() | 調用一次代碼補全,相當于調用一次Ctrl+Space |
completeSmart() | 調用一次智能代碼補全,相當于調用一次Ctrl+Alt+Space |
componentTypeOf(<array>) | 傳回數組類型 |
concat(<String>, …) | 拼接字元串 |
date([format]) | 指定格式化方式傳回目前系統時間字元串(根據SimpleDateFormat格式) |
time([format]) | 指定格式化方式傳回目前系統時間字元串(無日期,根據SimpleDateFormat格式) |
descendantClassesEnum(<String>) | 傳回指定類的子類 |
lineNumber() | 傳回目前行行号 |
enum(<String>, …) | 傳回建議的字元串清單 |
expectedType() | 自動識别并傳回期望的類型,一般用于指派,方法參數,傳回語句處。 |
fileName() | 傳回目前檔案名(帶拓展名) |
fileNameWithoutExtension() | 傳回目前檔案名(不帶拓展名) |
filePath() | 傳回目前檔案路徑(帶拓展名) |
fileRelativePath() | 傳回目前檔案相對目前項目的路徑(帶拓展名) |
groovyScript(<String>, [arg, …]) | 執行作為字元串形式傳遞的groovy腳本 |
guessElementType(<Collection>) | 傳回集合中元素的類型 |
iterableComponentType(<Iterable>) | 傳回可疊代對象的類型 |
iterableVariable() | 傳回目前範圍内可疊代類型對象,最近的優先展示 |
methodName() | 傳回目前所在方法名 |
methodParameters() | 傳回目前所在方法的所有參數名 |
methodReturnType() | 傳回目前所在方法的傳回類型 |
regularExpression(<String>, <Pattern>, <Replacement>) | 查找字元串中滿足<Pattern>的所有部分并替換為<Replacement> |
typeOfVariable(<String>) | 傳回變量的類型 |
variableOfType(<String>) | 傳回目前範圍内滿足類型條件的變量,最近的優先展示 |
suggestFirstVariableName(<String>) | 傳回目前範圍内滿足類型條件的部分變量,最近的優先展示和variableOfType類似但不推薦true,false,this,和super |
subtypes(<String>) | 傳回指定類型的子類型 |
suggestIndexName() | 傳回目前範圍中未使用的第一個常用疊代下标變量名(i,j,k等) |
suggestVariableName() | 根據變量命名規則的代碼風格設定傳回建議的變量名 |
suggestShortVariableName() | 建議的變量名精簡版 |
user() | 傳回目前系統的使用者名稱 |
使用方式
在代碼中輸入前面設定的 Abbreviation 中設定的模闆名稱并按 Tab 即可。