IntelliJ IDEA實時模板變量

2018-10-13 16:31 更新

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

IntelliJ IDEA 聲明實時模板變量

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

{#content}lt;variable_name>$

IntelliJ IDEA 創(chuàng)建和編輯實時模板變量

變量由表達(dá)式定義,并且可以接受某些默認(rèn)值。

此表達(dá)式可能包含以下基本類型的構(gòu)造:

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

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

IntelliJ IDEA 預(yù)定義的模板變量

光標(biāo)放在分號前的位置。$SELECTION $ 用于環(huán)繞模板, 并代表要包裝的代碼片段。擴(kuò)展模板后, 選定的文本將按照模板中指定的內(nèi)容進(jìn)行包裝。例如, 如果您在代碼中選擇了示例, 并通過指定的縮寫調(diào)用 "$SELECTION $" 模板, 或者按下 Ctrl + Alt + T 并從列表中選擇所需的模板, 則 IntelliJ 想法將用雙引號將所選內(nèi)容括起來, 如下所示:


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

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

  • $END$ 指示在擴(kuò)展模板后光標(biāo)的位置。例如,模板返回 $END$;將擴(kuò)展到 :
    return ;

    光標(biāo)定位在分號之前的位置。

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

用于實時模板變量的預(yù)定義函數(shù)

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

默認(rèn)情況下,當(dāng)前日期以默認(rèn)系統(tǒng)格式返回。但是,如果您在雙引號中指定日期格式,則日期將以此格式顯示:

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

清除 "縮短" 的 "檢查名稱" 復(fù)選框。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號