Make autoshowtag more flexible, closes #152

This commit is contained in:
Jan Larres 2013-06-25 16:32:33 +12:00
parent 2ebd2a1392
commit 82a932406f
2 changed files with 11 additions and 8 deletions

View File

@ -1679,7 +1679,7 @@ function! s:OpenWindow(flags) abort
if tagbarwinnr != -1
if winnr() != tagbarwinnr && jump
call s:winexec(tagbarwinnr . 'wincmd w')
call s:HighlightTag(1, 1, curline)
call s:HighlightTag(g:tagbar_autoshowtag != 2, 1, curline)
endif
call s:LogDebugMessage("OpenWindow finished, Tagbar already open")
return
@ -1722,7 +1722,7 @@ function! s:OpenWindow(flags) abort
endif
call s:AutoUpdate(curfile, 0)
call s:HighlightTag(1, 1, curline)
call s:HighlightTag(g:tagbar_autoshowtag != 2, 1, curline)
if !(g:tagbar_autoclose || autofocus || g:tagbar_autofocus)
call s:winexec('wincmd p')
@ -2820,7 +2820,7 @@ function! s:HighlightTag(openfolds, ...) abort
return
endif
if g:tagbar_autoshowtag || a:openfolds
if g:tagbar_autoshowtag == 1 || a:openfolds
call s:OpenParents(tag)
endif

View File

@ -501,11 +501,14 @@ just choose other characters in that case):
g:tagbar_autoshowtag~
Default: 0
If this variable is set and the current tag is inside of a closed fold then
the folds will be opened as much as needed for the tag to be visible so it can
be highlighted. If it is not set then the folds won't be opened and the parent
tag will be highlighted instead. You can use the |:TagbarShowTag| command to
open the folds manually.
If this variable is set to 1 and the current tag is inside of a closed fold
then the folds will be opened as much as needed for the tag to be visible so
it can be highlighted. If it is set to 0 then the folds will only be opened
when opening the Tagbar window and the current tag is insided a closed fold,
otherwise the folds won't be opened and the parent tag will be highlighted
instead. If it is set to 2 then the folds will never be opened automatically.
You can use the |:TagbarShowTag| command to open the folds manually.
Example:
>