Tabline performance: only pass in visible buffers to formatters

This only passes in the list of visible buffers on that tab, which
reduces the processing a lot if you have a lot of buffers opened.
This commit is contained in:
Daniel Hahler 2016-06-17 15:07:55 +02:00
parent 7b9b68f15d
commit 8d681c7119
1 changed files with 6 additions and 3 deletions

View File

@ -138,14 +138,17 @@ function! airline#extensions#tabline#title(n)
if empty(title)
let buflist = tabpagebuflist(a:n)
let winnr = tabpagewinnr(a:n)
return airline#extensions#tabline#get_buffer_name(buflist[winnr - 1])
let all_buffers = airline#extensions#tabline#buflist#list()
return airline#extensions#tabline#get_buffer_name(
\ buflist[winnr - 1],
\ filter(buflist, 'index(all_buffers, v:val) != -1'))
endif
return title
endfunction
function! airline#extensions#tabline#get_buffer_name(nr)
return airline#extensions#tabline#formatters#{s:formatter}#format(a:nr, airline#extensions#tabline#buflist#list())
function! airline#extensions#tabline#get_buffer_name(nr, buffers)
return airline#extensions#tabline#formatters#{s:formatter}#format(a:nr, a:buffers)
endfunction
function! airline#extensions#tabline#new_builder()