mirror of
1
0
Fork 0
ultimate-vim/sources_non_forked/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim

33 lines
993 B
VimL
Raw Normal View History

2016-02-17 14:02:39 -05:00
" MIT License. Copyright (c) 2013-2016 Bailey Ling.
" vim: et ts=2 sts=2 sw=2
2015-02-24 05:45:22 -05:00
function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffers)
let duplicates = {}
let tails = {}
let map = {}
for nr in a:buffers
let name = bufname(nr)
if empty(name)
let map[nr] = '[No Name]'
else
2015-07-13 06:22:46 -04:00
let tail = fnamemodify(name, ':s?/\+$??:t')
if has_key(tails, tail)
let duplicates[nr] = nr
endif
let tails[tail] = 1
2015-02-24 05:45:22 -05:00
let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, tail)
endif
endfor
for nr in values(duplicates)
2015-02-24 05:45:22 -05:00
let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, fnamemodify(bufname(nr), ':p:.'))
endfor
2015-03-14 16:02:10 -04:00
if has_key(map, a:bufnr)
return map[a:bufnr]
endif
" if we get here, the buffer list isn't in sync with the selected buffer yet, fall back to the default
return airline#extensions#tabline#formatters#default#format(a:bufnr, a:buffers)
endfunction