Skip to content

Commit

Permalink
Allow prototype to be shown with currenttag
Browse files Browse the repository at this point in the history
  • Loading branch information
majutsushi committed Sep 9, 2012
1 parent a34acf4 commit d39a767
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
16 changes: 11 additions & 5 deletions autoload/tagbar.vim
Expand Up @@ -3489,11 +3489,13 @@ endfunction
function! tagbar#currenttag(fmt, default, ...) abort
if a:0 > 0
" also test for non-zero value for backwards compatibility
let longsig = a:1 =~# 's' || (type(a:1) == type(0) && a:1 != 0)
let fullpath = a:1 =~# 'f'
let longsig = a:1 =~# 's' || (type(a:1) == type(0) && a:1 != 0)
let fullpath = a:1 =~# 'f'
let prototype = a:1 =~# 'p'
else
let longsig = 0
let fullpath = 0
let longsig = 0
let fullpath = 0
let prototype = 0
endif

if !s:Init(1)
Expand All @@ -3503,7 +3505,11 @@ function! tagbar#currenttag(fmt, default, ...) abort
let tag = s:GetNearbyTag(0)

if !empty(tag)
return printf(a:fmt, tag.str(longsig, fullpath))
if prototype
return tag.getPrototype(1)
else
return printf(a:fmt, tag.str(longsig, fullpath))
endif
else
return a:default
endif
Expand Down
3 changes: 3 additions & 0 deletions doc/tagbar.txt
Expand Up @@ -611,6 +611,9 @@ tagbar#currenttag({format}, {default} [, {flags}])
's' If the tag is a function, the complete signature will be shown,
otherwise just "()" will be appended to distinguish functions from
other tags.
'p' Display the raw prototype instead of the parsed tag. This can be
useful in cases where ctags doesn't report some information, like
the signature. Note that this can get quite long.

For example, if you put the following into your statusline: >
%{tagbar#currenttag('[%s] ','')}
Expand Down

0 comments on commit d39a767

Please sign in to comment.