aboutsummaryrefslogtreecommitdiff
path: root/dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim
diff options
context:
space:
mode:
authorYaroslav <contact@yaroslavps.com>2020-03-31 17:52:49 +0300
committerYaroslav <contact@yaroslavps.com>2020-03-31 17:52:49 +0300
commit7217c7749e5403c9c7856c1d12c7986eb9c3b460 (patch)
treed60a112d9119a51af1cf5f590c5efad81751edf6 /dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim
parent9a3aa7b20a67c1b7991da1da9508ad5f78f76352 (diff)
downloadvimrice-7217c7749e5403c9c7856c1d12c7986eb9c3b460.tar.gz
vimrice-7217c7749e5403c9c7856c1d12c7986eb9c3b460.zip
Goodbye vim, been using neovim for ages now; home directory cleanup
Diffstat (limited to 'dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim')
-rw-r--r--dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim58
1 files changed, 58 insertions, 0 deletions
diff --git a/dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim b/dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim
new file mode 100644
index 0000000..5db53ee
--- /dev/null
+++ b/dotfiles/.local/share/nvim/site/autoload/airline/extensions/tagbar.vim
@@ -0,0 +1,58 @@
+" MIT License. Copyright (c) 2013-2018 Bailey Ling et al.
+" vim: et ts=2 sts=2 sw=2
+
+scriptencoding utf-8
+
+if !exists(':TagbarToggle')
+ finish
+endif
+
+let s:flags = get(g:, 'airline#extensions#tagbar#flags', '')
+let s:spc = g:airline_symbols.space
+let s:init=0
+
+" Arguments: current, sort, fname
+function! airline#extensions#tagbar#get_status(...)
+ let builder = airline#builder#new({ 'active': a:1 })
+ call builder.add_section('airline_a', s:spc.'Tagbar'.s:spc)
+ call builder.add_section('airline_b', s:spc.a:2.s:spc)
+ call builder.add_section('airline_c', s:spc.a:3.s:spc)
+ return builder.build()
+endfunction
+
+function! airline#extensions#tagbar#inactive_apply(...)
+ if getwinvar(a:2.winnr, '&filetype') == 'tagbar'
+ return -1
+ endif
+endfunction
+
+let s:airline_tagbar_last_lookup_time = 0
+let s:airline_tagbar_last_lookup_val = ''
+function! airline#extensions#tagbar#currenttag()
+ if get(w:, 'airline_active', 0)
+ if !s:init
+ try
+ " try to load the plugin, if filetypes are disabled,
+ " this will cause an error, so try only once
+ let a=tagbar#currenttag('%', '', '')
+ catch
+ endtry
+ unlet! a
+ let s:init=1
+ endif
+ " function tagbar#currenttag does not exist, if filetype is not enabled
+ if s:airline_tagbar_last_lookup_time != localtime() && exists("*tagbar#currenttag")
+ let s:airline_tagbar_last_lookup_val = tagbar#currenttag('%s', '', s:flags)
+ let s:airline_tagbar_last_lookup_time = localtime()
+ endif
+ return s:airline_tagbar_last_lookup_val
+ endif
+ return ''
+endfunction
+
+function! airline#extensions#tagbar#init(ext)
+ call a:ext.add_inactive_statusline_func('airline#extensions#tagbar#inactive_apply')
+ let g:tagbar_status_func = 'airline#extensions#tagbar#get_status'
+
+ call airline#parts#define_function('tagbar', 'airline#extensions#tagbar#currenttag')
+endfunction