Многим сильно не хватает навигации по методам/переменным в саблайме, специально для них есть такая вещь, как ctags. На маке утилита устанавливается через homebrew:

brew install ctags

Для работы в саблайме ставим плагин.

Теперь для индексации исходного кода нужно запустить команду ctags. Для rails-проектов нет смысла индексировать директории .git и logs. Запускаем индексацию и сохраняем результат в файл .tags:

ctags -R --exclude=.git --exclude=log -f .tags

Помимо директории проекта, удобно иметь доступ к гемам. Для индексации используемых гемов запускаем ctags еще раз:

ctags -R -f .gemtags `bundle show --paths`

Не забудьте добавить файлы ctags в file_exclude_patterns, чтобы они не мешали вам во время работы с проектом:

"file_exclude_patterns": [...".tags", ".gemtags"]

Для переидексации тегов внутри саблайма можно использовать хоткей: ctrl+t, ctrl+r. Для правильной переидексации изменяем запускаемую команду в настройках плагина:

"command"   :  "ctags -R --exclude=.git --exclude=log -f .tags && ctags -R -f .gemtags `bundle show --paths`"

Теперь переиндексация тегов будет работать правильно. Для “проваливания” в метод можно использовать пункт в контекстном меню или хоткей: ctrl+t, ctrl+t.

Отмечу, что индексация работает очень быстро: на большом проекте, с 60 гемами индексация занимает примерно 30 секунд.

Лично я долгое время обходился без ctags и сейчас пользуюсь ими не часто. Не забывайте, что в саблайме вы можете использовать go to symbol для перехода к методу внутри открытого файла (нажать ⌘+P и начать ввод, начиная с @). Так же, вы можете использовать @ не в начале строки, для перехода к методу в другом файле, например для перехода к методу index в home_controller.rb: homecont@in.

Кстати, ctags интегрируется и в другие редакторы, такие как vim.


comments powered by HyperComments