Как заставить тэгбар работать с js файлами
Если я открою файл с расширением.html, tagbar работает нормально.
Если я открою файл с расширением.js, то tagbar ничего не отобразит. Просто переименуйте расширение файла в.html, и оно заработает.
Как я могу заставить tagbar работать с файлами.js?
3 ответа
Какой тип файла (
:set ft?
) файла, над которым вы работаете?У тебя есть
ctags
и / илиjsctags
установлен и работает?Делать
$ ctags -R .
и / или$ jsctags .
выполняется из того места, где вы положили свои файлы JavaScript создатьtags
файл?Если да, что это содержит?
Если вы используете
jsctags
это актуально? Что насчет nodejs?
Вы пробовали taglist-plus? Он использует jsctags, и он работал очень хорошо в течение короткого времени, когда у меня был установлен этот плагин.
Столкнулся с этой проблемой при использовании
vim
,
tagbar
с участием
Arduino
исходный код в файлах * .ino при редактировании
Tasmota
код.
Мне пришлось осознать две вещи:
- Заставьте ctags обрабатывать новое расширение файла (см. /questions/33483191/dobavlenie-novogo-yazyika-v-ctags-ne-rabotaet/57592901#57592901): для
ctags-universal
, создайте файл~/.ctags.d/local.ctags
с участием--langmap=c++:+.ino
в этом. - Сообщите панели тегов, как обрабатывать тип файла vim
arduino
(запросить тип файла в vim, используя:set filetype?
) в.vimrc
:
let g:tagbar_type_arduino = {
\ 'ctagstype' : 'c++',
\ 'kinds' : [
\ 'd:macros:1:0',
\ 'p:prototypes:1:0',
\ 'g:enums',
\ 'e:enumerators:0:0',
\ 't:typedefs:0:0',
\ 'n:namespaces',
\ 'c:classes',
\ 's:structs',
\ 'u:unions',
\ 'f:functions',
\ 'm:members:0:0',
\ 'v:variables:0:0'
\ ],
\ 'sro' : '::',
\ 'kind2scope' : {
\ 'g' : 'enum',
\ 'n' : 'namespace',
\ 'c' : 'class',
\ 's' : 'struct',
\ 'u' : 'union'
\ },
\ 'scope2kind' : {
\ 'enum' : 'g',
\ 'namespace' : 'n',
\ 'class' : 'c',
\ 'struct' : 's',
\ 'union' : 'u'
\ }
\ }
Найдите инструкции и это определение в
:help tagbar -> tagbar-extend
. Javascript и другие определения приведены в
~/.vim/bundle/tagbar/autoload/tagbar/types/uctags.vim
Могут быть и другие способы сделать это. У меня работает (тм).
Осталось только одно: снова открыть
*.ino
исходный файл, нажмите
<F8>
чтобы показать панель тегов.
HTH