doctorjs(он же jsctags) не работает с vim+tagbar
Я использую Windows 7 64bit...
Я установил nodejs 0.6.11 установщиком MSI, путь установки - "C:\Program Files (x86)\nodejs", он был автоматически добавлен установщиком в мой%PATH%, я установил doctorjs, выполнив следующие действия:
- Я скопировал файлы doctorjs в папку "C:\Program Files (x86)\nodejs\doctorjs"
- Я создал jsctags.cmd, заполненный контентом, скопированным с https://gist.github.com/1438882
- Я добавил следующие строки в мой _vimrc:
let g: tagbar_type_javascript = {\ 'ctagsbin': 'C: \ Program Files (x86) \ nodejs \ jsctags.cmd' \}
Проблема в том, что когда я запускаю jsctags.cmd "{My js folder}", он генерирует файл тегов только с содержимым ниже:
! _TAG_FILE_FORMAT 2 / расширенный формат /!_TAG_FILE_SORTED 0 /0= не отсортировано, 1= отсортировано, 2= свернуто /!_TAG_PROGRAM_AUTHOR Патрик Уолтон /pwalton@mozilla.com/!_TAG_PROGRAM_NAME jsctags //!_Tub_GR_GR_GR_GR / jsctags / GitHub репозиторий /!_TAG_PROGRAM_VERSION 0.1 //
И когда я запускаю: tagbaropen в vim, он ничего не показывает для текущего файла js..
Пожалуйста, направьте меня туда, где я ошибся, спасибо!
2 ответа
Поскольку вы получаете какой-то вывод, похоже, что вы правильно реализовали суть. Но, может быть, ваше ожидание того, как использовать его в командной строке, отличается от того, как оно действительно работает?
FYI: jsctags.cmd "{my js folder}"
возвращает пустой файл тегов на моей машине тоже. Я не думаю, что командный интерфейс еще очень зрелый... похоже, создание файла тегов для всей папки невозможно - пока...
Пытаться jsctags.cmd "{file}"
, Это должно создать населенный пункт tag
файл.
Также обратите внимание, что tagbar вызывает jsctags следующим образом: jsctags -f - {file}
, Это передает поток на стандартный вывод. Так что, если вы отлаживаете, попробуйте эту форму команды.
Как еще один совет отладки, измените ваш пакетный файл для вывода отладочной информации. то есть: добавить строки, как это:
echo "%~dp0"\"node.exe" "D:\opt\node\doctorjs\bin\jsctags.js" %* > d:\debug.txt
Ищу в d:\debug.txt
позволит вам увидеть, как выглядит команда, как она вызывается из тэга.
Кстати: суть, которую вы используете, была моей... Мне интересно, не достаточно ли я протестировал этот пакетный файл с папками, в которых есть пробелы. Проведите несколько тестов в обеих папках с пробелами и без них, чтобы увидеть, есть ли разница. Если вы поймете, как это работает / не работает, дайте мне знать, и я смогу продолжить расследование.
Ваша проблема может быть связана с коммитом нарцисса, который вы клонировали для doctorjs. Перейдите в папку narcissus в папке doctorjs и запустите
git checkout 4ae5aff8b3
Это должно переключить голову на правильную версию файла.