1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 02:40:05 +08:00

Add statusline

This commit is contained in:
wsdjeg 2017-05-17 22:56:14 +08:00
parent 7d6574f2b1
commit c9e5d83b1b
4 changed files with 29 additions and 10 deletions

View File

@ -69,7 +69,6 @@ function! s:self.hide_in_normal(name) abort
return
endif
if &termguicolors || has('gui_running')
let g:wsd = self.group2dict('Normal')
let bg = self.group2dict('Normal').guibg
let group.guifg = bg
let group.guibg = bg

View File

@ -126,7 +126,7 @@ function! SpaceVim#autocmds#VimEnter() abort
if get(g:, '_spacevim_statusline_loaded', 0) == 1
set laststatus=2
call SpaceVim#layers#core#statusline#def_colors()
set statusline=%!SpaceVim#layers#core#statusline#get(1)
setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
endif
if get(g:, '_spacevim_tabline_loaded', 0) == 1
call SpaceVim#layers#core#tabline#def_colors()

View File

@ -62,6 +62,13 @@ function! s:filesize() abort
endfunction
function! SpaceVim#layers#core#statusline#get(...) abort
if &filetype ==# 'vimfiler'
return '%#SpaceVim_statusline_a# ' . s:winnr() . ' %#SpaceVim_statusline_a_b#'
\ . '%#SpaceVim_statusline_b# vimfiler %#SpaceVim_statusline_b_c#'
elseif &filetype ==# 'tagbar'
return '%#SpaceVim_statusline_a# ' . s:winnr() . ' %#SpaceVim_statusline_a_b#'
\ . '%#SpaceVim_statusline_b# tagbar %#SpaceVim_statusline_b_c#'
endif
if a:0 > 0
return s:active()
else
@ -104,8 +111,8 @@ endfunction
function! SpaceVim#layers#core#statusline#init() abort
augroup status
autocmd!
autocmd WinEnter * setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
autocmd WinLeave * setlocal statusline=%!SpaceVim#layers#core#statusline#get()
autocmd BufWinEnter,WinEnter * setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
autocmd BufWinLeave,WinLeave * setlocal statusline=%!SpaceVim#layers#core#statusline#get()
augroup END
endfunction

View File

@ -17,6 +17,7 @@ let s:file = SpaceVim#api#import('file')
let s:BUFFER = SpaceVim#api#import('vim#buffer')
let g:_spacevim_tabline_loaded = 1
let s:buffers = s:BUFFER.listed_buffers()
function! s:tabname(id) abort
let id = s:messletters.bubble_num(a:id, g:spacevim_buffer_index_type) . ' '
@ -68,23 +69,23 @@ function! SpaceVim#layers#core#tabline#get() abort
let t .= '%=%#SpaceVim_tabline_a_b#'
let t .= '%#SpaceVim_tabline_a# Tabs'
else
let buffers = s:BUFFER.listed_buffers()
if len(buffers) == 0
let s:buffers = s:BUFFER.listed_buffers()
if len(s:buffers) == 0
return ''
endif
let ct = bufnr('%')
let pt = index(buffers, ct) > 0 ? buffers[index(buffers, ct) - 1] : -1
if ct == get(buffers, 0, -1)
let pt = index(s:buffers, ct) > 0 ? s:buffers[index(s:buffers, ct) - 1] : -1
if ct == get(s:buffers, 0, -1)
let t = '%#SpaceVim_tabline_a# '
else
let t = '%#SpaceVim_tabline_b# '
endif
for i in buffers
for i in s:buffers
if i == ct
let t .= '%#SpaceVim_tabline_a#'
endif
let name = fnamemodify(bufname(i), ':t')
let id = s:messletters.bubble_num(index(buffers, i) + 1, g:spacevim_buffer_index_type)
let id = s:messletters.bubble_num(index(s:buffers, i) + 1, g:spacevim_buffer_index_type)
let icon = s:file.fticon(name)
if !empty(icon)
let name = icon . ' ' . name
@ -105,6 +106,18 @@ function! SpaceVim#layers#core#tabline#get() abort
endfunction
function! SpaceVim#layers#core#tabline#config() abort
set tabline=%!SpaceVim#layers#core#tabline#get()
for i in range(1, 9)
exe "call SpaceVim#mapping#space#def('nmap', [" . i . "], 'b" . i . "', 'window " . i . "', 1)"
endfor
call SpaceVim#mapping#space#def('nmap', ['-'], 'bprevious', 'window previous', 1)
call SpaceVim#mapping#space#def('nmap', ['+'], 'bnext', 'window next', 1)
endfunction
function! SpaceVim#layers#core#tabline#jump(id) abort
if len(s:buffers) > a:id + 1
let bid = s:buffers[a:id - 1]
exe 'b' . bid
endif
endfunction
function! SpaceVim#layers#core#tabline#def_colors() abort