1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-04-14 23:49:19 +08:00
2017-03-03 21:54:43 +08:00

60 lines
1.8 KiB
VimL

"=============================================================================
" tabline.vim --- core#tabline Layer file for SpaceVim
" Copyright (c) 2012-2016 Shidong Wang & Contributors
" Author: Shidong Wang < wsdjeg at 163.com >
" URL: https://spacevim.org
" License: MIT license
"=============================================================================
""
" @section core#tabline, layer-core-tabline
" @parentsection layers
" This layer provides default tabline for SpaceVim
let s:messletters = SpaceVim#api#import('messletters')
let s:file = SpaceVim#api#import('file')
function! s:tabname(id) abort
let id = s:messletters.bubble_num(a:id, g:spacevim_buffer_index_type) . ' '
let fn = fnamemodify(bufname(a:id), ':t')
if g:spacevim_enable_tabline_filetype_icon
let icon = s:file.fticon(fn)
if !empty(icon)
let fn = icon . ' ' . fn
endif
endif
if empty(fn)
return 'No Name'
else
return id . fn
endif
endfunction
function! SpaceVim#layers#core#tabline#get() abort
let t = ' '
let nr = tabpagenr()
" if nr > 1
for i in range(1, nr)
let buflist = tabpagebuflist(i)
let winnr = tabpagewinnr(i)
let name = fnamemodify(bufname(buflist[winnr - 1]), ':t')
let id = s:messletters.bubble_num(i, g:spacevim_buffer_index_type)
let icon = s:file.fticon(name)
if !empty(icon)
let name = icon . ' ' . name
endif
let t .= id . ' ' . name
if i == nr
let t .= '%#TabLineSel#'
else
let t .= '%#TabLine# | '
endif
endfor
let t .= '%#TabLineFill#%T'
return t
endfunction
function! SpaceVim#layers#core#tabline#config() abort
set tabline=%!SpaceVim#layers#core#tabline#get()
endfunction