2010-06-17 24 views
9

我是Visual Studio中Resharper的忠實粉絲。它有一些很棒的重構工具,類似於你在Eclipse for Java中獲得的。 Ruby有沒有這樣的事情?更好的是,Vim中是否有插件或其他功能可以重構Ruby代碼,如重命名方法或變量的所有實例,重命名站點級別等?Ruby中的Vim重構

回答

10

您可以檢出Vim Ruby Refactoring。它有幾個有用的重構模式。

+0

我也使用插件,但是提交活動似乎只到2011年12月:( – 2014-05-09 07:14:25

0

我也喜歡用於C#開發的Resharper--我知道Jetbrains發佈了一個名爲RubyMine的Ruby IDE,其中包含重構工具等。我一直想要嘗試一下,但我更喜歡我的Mac上的Textmate。但是不確定關於VIM工具。

0

Jetbrains的拿出一個IDE RubyMine的確實有重構的一些基本功能,ReSharper的的沒有在附近的電源(奇怪,因爲它的同一家公司撲滅農資兩者)。我往往在幾個月後才絆倒它才使用了rubymine。

4

Ruby和其他動態類型語言中的一些重構問題是缺少被重構類型的信息。

From Cedric Beust blog entry:

幾個月前,我給下面的代碼片段Ruby的重構瀏覽器的作者:

def f1(o) 
    o.init 
end 

def f2(o) 
    o.init 
end 

class C 
    def init 
     ... 
    end 
end 

我問他:「如果我將C.init重命名爲C.init2,您怎麼知道哪個o.init必須在f1和f2中重命名?「

他的回答很明確:「這個問題很難動態類型語言,我認爲計算機不能確定是否這些必須被重命名或沒有。」

「因此紅寶石重構瀏覽器提供了兩個功能,一個是重命名具有相同名稱的所有方法,另一種是隻重命名方法和調用克利屬於類,前者重命名o.init在f1和f2,而後者不會重命名它們。「

在這裏閱讀整項:Dynamic language, refactoring IDE. Pick one.

話雖如此,Jetbrains的具有其中有好多個refactoringsRuby Mine IDE。我不確定他們如何管理這種情況。

Ruby Mine refactorings http://img709.imageshack.us/img709/917/refactoringsonrubymine.png

沒有什麼了VIM,我所知道類似。