Exumerant Ctags не работает с Ruby, вы можете видеть, что в коде ruby.c много хаков, и в основном он не распознает многие случаи. Одним из самых важных является этот бит:
class SomeModule::SomeClass
end
Ctags генерирует:
SomeModule someclass.rb /^class SomeModule::SomeClass$/;" c
что неверно. Правильная и ожидаемая запись:
SomeClass someclass.rb /^class SomeModule::SomeClass$/;" c
Это очень ограничивает. Есть некоторые исправления для доступных ctags, которые не работают, например. https://github.com/xtao/overlay/blob/master/dev-util/ctags/files/ctags-5.5.4-ruby-classes.patch, но, глядя на ctags ruby codebase, это действительно требует полной перезаписи.
Итак, я играл с другим вариантом https://github.com/rdoc/rdoc-tags, который работает лучше, но он медленный. Я имею в виду действительно МЕДЛЕННО. Создание тегов в моем проекте составляет 2 секунды с помощью ctags, но один час с помощью этого инструмента. На самом деле.
Я нашел один старый проект, который разбирал Ruby самостоятельно и генерировал теги, но это было только для Ruby 1.8. Это было медленнее, чем ctags, но не так уж плохо.
Итак, я ищу некоторые альтернативы. Знаете ли вы о каких-либо других рабочих генераторах ruby ctags, которые дают вам правильную производительность и быстро?
Спасибо!
Изменить. Я нашел очень хороший проект, который работает с Ruby 1.9+ и является точным и быстрым. Я рекомендую: