IntelliJ IDEA搜索模板

2018-10-24 15:44 更新

搜索模板是結(jié)構(gòu)搜索和替換功能的重要組成部分。與實(shí)時(shí)模板一樣,搜索模板包含純文本和一個(gè)或多個(gè)模板變量。

有效的搜索或替換模板代表以下 Java 結(jié)構(gòu)之一:

  • 表達(dá)式,例如:new SomeExpression()
  • 語(yǔ)句或語(yǔ)句序列,例如:q = 1;
  • 類指示符,例如 “class Booking implements Serializable”
  • 行或塊注釋,例如/** Created in IntelliJ IDEA */。
  • @Modifier 注釋。

IntelliJ IDEA 提供了一組預(yù)定義的搜索模板集合,它與各種語(yǔ)句、表達(dá)式、類及其成員、XML 和 HTML 結(jié)構(gòu)等相匹配。您可以使用這些模板進(jìn)行結(jié)構(gòu)搜索和替換,也可以作為創(chuàng)建自己的搜索模板的基礎(chǔ)。

搜索模板使用的變量,這是字符串包圍了 $ 字符,例如 $expression$。源代碼中的符號(hào)、字符串文本和注釋可以通過(guò)變量來(lái)引用。

模板中的變量受到某些限制,這些約束可幫助您細(xì)化搜索并將其限制為所需的匹配項(xiàng):

  • 文本約束是要匹配的文本模式。這些約束可以是純文本或正則表達(dá)式,并且可以包含對(duì)符號(hào)的引用。
  • 出現(xiàn)的次數(shù)定義了一個(gè)變量可以包含多少個(gè)順序元素(在參數(shù)、聲明或語(yǔ)句列表中)以及變量是否需要存在于模式中。如果出現(xiàn)次數(shù)為1,則只有一個(gè)符號(hào)可以匹配變量。如果出現(xiàn)次數(shù)為 null,則表示某個(gè)元素可能丟失。
  • 表達(dá)式約束將語(yǔ)義條件應(yīng)用到搜索中,例如定位讀取或?qū)懭氲姆?hào)。
  • 當(dāng)搜索的項(xiàng)目多于普通匹配時(shí),將使用腳本約束。如果您正在查找某些語(yǔ)言結(jié)構(gòu)(例如,具有指定數(shù)目的參數(shù)的構(gòu)造函數(shù)或具有指定可見(jiàn)性修飾符的成員),則應(yīng)用描述為 Groovy 腳本的約束。

在搜索模板中,可以使用以下簡(jiǎn)化方法:

  • 方法正文可以省略。
  • 如果沒(méi)有指示訪問(wèn)修飾符,任何訪問(wèn)修飾符都將被保留。
  • 在模板和約束字段中使用短類名(而不是完全限定名)。
  • 使用 class $Class$ 模板,也可以查找到匿名類。
  • 注釋和文檔注釋的模板應(yīng)包含具有正確注釋和 JavaDoc 語(yǔ)法的變量和結(jié)構(gòu)。

一般 SSR 程序

本節(jié)概述了一般的 SSR 程序。請(qǐng)參閱本節(jié)結(jié)構(gòu)搜索和替代典型用例的示例。

要在結(jié)構(gòu)上查找和替換源代碼,請(qǐng)按照以下步驟操作:

  1. 在主菜單上選擇:編輯| 查找| 搜索結(jié)構(gòu)(Edit | Find | Search Structurally),或 編輯| 查找| 替換結(jié)構(gòu)(Edit | Find | Replace Structurally)。
  2. 在打開的對(duì)話框中,定義搜索模板。簡(jiǎn)而言之,定義搜索模板涉及以下步驟:
    • 在搜索模板文本區(qū)域中鍵入所需的結(jié)構(gòu),或通過(guò)點(diǎn)擊復(fù)制現(xiàn)有的模板按鈕來(lái)使用預(yù)定義的搜索模板。
    • 指定在搜索模板中對(duì)變量施加的約束。要做到這一點(diǎn),請(qǐng)點(diǎn)擊編輯變量按鈕。搜索模板中包含的所有變量都列在“編輯變量”對(duì)話框的“變量”窗格中。

    有關(guān)過(guò)程的詳細(xì)描述,請(qǐng)參閱創(chuàng)建和編輯搜索模板的部分。

  3. 在結(jié)構(gòu)替換的情況下,指定替換模式,并根據(jù)需要定義變量約束。
  4. 指定搜索和替換選項(xiàng),特別是要匹配的出現(xiàn)次數(shù)以及要分析的文件類型。
  5. 指定執(zhí)行結(jié)構(gòu)搜索和替換的范圍。為此,單擊作用域列表的下拉箭頭,并選擇其中一個(gè)預(yù)定義的作用域,或單擊省略號(hào)按鈕,并在范圍對(duì)話框中配置所需的范圍。
  6. 點(diǎn)擊“查找”。檢測(cè)到的事件顯示在“查找”工具窗口。

    請(qǐng)注意,在替換的情況下,您可以在搜索結(jié)果中選擇所需的匹配項(xiàng),然后單擊預(yù)覽替換按鈕。在源代碼中突出顯示了相應(yīng)的事件。

創(chuàng)建和編輯搜索模板

你可以從頭開始創(chuàng)建搜索和替換模板,只需在結(jié)構(gòu)搜索/替換(Structural Search / Replace)對(duì)話框文本區(qū)域中輸入代碼即可。但是,您可以使用預(yù)定義的搜索模板的集合,您可以將其用作自己的模板的原型。所有自定義模板都出現(xiàn)在現(xiàn)有搜索模板的列表中,在節(jié)點(diǎn)用戶的定義下。

要?jiǎng)?chuàng)建搜索模板,請(qǐng)按照以下常規(guī)步驟操作:

您可以在中創(chuàng)建一個(gè)新模板 現(xiàn)有模板對(duì)話框。為此,請(qǐng)單擊工具欄上的 按鈕。這將打開結(jié)構(gòu)搜索對(duì)話框,并使用空模板字段。要定義自定義模板,請(qǐng)按照下述步驟進(jìn)行操作。

  • 在主菜單上選擇:編輯| 查找| 搜索結(jié)構(gòu)(Edit | Find | Search Structurally)。
  • 執(zhí)行以下操作之一:
    • 在搜索模板文本區(qū)域中鍵入模板的代碼。
    • 點(diǎn)擊復(fù)制現(xiàn)有的模板按鈕,然后在“現(xiàn)有模板”對(duì)話框中,選擇所需的模板作為原型。所選模板的源代碼出現(xiàn)在搜索模板文本區(qū)域,您可以根據(jù)需要更改它。
  • 如果需要配置模板變量,請(qǐng)單擊編輯變量按鈕。編輯變量對(duì)話框出現(xiàn)。
    在變量列中,選擇要配置的變量,并指定將適用于此變量的約束。
    根據(jù)需要對(duì)其他變量重復(fù)此過(guò)程,應(yīng)用更改并關(guān)閉對(duì)話框。
  • 點(diǎn)擊保存模板(Save Template)按鈕。
  • 在“保存模板(Save Template)”對(duì)話框中,鍵入新模板的名稱,然后單擊“確定”。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)