formatter: tabnr expects a number bot got List

Make sure, that the second argument is actually a number and not a list.
Note: even when fixing this, the tabpage still shows some strange output
e.g. currently
 1   1.%{len(tabpagebuflist(1))} 

In a vim window. Not sure, why Vim does no longer evaluate those %{..}
sections. Perhaps some change in Vim?

closes #2616
This commit is contained in:
Christian Brabandt 2023-01-09 14:52:31 +01:00
parent 9007d19ab7
commit 4f5b641710
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09

View File

@ -4,12 +4,14 @@
scriptencoding utf-8
function! airline#extensions#tabline#formatters#tabnr#format(tab_nr_type, nr)
" TODO: Is this actually useful? Or should we remove this one?
let nr = type(a:nr) == type([]) ? a:nr[0] : a:nr
let spc=g:airline_symbols.space
if a:tab_nr_type == 0 " nr of splits
return spc. '%{len(tabpagebuflist('.a:nr.'))}'
return spc. '%{len(tabpagebuflist('.nr.'))}'
elseif a:tab_nr_type == 1 " tab number
return spc. a:nr
return spc. nr
else "== 2 splits and tab number
return spc. a:nr. '.%{len(tabpagebuflist('.a:nr.'))}'
return spc. nr. '.%{len(tabpagebuflist('.nr.'))}'
endif
endfunction