mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 04:40:06 +08:00
Add statusline
This commit is contained in:
parent
7d6574f2b1
commit
c9e5d83b1b
@ -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
|
||||
|
@ -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()
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user