如何在Sublime Text中重构? (Ruby,Rails,JavaScript)

时间:2013-09-10 12:08:17

标签: javascript ruby-on-rails ruby sublimetext2

之前我使用过Netbeans。如何在Mac上的Sublime Text 2中进行一些重构(更改变量名,make代码方法等)?我现在正在做的是“选择单词的下一个实例”,但那只是因为我只使用了一个文件

5 个答案:

答案 0 :(得分:7)

我为JavaScript重构编写了这个插件 https://github.com/s-a/sublime-text-refactor

我想还有很多支持RoR的内容。

答案 1 :(得分:5)

这里发生的事情是我只是通过grepping和find / replace进行重构。我现在在Vim上,当我需要重构时,替换/ grepping仍然是我的方法。我想这是IDE提供的文本编辑器不具备的功能之一。

答案 2 :(得分:2)

除了ctrl + click,你还可以使用ctrl + D.适合我。

答案 3 :(得分:0)

我所做的是用ctrl + click选择多个变量,一旦你输入,所有选中的字符串都是变化。唯一的区别是您需要手动选择它们。但话又说回来 - 一旦你选择了第一个,所有匹配的变量都会突出显示

答案 4 :(得分:0)

只要您需要重构变量,sublime-text-refactor插件就可以正常工作。如果你需要重构普通字符串,它就不起作用。例如,如果您需要将文件路径'components'中的'file/*/components'替换为'sections',则插件将无法帮助您,因为它希望重命名变量(控制台指示我何时尝试重构:无法定位components变量)。

我的回答与崇高文本没有关系,但当我找到适合的解决方案时,我被引导到这个线程,所以它可能在同样的情况下帮助人们。 Sublime文本不一定是重构的解决方案。

在NodeJs中,我所做的是确保跨文件重构是为了创建一个替换值并重写文件的gulp任务:

var gulpReplace = require('gulp-replace');

gulp.task('refactor', function(){
  gulp.src(['app/**/*.js'], { base: './' })
  .pipe(gulpReplace(/components/g, 'sections'))
  .pipe(gulp.dest('./'));
});

$gulp refactor

这样做,在app目录下的所有js文件中,我用字符串'components'替换字符串'sections'。在我的情况下,我需要简单的字符串替换,它不是变量重命名所以需要非常简单,这种方法是非常有效的。将此方法调整为您的情况并在重构之前备份代码,因为它等同于通过grep查找/替换,没有事先检查,确保您正在做什么。

我建议您在完成重构后删除gulp任务,因为它可能非常危险!注意