From 8d681c7119e694ed4fc36886c968bdc12a53a46a Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 17 Jun 2016 15:07:55 +0200 Subject: [PATCH] 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. --- autoload/airline/extensions/tabline.vim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/autoload/airline/extensions/tabline.vim b/autoload/airline/extensions/tabline.vim index af03c62b..f7d83111 100644 --- a/autoload/airline/extensions/tabline.vim +++ b/autoload/airline/extensions/tabline.vim @@ -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()