簡體   English   中英

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

[英]How to refactor in Sublime Text? (Ruby, Rails, JavaScript)

我以前用過Netbeans。 如何在Mac上的Sublime Text 2中進行一些重構(更改變量名,make代碼方法等)? 我現在正在做的是“選擇單詞的下一個實例”,但那僅僅是因為我只使用了一個文件

我為JavaScript重構編寫了這個插件https://github.com/sa/sublime-text-refactor

我想還有很多支持RoR的東西。

這里發生的事情是我只是通過grepping和find / replace進行重構。 我現在在Vim上,當我需要重構時,替換/ grepping仍然是我的方法。 我想這是IDE提供的功能之一,文本編輯器沒有。

對我有用的是“全部查找”選項(Ctrl + F和Alt + Enter)。

這樣您就可以編輯文本,同時編輯所有匹配項。

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

我所做的是用ctrl + click選擇多個變量,一旦你輸入,所有選中的字符串都是變化。 唯一的區別是您需要手動選擇它們。 但話又說回來 - 一旦你選擇了第一個,所有匹配變量都會突出顯示

只要您需要重構變量, 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文件中,我用字符串'sections'替換字符串'components' 'sections' 在我的情況下,我需要簡單的字符串替換,它不是變量重命名所以需要非常簡單,這種方法是非常有效的。 在重構之前調整此方法並備份代碼 ,因為它等同於通過grep查找/替換,沒有事先檢查,確保您正在做什么。

一旦完成重構,我建議刪除gulp任務,因為它可能非常危險! 警告

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM