Merge branch 'master' into dart-ctags

This commit is contained in:
John Castronuovo 2020-08-26 20:18:52 +02:00
commit 29e3cef248
No known key found for this signature in database
GPG Key ID: 96DDA7C449703A49
2 changed files with 48 additions and 4 deletions

View File

@ -1045,6 +1045,7 @@ function! s:CloseWindow() abort
" Other windows are open, only close the tagbar one
let curfile = tagbar#state#get_current_file(0)
let s:is_maximized = 0
close
@ -1326,9 +1327,9 @@ function! s:ExecuteCtagsOnFile(fname, realfname, typeinfo) abort
" universal-ctags deprecated this argument name
if s:ctags_is_uctags
let ctags_args += [ '--extras=' ]
let ctags_args += [ '--extras=+F' ]
else
let ctags_args += [ '--extra=' ]
let ctags_args += [ '--extra=', '--file-scope=yes' ]
endif
let ctags_args = ctags_args + [
@ -1337,7 +1338,6 @@ function! s:ExecuteCtagsOnFile(fname, realfname, typeinfo) abort
\ '--format=2',
\ '--excmd=pattern',
\ '--fields=nksSaf',
\ '--file-scope=yes',
\ '--sort=no',
\ '--append=no'
\ ]
@ -3526,6 +3526,32 @@ endfunction
" Autoload functions {{{1
" Wrappers {{{2
function! tagbar#GetTagNearLine(lnum, ...) abort
if a:0 > 0
let fmt = a:1
let longsig = a:2 =~# 's'
let fullpath = a:2 =~# 'f'
let prototype = a:2 =~# 'p'
else
let fmt = '%s'
let longsig = 0
let fullpath = 0
let prototype = 0
endif
let taginfo = s:GetNearbyTag(0, 1, a:lnum)
if empty(taginfo)
return ''
endif
if prototype
return taginfo.getPrototype(1)
else
return printf(fmt, taginfo.str(longsig, fullpath))
endif
endfunction
function! tagbar#ToggleWindow(...) abort
let flags = a:0 > 0 ? a:1 : ''
call s:ToggleWindow(flags)
@ -3730,7 +3756,7 @@ function! tagbar#currenttagtype(fmt, default) abort
let typeinfo = tag.fileinfo.typeinfo
let plural = typeinfo.kinds[typeinfo.kinddict[kind]].long
if has_key(plural)
if has_key(s:singular_types, plural)
let singular = s:singular_types[plural]
else
let singular = plural

View File

@ -320,6 +320,24 @@ FUNCTIONS *tagbar-functions*
update tag information. This should be called after you have used
|tagbar#currenttag| manually.
*tagbar#GetTagNearLine()*
Get the current tag near the specified line number (lnum). Optionally
takes a fmt and signature specification using the same method as the
|tagbar#currenttag()| function. Defaults to GetTagNearLine(lnum, '%s', '').
This could be used in a custom foldtext function to show the current tag
the fold current fold is located in.
Example:
>
set foldtext=MyFoldFunc()
function! MyFoldFunc()
let tag = tagbar#GetTagNearLine(v:foldend, '%s', 'p')
let lines = v:foldend - v:foldstart + 1
return tag . ' --- ' . lines . ' lines'
endfunction
<
------------------------------------------------------------------------------
KEY MAPPINGS *tagbar-keys*