IntelliJ IDEA 重命名重構(gòu)允許您重命名類、接口、枚舉和注釋,并自動(dòng)更正代碼中的所有引用。
IntelliJ IDEA 中提供了以下重命名重構(gòu):
- 重命名包。以下用法被重新命名:Package 語(yǔ)句、Import 語(yǔ)句、類的合格名稱。
- 重命名類。以下用法被重新命名:Import 語(yǔ)句、類的合格名稱、具有選定類類型的變量、類繼承者.
- 只有安裝了 Ruby 插件才支持此功能。
- Ruby 腳本。在 Ruby 腳本中重命名適用于所有符號(hào),并將更改傳播到項(xiàng)目中的所有用法。
- Ruby 類。重命名一個(gè) Ruby 類的結(jié)果取決于調(diào)用的位置和包含的文件名。首先,如果已從模板創(chuàng)建了 Ruby 類,則包含的文件名與指定的類名匹配。因此,從編輯器中重命名 Ruby 類將導(dǎo)致根據(jù) Ruby 命名約定生成新的文件名。如果包含文件的名稱與類名稱不匹配,則只重命名該類及其用法。其次,如果從 "項(xiàng)目" 工具窗口調(diào)用重命名重構(gòu),則只更改文件名; 包含的類的名稱將保持不變。
- Rails 應(yīng)用程序的組件。Rails 應(yīng)用程序中的重命名適用于應(yīng)用程序元素(類、控制器、操作、助手、幫助器、視圖)及其用法。建議使用項(xiàng)目工具窗口的 Rails 視圖或編輯器來(lái)重命名 Rails 應(yīng)用程序的元素。在 Rails 應(yīng)用程序中重命名重構(gòu)有以下幾點(diǎn)細(xì)節(jié):
- 在重命名操作或視圖模板時(shí),所有關(guān)聯(lián)的實(shí)體都被重命名,包括測(cè)試。但是,在重命名測(cè)試時(shí),它的相關(guān)實(shí)體不會(huì)重命名。
- 重命名時(shí),請(qǐng)記住新名稱應(yīng)符合 Rail s命名約定;否則名字將不能被正確識(shí)別。這意味著,當(dāng)你重新命名,例如,MyController 到 YourController,你只需要改變 My 到 Your,留下 Controller 后綴不變。
- 在重命名一個(gè)控制器或視圖,它在 RSpec 測(cè)試中的用法只會(huì)在“評(píng)論和字符串中搜索”選項(xiàng)已啟用時(shí)被重命名。
- 重命名 Rails 模型時(shí),所有的用法也被重新命名:底層的文件、類、測(cè)試類和夾具。IntelliJ IDEA 創(chuàng)建一個(gè)遷移,并使用指令重命名相應(yīng)的表。當(dāng)模型中的某個(gè)字段被重命名時(shí),IntelliJ IDEA 將創(chuàng)建一個(gè)遷移,其中包含指令重命名表中對(duì)應(yīng)的列及其外鍵(如果有的話)。
- 命名范圍。這樣做,將重命名的作用域作為方法被調(diào)用的代碼行也被重命名。
- Sass 選擇器
- 重命名方法。以下用法被重新命名:該方法的所有調(diào)用;所有在子類中重寫/實(shí)現(xiàn)的方法。
- 重命名字段。
- 重命名函數(shù)。
- 重命名變量。
- 重命名參數(shù)。以下用法被重新命名:參數(shù)的所有用法;文檔注釋中相應(yīng)的參數(shù)標(biāo)記。
- 重命名 CSS 顏色值。
- 重命名文件。
- 重命名目錄。
- 在 Grails 應(yīng)用程序中重命名視圖和視圖的引用。
重命名重構(gòu)示例
示例-重命名一個(gè)類
重構(gòu)前:
public class MyClass {
// some code here
}
...
public void myMethod() {
MyClass myClass = new MyClass();
}
重構(gòu)后:
public class YourClass {
// some code here
}
...
public void myMethod() {
YourClass yourClass = new YourClass();
}
示例-重命名一個(gè)方法
注意:只有安裝了 Python 插件才支持此功能。
重構(gòu)前:
def was_published_today(self):
return self.pub_date.date () == datetime.date.today()
重構(gòu)后:
def published_today(self):
return self.pub_date.date () == datetime.date.today()
示例-重命名模板
注意:只有安裝了 Python 插件才支持此功能。
重命名模板:
這樣做,下列用法將被重命名:
示例-重命名 Ruby/Rails 符號(hào)
注意:只有安裝了 Ruby 插件才支持此功能。
用匹配的文件名重命名 Ruby 類:
操作前:
MyClass - my_class.rb
操作后:
YourClass - your_class.rb
重命名 Rails 方法:
操作前:
def bar(a,b,c)
return a * b + c * 123
end
def foo
a = 0
b = 1
c = 2
return bar (a,b,c)
end
操作后:
def do_smth (a,b,c)
return a * b + c * 123
end
def foo
a = 0
b = 1
c = 2
return do_smth (a,b,c)
end
重命名 Rails 模型:
操作前:
Model Library.
The following symbols should be renamed:
Class Library
Fixture library.yml
Test class library_test.rb
Test class LibraryTest.rb
File library.rb
操作后:
Model Books.
As a result of performing the Rename refactoring, IntelliJ IDEA creates a migration. Execute the migration to have the following symbols actually renamed:
Class Books
Fixture books.yml
Test class books_test.rb
Test class BooksTest.rb
File books.rb
重命名范圍及其用法:
操作前:
Class Word
scope :word_length, lambda {|word_length| where :char_count => word_length}
end
assert_equal 0, Word.word_length(0).size
操作后:
Class Word
scope :word_length1, lambda {|word_length| where :char_count => word_length}
end
assert_equal 0, Word.word_length1(0).size
重命名符號(hào)
- 選擇要重命名的項(xiàng)目。
- 要選擇一個(gè)文件,請(qǐng)?jiān)?"項(xiàng)目" 工具窗口中單擊所需的文件。
- 要在編輯器中選擇符號(hào),請(qǐng)將插入符號(hào)放在要重命名的元件的名稱上。
- 若要在 "項(xiàng)目" 工具窗口中選擇一個(gè)符號(hào),請(qǐng)確保顯示了這些成員,然后單擊所需的符號(hào)。
- 若要在 "結(jié)構(gòu)" 視圖中選擇符號(hào),請(qǐng)?jiān)?"結(jié)構(gòu)" 工具窗口中單擊所需的符號(hào)。
- 在主菜單或上下文菜單上選擇:重構(gòu)| 重命名,或按 Shift+F6。
- 隨后的行為取決于復(fù)選框啟用就地模式 (設(shè)置/首選參數(shù)對(duì)話框、編輯器)。
- 如果選中此復(fù)選框,則建議的名稱將出現(xiàn)在相關(guān)符號(hào)的正下方。您可以接受建議,也可以輸入新的名稱。但是,如果再次按 Shift+F6,IntelliJ IDEA 將顯示 "重命名" 對(duì)話框,其中有更多選項(xiàng)。
- 如果這個(gè)復(fù)選框沒(méi)有被選中,則會(huì)立即打開(kāi) "重命名" 對(duì)話框。
這組控件及其名稱取決于要重命名的符號(hào)的類型。
- 如果您希望 IntelliJ IDEA 查找和重命名與重命名類相關(guān)的對(duì)象(其名稱包含更改的字符串),請(qǐng)選中以下一個(gè)或多個(gè)選項(xiàng):
- 重命名變量以重命名該類類型的變量。
- 重命名繼承器來(lái)重命名類繼承者。
- 重命名綁定窗體來(lái)重命名綁定到該類的 GUI 窗體。
如果您選擇重命名綁定到重命名類的任何對(duì)象,IntelliJ IDEA 將搜索相應(yīng)的項(xiàng)目并按照類型排序的對(duì)話框順序顯示它們。在每個(gè)對(duì)話框中,您可以選擇要更改的項(xiàng)目。
- 預(yù)覽并應(yīng)用更改。
重命名文件或目錄
- 在項(xiàng)目工具窗口中選擇所需的文件。
- 在主菜單或上下文菜單上選擇:重構(gòu)| 重命名或按 Shift+F6。
- 在打開(kāi)的重命名文件對(duì)話框中,指定新的文件名。選擇“在 comments 和 strings 中搜索”復(fù)選框,讓 IntelliJ IDEA 將更改應(yīng)用到注釋和字符串。
- 按預(yù)覽以觀察工具窗口可能發(fā)生的變化。按重構(gòu)以繼續(xù)。IntelliJ IDEA 查找文件名的所有出現(xiàn)并分別改變它們。
重命名文件也可以在編輯器選項(xiàng)卡中找到:
這樣做,要重命名的文件將被覆蓋。
重要筆記
- 局部變量被重新命名。
只有安裝了 Python 插件才支持此功能。
為了能夠在重命名局部變量時(shí)使用重命名對(duì)話框,你應(yīng)該在編輯器設(shè)置中禁用就地重構(gòu)。
- 只有安裝了 Python 插件才支持此功能。
重命名 Gherkin 步驟時(shí),請(qǐng)注意以下限制:- 步驟定義不應(yīng)包含正則表達(dá)式.
- 步驟名稱只能包含字母數(shù)字字符。
- 在不同的框架中,步驟定義應(yīng)該只有一個(gè)。
- 在步驟和步驟定義之間應(yīng)該有一個(gè) "一對(duì)一" 的映射。
更多建議: