Рефакторинг Ruby в Vim

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

9
задан Keith Pinson 14 September 2012 в 16:00
поделиться

3 ответа

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

Из записи блога Седрика Буста:

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

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 Browser предоставляет две функции, одну. переименовывает все методы с одинаковыми именами, а другой переименовывает только те методы и вызовы, которые принадлежат классу cleary. Первый переименовывает o.init в f1 и f2, а второй не переименовывает их ».

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

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

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

Насколько мне известно, для VIM нет ничего похожего.

5
ответ дан 4 December 2019 в 13:45
поделиться

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

0
ответ дан 4 December 2019 в 13:45
поделиться

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

0
ответ дан 4 December 2019 в 13:45
поделиться