IntelliJ IDEA實時模板變量


返回由當前方法返回的值的類型IntelliJ IDEA 實時模板中的模板變量允許用戶輸入。擴展模板后,變量將作為輸入字段顯示在編輯器中。

IntelliJ IDEA 聲明實時模板變量

模板中的變量以下列格式聲明:

{#content}lt;variable_name>$

IntelliJ IDEA 創建和編輯實時模板變量

變量由表達式定義,並且可以接受某些默認值。

此表達式可能包含以下基本類型的構造:

  • 雙引號中的字符串常量。
  • 在實時模板中定義的另一個變量的名稱。
  • 具有可能參數的預定義函數。

模板變量在 "編輯模板變量" 對話框中可編輯,其中包含可用函數的完整列表。請參見本頁下面的預定義函數列表。

IntelliJ IDEA 預定義的模板變量

光標放在分號前的位置。$SELECTION $ 用於環繞模板, 並代表要包裝的代碼片段。擴展模板后, 選定的文本將按照模板中指定的內容進行包裝。例如, 如果您在代碼中選擇了示例, 並通過指定的縮寫調用 "$SELECTION $" 模板, 或者按下 Ctrl + Alt + T 並從列表中選擇所需的模板, 則 IntelliJ 想法將用雙引號將所選內容括起來, 如下所示:

 

IntelliJ IDEA支持兩個預定義的實時模板變量:$END$ 和 $SELECTION$。

你不能編輯預定義的實時模板變量 $END$ 和 $SELECTION$。

  • $END$ 指示在擴展模板后光標的位置。例如,模板返回 $END$;將擴展到 :
    return ;

    光標定位在分號之前的位置。

  • $SELECTION$ 用於環繞模板 ,代表要包裝的代碼片段。展開模板后,選定的文本將按照模板中指定的內容進行包裝。例如,如果您在代碼中選擇了示例並通過指定的縮寫調用 "$SELECTION $" 模板,或通過按下 Ctrl+Alt+T 從列表中選擇所需的模板,IntelliJ IDEA 將使用雙引號將所選內容括起來:
    "EXAMPLE"

用於實時模板變量的預定義函數

項目 描述
annotated("annotation qname") 創建一個具有位於指定位置的注釋的類型符號。
arrayVariable() 建議在當前范圍內適用的所有數組變量
anonymousSuper() 為 Kotlin 對象表達式建議一個超類型。
camelCase(String) 返回作為參數傳遞的字符串,轉換為駱駝大小寫。例如,my-text-filemy text filemy_text_file將被轉換為 myTextFile
capitalize(String) 將作為參數傳遞的名稱的首字母大寫。
capitalizeAndUnderscore(sCamelCaseName) 將作為參數傳遞的匹配名稱的所有字母大寫,並在各部分之間插入下划線。例如,如果作為參數傳遞的字符串FooBar,則函數返回FOO_BAR
castToLeftSideType() 將右側表達式轉換為左側表達式類型。在 "迭代" 組中使用它可以生成原始類型和泛型集合的單個模板。
className(sClassName) 返回當前類的名稱(擴展模板的類)。
classNameComplete() 此表達式替換在變量位置的類名稱完成。
clipboard() 返回系統剪貼板的內容。
snakeCase(String) 從 snake_case 字符串中返回 CamelCase 字符串。例如,如果作為參數傳遞的字符串 foo_bar,則函數返回fooBar
complete() 此表達式替換可變位置處的代碼完成調用。
completeSmart() 此表達式替換在變量位置的智能類型完成調用。
componentTypeOf (<array variable or array type>) 返回數組的組件類型。
currentPackage() 返回當前包的名稱。
date(sDate) 以指定的格式返回當前系統日期

默認情況下,當前日期以默認系統格式返回。但是,如果您在雙引號中指定日期格式,則日期將以此格式顯示:

IntelliJ IDEA實時模板變量的預定義函數
decapitalize(sName) 將作為參數傳遞的名稱的第一個字母替換為相應的小寫字母。
descendantClassEnum(<String>) 顯示作為字符串參數輸入的類的子項。
enum(sCompletionString1,sCompletionString2,...) 在模板調用中建議完成的逗號分隔字符串的列表。
escapeString(sEscapeString) 轉義指定的字符串。
expectedType() 返回作為整個模板的結果所需的類型。如果模板在分配的右部分、返回后等范圍內展開,則會有意義。
fileName(sFileName) 返回具有擴展名的文件名。
fileNameWithoutExtension() 返回沒有擴展名的文件名。
firstWord(sFirstWord) 返回作為參數傳遞的字符串的第一個單詞。
groovyScript("groovy code") 返回具有指定代碼的 Groovy 腳本。 
您可以使用帶有多個參數的 groovyScript 宏。第一個參數是執行的腳本文本或包含腳本的文件的路徑。下一個參數綁定到腳本中可用的_1, _2, _3, ..._n變量。 
此外,_editor變量在腳本中可用。該變量綁定到當前編輯器。
guessElementType (<container>) 對存儲在java.util.Collection中的元素的類型進行猜測。為了猜測,IntelliJ IDEA 嘗試查找元素添加到容器中或從容器中提取的位置。
iterableComponentType(<ArrayOrIterable>) 返回可迭代(iterable)組件的類型,例如數組或集合。
iterableVariable() 返回可以迭代的變量的名稱。
lineNumber() 返回當前行號。
lowercaseAndDash(String) 返回以破折號分隔的小寫形式,作為參數傳遞的字符串。例如,字符串 MyExampleName被轉換為my-example-name
methodName() 返回包含(embracing)方法的名稱(擴展模板的位置)。
methodParameters() 返回包含方法的參數列表(其中擴展了模板)。
methodReturnType() 返回由當前方法返回的值的類型(該模板在其中展開的方法)。
qualifiedClassName() 返回當前類的完全限定名(擴展模板的類)。

清除 "縮短" 的 "檢查名稱" 復選框。

rightSideType() 用右側表達式的類型聲明左側變量。在 "迭代" 組中使用它可以生成原始類型和泛型集合的單個模板。
snakeCase(sCamelCaseText) 返回從作為參數傳遞的 CamelCase 字符串中的 snake_case 字符串。
spaceSeparated(String) 返回用匹配字符串作為參數傳遞的空格分隔的字符串。例如,如果作為參數傳遞的字符串fooBar,則函數返回 foo bar
subtypes(sType) 返回作為參數傳遞的類型的子類型。
suggestIndexName() 建議索引變量的名稱。
suggestVariableName() 根據引用變量命名規則的代碼樣式設置,根據變量類型及其初始化程序表達式建立變量的名稱。 
例如,如果它是在迭代中保存元素的變量,則 IntelliJ IDEA 對最合理的名稱進行猜測,同時考慮到要迭代的容器的名稱。
suggestFirstVariableName(sFirstVariableName) 不建議true, false, this, super
time(sSystemTime) 返回當前系統時間。
typeOfVariable(VAR) 返回作為參數傳遞的變量的類型。
underscoresToCamelCase(sCamelCaseText) 返回作為參數傳遞的字符串, 並將 CamelHump 字母替換為下划線。例如,如果作為參數傳遞的字符串foo_bar,則函數返回 fooBar
underscoresToSpaces(sParameterWithSpaces) 返回作為參數傳遞的字符串, 並用空格替換下划線。
user() 返回當前用戶的名稱。
variableOfType(<type>) 建議所有可能分配給作為參數傳遞的類型的變量,例如variableOfType(“java.util.Vector”)。如果將空字符串 ("") 作為參數傳遞, 則建議所有變量, 而不考慮它們的類型。
JsArrayVariable 返回 JavaScript 數組名稱。
jsClassName() 返回當前 JavaScript 類的名稱。
jsComponentType 返回 JavaScript 組件類型。
jsMethodName() 返回當前 JavaScript 方法的名稱。
jsQualifiedClassName 返回當前 JavaScript 類的完整名稱。
jsSuggestIndexName 返回建議的索引名稱。
jsSuggestVariableName 返回變量的建議名稱。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM