cache open buffers into a dictionary and loop over the keys

This commit is contained in:
Bailey Ling 2015-02-18 23:02:17 -05:00
parent 63e309130a
commit a4d69d53b5

View File

@ -2,6 +2,14 @@
" vim: et ts=2 sts=2 sw=2 " vim: et ts=2 sts=2 sw=2
let s:excludes = get(g:, 'airline#extensions#tabline#excludes', []) let s:excludes = get(g:, 'airline#extensions#tabline#excludes', [])
let s:buffers = {}
for nr in range(1, bufnr('$'))
let s:buffers[nr] = 1
endfor
autocmd BufAdd * let s:buffers[expand('<abuf>')] = 1
autocmd BufDelete * let nr = expand('<abuf>') | if has_key(s:buffers, nr) | unlet s:buffers[nr] | endif
function! airline#extensions#tabline#buflist#invalidate() function! airline#extensions#tabline#buflist#invalidate()
unlet! s:current_buffer_list unlet! s:current_buffer_list
@ -13,8 +21,8 @@ function! airline#extensions#tabline#buflist#list()
endif endif
let buffers = [] let buffers = []
let cur = bufnr('%') for key in keys(s:buffers)
for nr in range(1, bufnr('$')) let nr = str2nr(key)
if buflisted(nr) && bufexists(nr) if buflisted(nr) && bufexists(nr)
let toadd = 1 let toadd = 1
for ex in s:excludes for ex in s:excludes