fre*_*gas 9 ruby vim refactoring
我是Visual Studio中Resharper的忠实粉丝.它有一些很棒的重构工具,类似于Eclipse for Java中的工具.Ruby有这样的东西吗?更好的是,Vim中是否有一个插件或其他东西可以重构Ruby代码,比如重命名方法或变量的所有实例,在全站点重命名类等等?
Ruby和其他动态类型化语言中的某些重构的问题是缺少重构类型的信息。
几个月前,我向Ruby重构浏览器的作者提供了以下代码片段:
def f1(o)
o.init
end
def f2(o)
o.init
end
class C
def init
...
end
end
Run Code Online (Sandbox Code Playgroud)
然后我问他:“如果我将C.init重命名为C.init2,您怎么知道必须在f1和f2中重命名哪个o.init?” 。
他的回答是明确的:
“对于动态类型的语言,此问题很难解决。我认为计算机无法确定是否必须重命名这些语言。”
“因此,Ruby Refactoring Browser提供了两个功能,一个是重命名所有具有相同名称的方法,另一个是仅重命名明确属于该类的方法和调用。前者在f1和f2中重命名了o.init,而后者没有重命名。重命名它们。”
在这里阅读整个条目:动态语言,重构IDE。选一个。
话虽如此,Jetbrains拥有Ruby Mine IDE,它具有大量的重构功能。我不确定他们如何管理这种情况。
Ruby Mine重构http://img709.imageshack.us/img709/917/refactoringsonrubymine.png
我知道,VIM没有类似之处。