1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-09 14:20:06 +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 return
endif endif
if &termguicolors || has('gui_running') if &termguicolors || has('gui_running')
let g:wsd = self.group2dict('Normal')
let bg = self.group2dict('Normal').guibg let bg = self.group2dict('Normal').guibg
let group.guifg = bg let group.guifg = bg
let group.guibg = bg let group.guibg = bg

View File

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

View File

@ -62,6 +62,13 @@ function! s:filesize() abort
endfunction endfunction
function! SpaceVim#layers#core#statusline#get(...) abort 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 if a:0 > 0
return s:active() return s:active()
else else
@ -104,8 +111,8 @@ endfunction
function! SpaceVim#layers#core#statusline#init() abort function! SpaceVim#layers#core#statusline#init() abort
augroup status augroup status
autocmd! autocmd!
autocmd WinEnter * setlocal statusline=%!SpaceVim#layers#core#statusline#get(1) autocmd BufWinEnter,WinEnter * setlocal statusline=%!SpaceVim#layers#core#statusline#get(1)
autocmd WinLeave * setlocal statusline=%!SpaceVim#layers#core#statusline#get() autocmd BufWinLeave,WinLeave * setlocal statusline=%!SpaceVim#layers#core#statusline#get()
augroup END augroup END
endfunction endfunction

View File

@ -17,6 +17,7 @@ let s:file = SpaceVim#api#import('file')
let s:BUFFER = SpaceVim#api#import('vim#buffer') let s:BUFFER = SpaceVim#api#import('vim#buffer')
let g:_spacevim_tabline_loaded = 1 let g:_spacevim_tabline_loaded = 1
let s:buffers = s:BUFFER.listed_buffers()
function! s:tabname(id) abort function! s:tabname(id) abort
let id = s:messletters.bubble_num(a:id, g:spacevim_buffer_index_type) . ' ' 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_b#'
let t .= '%#SpaceVim_tabline_a# Tabs' let t .= '%#SpaceVim_tabline_a# Tabs'
else else
let buffers = s:BUFFER.listed_buffers() let s:buffers = s:BUFFER.listed_buffers()
if len(buffers) == 0 if len(s:buffers) == 0
return '' return ''
endif endif
let ct = bufnr('%') let ct = bufnr('%')
let pt = index(buffers, ct) > 0 ? buffers[index(buffers, ct) - 1] : -1 let pt = index(s:buffers, ct) > 0 ? s:buffers[index(s:buffers, ct) - 1] : -1
if ct == get(buffers, 0, -1) if ct == get(s:buffers, 0, -1)
let t = '%#SpaceVim_tabline_a# ' let t = '%#SpaceVim_tabline_a# '
else else
let t = '%#SpaceVim_tabline_b# ' let t = '%#SpaceVim_tabline_b# '
endif endif
for i in buffers for i in s:buffers
if i == ct if i == ct
let t .= '%#SpaceVim_tabline_a#' let t .= '%#SpaceVim_tabline_a#'
endif endif
let name = fnamemodify(bufname(i), ':t') 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) let icon = s:file.fticon(name)
if !empty(icon) if !empty(icon)
let name = icon . ' ' . name let name = icon . ' ' . name
@ -105,6 +106,18 @@ function! SpaceVim#layers#core#tabline#get() abort
endfunction endfunction
function! SpaceVim#layers#core#tabline#config() abort function! SpaceVim#layers#core#tabline#config() abort
set tabline=%!SpaceVim#layers#core#tabline#get() 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 endfunction
function! SpaceVim#layers#core#tabline#def_colors() abort function! SpaceVim#layers#core#tabline#def_colors() abort