Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Category:

Vim + GHC + Windows - 4

В предыдущих сериях:

Серия 1: Базовая установка Vim + Haskell. neco-ghc - рабочий автокомплит, но только для имен модулей и внешних символов.
Серия 2: ghcmod-vim - проверка текущего модуля на компилируемость.
Серия 3: Syntastic - нерабочая альтернатива ghcmod-vim

В этой серии: lushtags - навигация по проекту и автокомплит.

В пользовательский .vimrc дописываем:

Bundle 'bitc/lushtags'
Bundle 'Tagbar'

В проектный .vimrc ничего дописывать не надо - плаг-энд-плей.

cabal install lushtags

Вытягиваем exhuberant ctags windows binaries и кладем ctags.exe и нужные зависимости в PATH. Я в этот раз не стал заморачиваться и тупо положил в cabal/bin. Зависимости ctags.exe в комплекте не идут. Где искать эти самые зависимости, я не знаю - у меня длл (iconv.dll и т п) с нужными именами просто были на винте, и осталось только добавить их в PATH. Парадоксально, но ctags не используются - TagBar просто отказывается запускаться, если не находит ctags нужной версии в PATH.

Делаем :TagbarToggle - и у нас появляется текстовый браузер для текущего модуля.

Помимо этого, появляются все фичи поддержки ctags:

Работает навигация по символам: вне режима вставки Ctrl-] переходит к определению, а Сtrl-t возвращается обратно. Но теги, похоже, есть только для топ-левел определений.

В режиме вставки Ctrl-x Ctrl - ] комплитит, используя базу тегов. Но это неинтеллектуальный комплит. Т.е. напечатав Util. и нажав Ctrl-x Ctrl-], вы получите выбор не из всех символов модуля Util, а из всех тегов вообще.

На данный момент сконфигурировано 3 вида комплита:

Omnicompletion - Ctrl-X Ctrl-O. Рекламируется, что потенциально из этого можно сделать интеллектуальный комплит, привычный нам по IDE.

Tag Completion - Ctrl-X Ctrl-T. Комплитит текущее слово, используя базу тегов.

Local Keyword Completion - Ctrl-X Ctrl-P. Неинтеллектуально комплитит текущее слово, используя слова из текущего файла. Единственный пока способ комплитить локальные идентификаторы и параметры.

Есть ещё User Completion - Ctrl-X Ctrl-U, но он у нас не сконфигурен. Похоже, тот же Omnicompletion, но в профиль.
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 9 comments