如何在崇高文本中重构?(Ruby,Rails,JavaScript)



我以前用过 Netbeans。如何在 Mac 上的 Sublime Text 2 中进行一些重构(更改变量名称、从代码中制作方法等)?我现在正在做的是"选择单词的下一个实例",但这只是因为我只使用一个文件

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

我想还有很多支持RoR。

对我有用的是"查找全部"选项(Ctrl + F和Alt + Enter)。

通过这种方式,您可以编辑文本,并且所有匹配项将同时编辑。

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

除了ctrl+单击,您还可以使用ctrl + D。为我工作。

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

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

我的答案与崇高的文本无关,但是当我找到合适的解决方案时,我被引导到这个线程,因此它可能会对同一情况下的人有所帮助。崇高的文本不一定是重构的解决方案。

在 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任务,因为它可能非常危险!谨慎

最新更新