翻譯|使用教程|編輯:吳園園|2020-06-01 09:43:54.073|閱讀 412 次
概述:常規(guī)的搜索過(guò)程沒(méi)有考慮源代碼的語(yǔ)法和語(yǔ)義。即使您使用正則表達(dá)式,IntelliJ IDEA仍會(huì)將您的代碼視為正則文本。該結(jié)構(gòu)的搜索和替換(SSR)操作,您可以搜索你的代碼考慮您的代碼結(jié)構(gòu)中的特定代碼模式或語(yǔ)法結(jié)構(gòu)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
IntelliJ IDEA是Java語(yǔ)言開(kāi)發(fā)的集成環(huán)境,IntelliJ在業(yè)界被公認(rèn)為優(yōu)秀的Java開(kāi)發(fā)工具之一,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、J2EE支持、Ant、JUnit、CVS整合、代碼審查、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說(shuō)是超常的。IntelliJ IDEA 現(xiàn)已加入在線訂購(gòu),點(diǎn)擊此處了解價(jià)格詳情>>
結(jié)構(gòu)搜索和替換
常規(guī)的搜索過(guò)程沒(méi)有考慮源代碼的語(yǔ)法和語(yǔ)義。即使您使用正則表達(dá)式,IntelliJ IDEA仍會(huì)將您的代碼視為正則文本。該結(jié)構(gòu)的搜索和替換(SSR)操作,您可以搜索你的代碼考慮您的代碼結(jié)構(gòu)中的特定代碼模式或語(yǔ)法結(jié)構(gòu)。
IntelliJ IDEA根據(jù)您創(chuàng)建的搜索模板和 您應(yīng)用的條件來(lái)查找并替換源代碼的片段 。
從結(jié)構(gòu)上搜索目標(biāo)
1、從主菜單中,選擇編輯| 查找| 搜索結(jié)構(gòu)上開(kāi) 結(jié)構(gòu)搜索對(duì)話框。
在“ 結(jié)構(gòu)搜索”對(duì)話框中,可以快速切換到“ 結(jié)構(gòu)替換”對(duì)話框。單擊 并選擇 切換到替換。
2、在“ 結(jié)構(gòu)搜索”對(duì)話框中,執(zhí)行下列操作之一:
在編輯器區(qū)域中,輸入代碼模式($variable$代表您的代碼),單擊,然后選擇 保存模板以將其保存以備將來(lái)使用。
IntelliJ IDEA將創(chuàng)建的模板添加到“ 現(xiàn)有模板”對(duì)話框中的現(xiàn)有模板列表(“ 用戶定義”節(jié)點(diǎn))中 。
單擊“開(kāi)始” ,選擇“ 現(xiàn)有模板”以打開(kāi)預(yù)定義模板的列表,然后選擇適當(dāng)?shù)哪0濉?
例如,您的代碼中包含以下字段:
public class MainActivity { public static final String this_is_wrong = "Hello"; public static final String THIS_IS_CORRECT = "world"; }
讓我們?cè)陬愔姓业揭粋€(gè)特定的字段。
在現(xiàn)有模板列表中,單擊Java并打開(kāi)基于類的 節(jié)點(diǎn)(因?yàn)槲覀?需要類中的字段),所以類 模板的字段將成為我們的目標(biāo)。
單擊“ 確定”返回到“ 結(jié)構(gòu)搜索”對(duì)話框,以使用所選模板。
IntelliJ IDEA立即在編輯器中突出顯示找到的代碼。
3、“ 結(jié)構(gòu)搜索”對(duì)話框顯示所選模板以及該模板中使用的過(guò)濾器的值。您可以編輯現(xiàn)有過(guò)濾器或添加新條件,例如,添加一些正則表達(dá)式或 腳本約束。將插入號(hào)放在代碼變量處,然后使用過(guò)濾器區(qū)域管理過(guò)濾器。
4、在過(guò)濾器區(qū)域中,單擊以添加新條件。例如,如果需要添加正則表達(dá)式,請(qǐng)選擇Text。您還可以 根據(jù)變量添加其他條件。
5、在打開(kāi)的字段中,輸入條件。
例如,讓我們鍵入以下正則表達(dá)式:
在這種情況下,當(dāng)您在“ 結(jié)構(gòu)搜索”對(duì)話框中選擇“ 區(qū)分大小寫(xiě)”復(fù)選框時(shí) ,IntelliJ IDEA將僅搜索具有大寫(xiě)字符的字段。
另請(qǐng)注意,默認(rèn)情況下,“ 遞歸”復(fù)選框處于選中狀態(tài)。這意味著IntelliJ IDEA將執(zhí)行遞歸搜索,并且所有嵌套項(xiàng)都將包含在結(jié)果中。例如,當(dāng)您搜索方法調(diào)用時(shí),如果啟用了“ 遞歸”選項(xiàng),則IntelliJ IDEA將在中找到嵌套的方法調(diào)用foo(foo(foo()))。隨著 遞歸選項(xiàng)被禁用,只有外部方法調(diào)用會(huì)被發(fā)現(xiàn)。
6、指定以下選項(xiàng)以進(jìn)一步縮小搜索范圍:
文件類型 -使用列表進(jìn)行選擇,哪些文件類型應(yīng)成為搜索的一部分。在我們的例子中是Java。
范圍 -指定搜索位置:在項(xiàng)目,模塊,目錄或自定義范圍內(nèi)。
搜索目標(biāo) -您可以選擇完全匹配以匹配確切的模板或其他可用的代碼元素(在我們的示例中為 Field )。
7、點(diǎn)擊查找。
IntelliJ IDEA在“ 查找工具”窗口中顯示結(jié)果。
您可以將新創(chuàng)建的搜索模板作為自定義模板添加到 結(jié)構(gòu)搜索檢查中,并在以后使用它檢查代碼。
在某些情況下,您可以使用檢查代替結(jié)構(gòu)搜索和替換。例如,通過(guò)結(jié)構(gòu)搜索用接口替換類不會(huì)修改用法,您將需要執(zhí)行搜索并替換多次。在這種情況下,您可以使用抽象類進(jìn)行接口 檢查,這還將修改抽象類的用法。
從結(jié)構(gòu)上替換目標(biāo)
1、從主菜單中,選擇編輯| 查找| 結(jié)構(gòu)上更換。
2、在“ 替換結(jié)構(gòu)”對(duì)話框中,將新模板或現(xiàn)有模板添加到搜索和替換模板區(qū)域。您可以使用與搜索模板相同的方式保存替換模板。
3、如果您需要為替換模板中的變量添加過(guò)濾器,請(qǐng)?jiān)谒璧淖兞刻幉迦氩迦敕?hào),然后使用過(guò)濾器區(qū)域來(lái)管理過(guò)濾器。
4、在過(guò)濾器區(qū)域中,根據(jù)您選擇的 過(guò)濾器,指定條件。
例如,讓我們獲取一個(gè)$Field$要搜索的變量, 并添加條件以用小寫(xiě)字符替換找到的模式。
讓我們調(diào)用變量$Field2$ 并添加以下過(guò)濾器腳本,該腳本基本上是Groovy腳本:Field.name.toLowerCase()。
5、要縮小替換結(jié)果的范圍,請(qǐng)選擇以下選項(xiàng):
指定必要的選項(xiàng)后,點(diǎn)擊查找。IntelliJ IDEA在“ 查找工具”窗口中顯示結(jié)果。
6、在“ 查找”工具窗口中,您可以進(jìn)一步處理結(jié)果,一次一地替換找到的項(xiàng),一次全部替換,或者預(yù)覽可能的更改。
您還可以將替換模板添加到 結(jié)構(gòu)搜索檢查中, 并將其用作代碼的快速修復(fù)。
作為我們替換的結(jié)果,大寫(xiě)字符已切換為小寫(xiě)。
共享搜索模板
您可以通過(guò)導(dǎo)出或?qū)肱c他人共享搜索模板。
1、在“ 結(jié)構(gòu)搜索”對(duì)話框中(“ 編輯” |“查找” |“結(jié)構(gòu)搜索”), 創(chuàng)建一個(gè)新的搜索模板或使用現(xiàn)有的模板。
2、要導(dǎo)出模板,請(qǐng)單擊,然后選擇 將模板導(dǎo)出到剪貼板。IntelliJ IDEA將模板的XML表示形式添加到剪貼板(按Ctrl+Shift+V查看剪貼板的內(nèi)容)。您可以在聊天,電子郵件或論壇中與其他開(kāi)發(fā)人員共享此表示。
要導(dǎo)入模板,請(qǐng)Ctrl+C從任何地方(電子郵件,聊天或論壇)復(fù)制()共享XML代碼,然后在“ 結(jié)構(gòu)搜索”對(duì)話框中,單擊,然后選擇 從剪貼板導(dǎo)入模板。IntelliJ IDEA將XML代碼表示形式轉(zhuǎn)換為包含變量和范圍(如果存在)的模板。
====================================================
想要了解或購(gòu)買(mǎi)IntelliJ IDEA正版授權(quán)的朋友,歡迎
JetBrain技術(shù)交流群現(xiàn)已開(kāi)通,QQ搜索群號(hào)“786598704”或者掃描下方二維碼即可加入
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: