diff --git a/autoload/airline/extensions/tabline/formatters/default.vim b/autoload/airline/extensions/tabline/formatters/default.vim index 1c013fc7..d8b2ec05 100644 --- a/autoload/airline/extensions/tabline/formatters/default.vim +++ b/autoload/airline/extensions/tabline/formatters/default.vim @@ -3,13 +3,8 @@ scriptencoding utf-8 -let s:fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1) -let s:fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0) -let s:buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ') -let s:buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0) -let s:buf_modified_symbol = g:airline_symbols.modified - function! airline#extensions#tabline#formatters#default#format(bufnr, buffers) + let fnametruncate = get(g:, 'airline#extensions#tabline#fnametruncate', 0) let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':~:.') let _ = '' @@ -20,15 +15,15 @@ function! airline#extensions#tabline#formatters#default#format(bufnr, buffers) " Neovim Terminal let _ = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '') else - if s:fnamecollapse + if get(g:, 'airline#extensions#tabline#fnamecollapse', 1) " Does not handle non-ascii characters like Cyrillic: 'D/Учёба/t.c' "let _ .= substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g') let _ .= pathshorten(fnamemodify(name, fmod)) else let _ .= fnamemodify(name, fmod) endif - if a:bufnr != bufnr('%') && s:fnametruncate && strlen(_) > s:fnametruncate - let _ = strpart(_, 0, s:fnametruncate) + if a:bufnr != bufnr('%') && fnametruncate && strlen(_) > fnametruncate + let _ = strpart(_, 0, fnametruncate) endif endif @@ -36,11 +31,15 @@ function! airline#extensions#tabline#formatters#default#format(bufnr, buffers) endfunction function! airline#extensions#tabline#formatters#default#wrap_name(bufnr, buffer_name) - let _ = s:buf_nr_show ? printf(s:buf_nr_format, a:bufnr) : '' + let buf_nr_format = get(g:, 'airline#extensions#tabline#buffer_nr_format', '%s: ') + let buf_nr_show = get(g:, 'airline#extensions#tabline#buffer_nr_show', 0) + let buf_modified_symbol = g:airline_symbols.modified + + let _ = buf_nr_show ? printf(buf_nr_format, a:bufnr) : '' let _ .= substitute(a:buffer_name, '\\', '/', 'g') if getbufvar(a:bufnr, '&modified') == 1 - let _ .= s:buf_modified_symbol + let _ .= buf_modified_symbol endif return _ endfunction