dgy
/
hexagons
Archived
1
0
Fork 0
This repository has been archived on 2021-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
hexagons/.config/nvim/autoload/dead/statusline.vim

91 lines
2.5 KiB
VimL

function! dead#statusline#ModeColor() abort
return get(g:modes, mode(), '%*')[0]
endfunction
function! dead#statusline#CurrentMode() abort
return get(g:modes, mode(), '-')[1]
endfunction
function! dead#statusline#StatusLine() abort
let l:statusline=''
let l:statusline.='%#error#'
let l:statusline.=dead#statusline#LinterStatus()
let l:statusline.='%#User1#'
let l:statusline.=dead#statusline#LinePasteMode()
let l:statusline.='%= '
let l:statusline.=' %p%% %l:%c '
let l:statusline.=dead#statusline#ModeColor()
let l:statusline.=dead#statusline#CurrentMode()
return l:statusline
endfunction
function! dead#statusline#StatusLineNC() abort
let l:statusline=''
let l:statusline.='%#User1#'
let l:statusline.='%= '
let l:statusline.='%f '
return l:statusline
endfunction
function! dead#statusline#HelpStatusLine() abort
let l:statusline=''
let l:statusline.='%= '
let l:statusline.='%h'
return l:statusline
endfunction
function! dead#statusline#FernStatusLine() abort
let l:statusline=''
let l:statusline.='%#User8#'
let l:statusline.='%= '
let l:statusline.='% '
return l:statusline
endfunction
function! dead#statusline#UpdateInactiveWindows()
for winnum in range(1, winnr('$'))
if winnum != winnr()
call setwinvar(winnum, '&statusline', '%!dead#statusline#StatusLineNC()')
endif
endfor
endfunction
function! dead#statusline#LinePasteMode() abort
let paste_status = &paste
if paste_status == 1
return ' paste '
else
return ''
endif
endfunction
function! dead#statusline#RefreshStatusLine(mode)
if (a:mode == "active" && &filetype !=? 'help')
setlocal statusline=%!dead#statusline#StatusLine()
else
setlocal statusline=%!dead#statusline#StatusLineNC()
endif
if &filetype ==? 'help'
setlocal statusline=%!dead#statusline#HelpStatusLine()
endif
if &filetype ==? 'fern'
setlocal statusline=%!dead#statusline#FernStatusLine()
endif
endfunction
function! dead#statusline#LinterStatus() abort
let l:counts = ale#statusline#Count(bufnr(''))
let l:all_errors = l:counts.error + l:counts.style_error
let l:all_non_errors = l:counts.total - l:all_errors
return l:counts.total == 0 ? '' : printf(
\ '  :%d  :%d ',
\ l:all_non_errors,
\ l:all_errors
\)
endfunction
function! dead#statusline#GitStatus()
let [a,m,r] = GitGutterGetHunkSummary()
return printf('+%d ~%d -%d', a, m, r)
endfunction