aboutsummaryrefslogtreecommitdiff
path: root/vim/.vim/bundle/vim-airline/autoload/airline/extensions/tabline/unique_tail.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/.vim/bundle/vim-airline/autoload/airline/extensions/tabline/unique_tail.vim')
-rw-r--r--vim/.vim/bundle/vim-airline/autoload/airline/extensions/tabline/unique_tail.vim27
1 files changed, 27 insertions, 0 deletions
diff --git a/vim/.vim/bundle/vim-airline/autoload/airline/extensions/tabline/unique_tail.vim b/vim/.vim/bundle/vim-airline/autoload/airline/extensions/tabline/unique_tail.vim
new file mode 100644
index 0000000..e4a790d
--- /dev/null
+++ b/vim/.vim/bundle/vim-airline/autoload/airline/extensions/tabline/unique_tail.vim
@@ -0,0 +1,27 @@
+" MIT License. Copyright (c) 2013-2014 Bailey Ling.
+" vim: et ts=2 sts=2 sw=2
+
+function! airline#extensions#tabline#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
+ let tail = fnamemodify(name, ':t')
+ if has_key(tails, tail)
+ let duplicates[nr] = nr
+ endif
+ let tails[tail] = 1
+ let map[nr] = airline#extensions#tabline#default#wrap_name(nr, tail)
+ endif
+ endfor
+
+ for nr in values(duplicates)
+ let map[nr] = airline#extensions#tabline#default#wrap_name(nr, fnamemodify(bufname(nr), ':p:.'))
+ endfor
+
+ return map[a:bufnr]
+endfunction