diff --git a/autoload/tagbar.vim b/autoload/tagbar.vim index 0829845..482fd1b 100644 --- a/autoload/tagbar.vim +++ b/autoload/tagbar.vim @@ -1092,7 +1092,14 @@ function! s:ExecuteCtagsOnFile(fname, realfname, typeinfo) abort "intended to be in an argument, spaces in a single ctag_args "string would be ambiguous. Is the space an argument separator "or to be included in the argument - let ctags_args = [ '-f', + let ctags_args = [] + if exists('g:tagbar_ctags_options') + for value in g:tagbar_ctags_options + call add(ctags_args, '--options='.value) + endfor + fi + let ctags_args = ctags_args + [ + \ '-f', \ '-', \ '--format=2', \ '--excmd=pattern', diff --git a/doc/tagbar.txt b/doc/tagbar.txt index 22de2b7..a31161e 100644 --- a/doc/tagbar.txt +++ b/doc/tagbar.txt @@ -399,6 +399,26 @@ Example: let g:tagbar_ctags_bin = 'C:\Ctags5.8\ctags.exe' < + *g:tagbar_ctags_options* +g:tagbar_ctags_options +Default: undefined + +Use this option to specify a list of filenames to pass to ctags with the +'--options' flag. This is similar to the deffile key for tagbar type +extensions, see |tagbar-extend|, but acts globally. The special value 'NONE' +as the first entry disables reading of the default configuration files (e.g. +~/.ctags). Without this, if ~/.ctags and other files listed in +g:tagbar_ctags_options include some of the same patterns, tagbar might show +duplicate entries. + +Example: +> + let g:tagbar_ctags_options = ['NONE', split(&rtp,",")[0].'/ctags.cnf'] + +This causes ctags to use settings from ~/.vim/ctags.cnf, ignoring other +configuration files. + + *g:tagbar_left* g:tagbar_left~ Default: 0 @@ -1282,7 +1302,9 @@ ctags manually execute the following command in a terminal: ctags -f - --format=2 --excmd=pattern --extra= --fields=nksaSmt myfile < If you set the |g:tagbar_ctags_bin| variable you probably have to use the same -value here instead of simply "ctags". +value here instead of simply "ctags". Also, if you use +|:tagbar_ctags_options|, you should include the equivalent --options flag in +the call to ctags. If something more fundamental isn't working right then try running the |:messages| command to see if Tagbar printed any error messages that might