RFactor:让文本编辑器支持Ruby重构
程序员文章站
2022-04-27 16:49:18
...
RFactor是一个Ruby gem,目的是为了在你喜爱的文本编辑器中提供自动重构的功能。难道我们没有支持重构的IDEs吗?当然有,但是RFactor的开发者Fabio Kung认为“大多数的Ruby开发者们不会去使用IDEs,而且文本编辑器已经很好了”。
自动重构并不是一个无足轻重的任务,它涉及到了很多复杂的行为,如分析源代码,以确定范围和用法。此外,还需要有一个好的战略,以确保修改的代码不会搞乱用户的格式。
现在,RFactor还很年轻,提供的方法有一定的局限性,它的目标是结合几个编辑器(主要是Textmate),提供简单的重构:
- 提取方法
- 提取变量
- 提取类
- 提取模块
- 使用ack来重命名
- 使用ack来移动
RFactor使用ruby_parser,用于提取ASTs。
code = Rfactor::Code.new(CODE) new_code = code.extract_method :name => 'common_behavior', :start => 10, :end => 15 # new_code should contain the changed code. The content between # lines 10 and 15 are extracted to the new method called common_behavior