]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/plugin/buftabline.vim
Vim scripts refactoring
[dotfiles.git] / vim / .vim / plugin / buftabline.vim
index 4fb131802a35e025c992b2a148a7b3b66307f6c8..60c067b7a9a16b077f3fa32ba6190c27751a659b 100644 (file)
@@ -1,29 +1,3 @@
-if exists('*<SID>BufTabLine') | finish | endif
-
-function! s:BufTabline()
-    redir => bufsRaw
-    silent buffers
-    redir END
-    let bufs = []
-    for buf in split(bufsRaw, "\n")[:16]
-        let leftIdx = stridx(buf, '"')
-        let rightIdx = strridx(buf, '"')
-        let filename = substitute(buf[leftIdx + 1 : rightIdx - 1], "%", "%%", "g")
-        let linenum = split(buf[rightIdx:], " ")[-1]
-        let attrs = split(buf[:leftIdx-1], '\s\+')
-        let attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")')
-        let attrs = (len(attrs) == 1) ? attrs[0] : attrs[0] . ":" . join(attrs[1:], "")
-        let attrs = "%#TabLine#" . attrs . "%*"
-        if len(filename) > 20 | let filename = "<" . filename[-(20-1):] | endif
-        let hl = (match(attrs, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#"
-        let bufs = add(bufs, attrs . hl . filename . ":" . linenum . "%*")
-    endfor
-    return join(bufs, "  ")
-endfunction
-
-function! BufTabline()
-    return s:BufTabline()
-endfunction
-
+if exists("*buftabline#do") | finish | endif
 set showtabline=2
-set tabline=%!BufTabline()
+set tabline=%!buftabline#do()