Рубиновый рефакторинг в Vim - PullRequest
9 голосов
/ 17 июня 2010

Я большой поклонник Resharper в Visual Studio.У него есть несколько замечательных инструментов рефакторинга, похожих на то, что вы получаете в Eclipse для Java.Есть ли что-нибудь подобное для Ruby?Еще лучше, есть ли плагин или что-то в Vim, которое выполняет рефакторинг для кода Ruby, например, переименование всех экземпляров метода или переменной, переименование классов по всему миру и т. Д.

Ответы [ 4 ]

10 голосов
/ 04 апреля 2011

Вы можете проверить Vim Ruby Refactoring .У него есть несколько полезных шаблонов рефакторинга.

4 голосов
/ 17 июня 2010

Проблема с некоторыми рефакторингами в Ruby и других динамически типизированных языках заключается в отсутствии информации о типе рефакторинга.

Из записи в блоге Cedric Beust:

Несколько месяцев назад я предложил следующий фрагмент кода автору браузера для рефакторинга Ruby:

def f1(o)
    o.init
end

def f2(o)
    o.init
end

class C
   def init
      ...
   end
end

И я спросил его: «Если я переименую C.init в C.init2, как вы узнаете, какой o.init нужно переименовать в f1 и f2?» .

Его ответ был недвусмысленным:

"Эта проблема сложна для языка с динамической типизацией. Я думаю, что компьютер не может определить, должны ли они быть переименованы или нет."

"Поэтому браузер Ruby Refactoring предоставляет две функции: одна переименовывает все методы с одинаковыми именами, а другая переименовывает только методы и вызовы, которые относятся к классу. Первому переименовывается o.initв f1 и f2, и последний не переименовывает их. "

Прочитайте всю запись здесь: Динамический язык, рефакторинг IDE.Выберите один.

Сказав это, Jetbrains имеет Ruby Mine IDE , который имеет большое количество рефакторингов .Я не уверен, как они управляют этим сценарием все же.

Рефакторинг Ruby Mine http://img709.imageshack.us/img709/917/refactoringsonrubymine.png

Нет ничего похожего на VIM, который я знаю.

0 голосов
/ 17 июня 2010

Jetbrains выпускает интегрированную среду разработки RubyMine, которая обладает некоторыми базовыми функциями рефакторинга, далеко не так сильно, как мощное средство повышения резкости (удивительно, поскольку одна и та же компания выпускает оба продукта). Я склонен использовать рубин только после того, как наткнулся на него несколько месяцев назад.

0 голосов
/ 17 июня 2010

Мне также нравится Resharper для разработки на C # - я знаю, что Jetbrains выпустила Ruby IDE под названием RubyMine , который включает в себя инструменты рефакторинга и т. Д. Я хотел попробовать это, но я предпочитаю Textmate на моем Mac , Не уверен насчет инструментов VIM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...