![](/img/trans.png)
[英]Sublime Text Language (JavaScript (Rails)) Embedded Ruby in String
[英]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.