W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
$Statement$;
將事件發(fā)生次數(shù)增加到一定數(shù)量,您可以找到包含指定數(shù)量的元素的語句序列。
$Instance$.$MethodCall$($Arguments$)
此模板與方法調(diào)用表達式匹配。如果出現(xiàn)的次數(shù)為零, 則表示可以省略方法調(diào)用。
if ($Expr$) {
$ThenStatements$;
}
else {
$ElseStatements$;
}
如果要找一個包含 "foo" 的注釋或文字,搜索模板將是 $SomethingWeWantToFind$ 或 "$SomethingWeWantToFind$"。如果想要查找包含某些特定單詞的注釋/字符串(例如,將 foo 作為一個詞),則應(yīng)將其指定為文本約束。
使用默認變量設(shè)置的類的搜索模板構(gòu)造函數(shù)允許在指定范圍內(nèi)的每個類中只找到一個構(gòu)造函數(shù)。如果類有幾個構(gòu)造函數(shù),那么找到多個構(gòu)造函數(shù),則您需要在$ class $變量中設(shè)置發(fā)生計數(shù)的最大值選項。有關(guān)更多信息,請參閱編輯變量對話框。
請注意,類聲明也將包含在查找事件的列表中。
如果想用 try/catch/finally 結(jié)構(gòu)替換一個語句,可以建議使用下面的一對搜索和替換模板。搜索模板是:
$Statements$;
具有指定為約束的特定最大出現(xiàn)次數(shù)。
替換模板是:
try {
$Statements$;
}
catch(Exception ex) {
}
查找實現(xiàn)某個接口的類或所有類的所有后代
考慮以下搜索模板:
class $Clazz$ extends $AnotherClass$ {}
或者
class $Clazz$ implements $SomeInterface$ {}
作為變量 $ AnotherClass $ 或 $ SomeInterface $ 的文本約束,指定基類或?qū)崿F(xiàn)的接口的名稱。
要查找相同接口方法的不同實現(xiàn),請使用以下搜索模板:
class $a$ {
public void $show$();
}
指定 $show$ 變量的文本約束,并啟用“該變量是搜索的目標(biāo)”選項。
IntelliJ IDEA 建議為一個類的本地和實例字段預(yù)定義模板。這些模板使用了 @Modifier 注釋,有助于描述搜索目標(biāo),當(dāng)沒有辦法用自然語言表達它時。
但是,如果您需要搜索本地包或?qū)嵗椒?,則必須自己創(chuàng)建相應(yīng)的搜索模板,然后應(yīng)用 @Modifier注釋。
指定使用可見性修飾符本地包和實例查找所有方法的條件,使用以下搜索模板:
class
$Class$ {
@Modifier("packageLocal") @Modifier("Instance" ) $ReturnType$ $MethodName$($ParameterType$ $Parameter$);
}
}
現(xiàn)有示例使用以下模板:
LOG.debug($params$);
在 _a 和 _st 是變量并且 * 表示 "約束" 字段中包含的零個或多個匹配項,并選中 "完全匹配變量" 的 "反轉(zhuǎn)條件" 復(fù)選框的地方放置 if (' _a) {' _st *;} 將導(dǎo)致日志記錄搜索不包含在 if 語句中。
搜索標(biāo)簽的最簡單的模板是:<$a$/>
通過將約束放在變量 $a$ 上,您可以指定要查找的標(biāo)簽。例如,如果指定了 text / regexp 約束:app.+,您將發(fā)現(xiàn)這些標(biāo)記的名稱以 app 開頭。
用于在 XML 和 HTML 中搜索的更通用的模板 <$tag$ $attribute$="$value$"/> 。通過使用具有正確指定的搜索設(shè)置和約束的此模板,您可以發(fā)現(xiàn)幾乎可能發(fā)生在XML 或 HTML 中的任何內(nèi)容。例如,如果您指定了text / regexp 約束的 width 為 $attribute$,則 $attribute$ 可以找到具有該 width 屬性的所有標(biāo)簽。
IntelliJ IDEA 結(jié)構(gòu)搜索可讓您使用無法使用 UI 指定的高級約束。
以下模板為例:
該約束是使用 Groovy 腳本語言和 IntelliJ IDEA PSI API 為您搜索的語言指定的。Groovy 約束適用于可以應(yīng)用結(jié)構(gòu)搜索的任何語言。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: