It is a tool to create ctags-compatible tag information based on jsdoc comments.
Get node.js and clone this repository - no strings attached.
Use node /path/to/jsdoc-tags --help
to get usage informations.
Can I use it with tagbar?
Of course, my friend, it's perfectly possible. Just add the following lines to your .vimrc
:
let g:tagbar_type_javascript = {
\ 'ctagsbin': 'node',
\ 'ctagsargs': '/path/to/jsdoc-tags -aq',
\ 'kinds': [
\ 'c:classes',
\ 'n:namespaces',
\ 'p:properties:0:1',
\ 'f:functions:0:1',
\ 'e:event',
\ ],
\ 'kind2scope': {
\ 'n' : 'namespace',
\ 'c' : 'class'
\ },
\ 'scope2kind': {
\ 'namespace': 'n',
\ 'class': 'c'
\ },
\ 'sro': '.',
\ 'replace': 1
\ }
We have to make sure that all possible types are listed in the 'kinds' section or tagbar will crash.
Can I use it with Ctrlp.vim?
Totally. Just enable the tag extension and fly.
let g:ctrlp_extensions = ['tag']
You can also tell CtrlP to start with the tags. Just add the following line to your vim configuration:
let g:ctrlp_cmd = 'CtrlPTag'
It's very simple. Just add the following script to your .vimrc
:
autocmd BufWritePost *.js :call s:UpdateTags()
function! s:UpdateTags() abort
let s:tagfiles = tagfiles()
for s:file in s:tagfiles
let s:path = fnamemodify(s:file, ':p:h')
let s:cmd = 'node /path/to/jsdoc-tags -qpi -d ' . s:path . ' ' . expand('%:p')
let s:result = system(s:cmd)
if s:result != ''
echoerr s:result
endif
endfor
endfunction
Or you can use easytags.vim, but I haven't tested it.
Yes, you can. Just change the template using the --template
option. There is still the original JsDoc template at templates/jsdoc/
.