improve performance when showing tabs in the tabline (#326).
This commit is contained in:
parent
df2f33d6a5
commit
233e3c60ce
@ -180,6 +180,7 @@ function! s:get_visible_buffers()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let s:current_bufnr = -1
|
let s:current_bufnr = -1
|
||||||
|
let s:current_tabnr = -1
|
||||||
let s:current_tabline = ''
|
let s:current_tabline = ''
|
||||||
function! s:get_buffers()
|
function! s:get_buffers()
|
||||||
let cur = bufnr('%')
|
let cur = bufnr('%')
|
||||||
@ -220,9 +221,15 @@ function! s:get_buffers()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:get_tabs()
|
function! s:get_tabs()
|
||||||
|
let curbuf = bufnr('%')
|
||||||
|
let curtab = tabpagenr()
|
||||||
|
if curbuf == s:current_bufnr && curtab == s:current_tabnr
|
||||||
|
return s:current_tabline
|
||||||
|
endif
|
||||||
|
|
||||||
let b = airline#builder#new(s:builder_context)
|
let b = airline#builder#new(s:builder_context)
|
||||||
for i in range(1, tabpagenr('$'))
|
for i in range(1, tabpagenr('$'))
|
||||||
if i == tabpagenr()
|
if i == curtab
|
||||||
let group = 'airline_tabsel'
|
let group = 'airline_tabsel'
|
||||||
if g:airline_detect_modified
|
if g:airline_detect_modified
|
||||||
for bi in tabpagebuflist(i)
|
for bi in tabpagebuflist(i)
|
||||||
@ -242,11 +249,16 @@ function! s:get_tabs()
|
|||||||
endif
|
endif
|
||||||
call b.add_section(group, val.'%'.i.'T %{airline#extensions#tabline#title('.i.')} %)')
|
call b.add_section(group, val.'%'.i.'T %{airline#extensions#tabline#title('.i.')} %)')
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
call b.add_raw('%T')
|
call b.add_raw('%T')
|
||||||
call b.add_section('airline_tabfill', '')
|
call b.add_section('airline_tabfill', '')
|
||||||
call b.split()
|
call b.split()
|
||||||
call b.add_section('airline_tab', ' %999XX ')
|
call b.add_section('airline_tab', ' %999XX ')
|
||||||
call b.add_section('airline_tabtype', ' tabs ')
|
call b.add_section('airline_tabtype', ' tabs ')
|
||||||
return b.build()
|
|
||||||
|
let s:current_bufnr = curbuf
|
||||||
|
let s:current_tabnr = curtab
|
||||||
|
let s:current_tabline = b.build()
|
||||||
|
return s:current_tabline
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user