-
Notifications
You must be signed in to change notification settings - Fork 0
/
statusline.vim
131 lines (121 loc) · 4.6 KB
/
statusline.vim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
" Powerline glyphs:
" Code points Glyphe Description Old code point
" U+E0A0 Version control branch (U+2B60 ⭠ )
" U+E0A1 LN (line) symbol (U+2B61 ⭡ )
" U+E0A2 Closed padlock (U+2B64 ⭤ )
" U+E0B0 Rightwards black arrowhead (U+2B80 ⮀ )
" U+E0B1 Rightwards arrowhead (U+2B81 ⮁ )
" U+E0B2 Leftwards black arrowhead (U+2B82 ⮂ )
" U+E0B3 Leftwards arrowhead (U+2B83 ⮃ )
" - Ernst StatusLine
highlight StatusLineNC guifg=#ffffff guibg=#0a0e1a gui=NONE ctermfg=15 ctermbg=240 cterm=NONE
highlight StatusLine guifg=#ffffff guibg=#4a4e5a gui=NONE ctermfg=15 ctermbg=240 cterm=NONE
highlight ErnstSLHighBG guifg=#000000 guibg=#ffaf00
highlight ErnstSLInactiveBG guifg=#000000 guibg=#1f424f
highlight ErnstSLInactiveFG guifg=#1f424f guibg=#131313
highlight ErnstSLHighFG guifg=#ffaf00 guibg=#131313
highlight ErnstSLNormalFG guifg=#4f727f guibg=#131313
function! StatuslineGit()
let git = fugitive#head()
if git != ''
return fugitive#head()
else
return ''
endfunction
function! StatuslineMode()
if (mode() =~# '\v(n|no)')
execute 'highlight ErnstSLHighBG guifg=#000000 guibg=#ffaf00'
execute 'highlight ErnstSLHighFG guifg=#ffaf00'
return "NORMAL "
elseif (mode() =~# '\v(v|V)')
execute 'highlight ErnstSLHighBG guifg=#000000 guibg=#87af00'
execute 'highlight ErnstSLHighFG guifg=#87af00'
return "VISUAL "
elseif mode() == "\<C-v>"
execute 'highlight ErnstSLHighBG guifg=#000000 guibg=#87af00'
execute 'highlight ErnstSLHighFG guifg=#87af00'
return "BLOCK "
elseif mode() == "i"
execute 'highlight ErnstSLHighBG guifg=#000000 guibg=#0087df'
execute 'highlight ErnstSLHighFG guifg=#0087df'
return "INSERT "
else
execute 'highlight ErnstSLHighBG guifg=#000000 guibg=#DC322F'
execute 'highlight ErnstSLHighFG guifg=#DC322F'
return " SHIT "
endif
endfunction
function! StatuslineAle() 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 ? 'NOERR ' : printf(
\ 'W:%d E:%d ',
\ l:all_non_errors,
\ l:all_errors
\)
endfunction
set laststatus=2
set statusline=
function! SetActiveStatusLine()
setlocal statusline=
setlocal statusline+=%#ErnstSLHighBG#
setlocal statusline+=\ %{StatuslineMode()}
" setlocal statusline+=%#ErnstSLHighFG#
" setlocal statusline+=
" setlocal statusline+=\
setlocal statusline+=%#ErnstSLNormalFG#
" setlocal statusline+=\ %{StatuslineGit()}
" setlocal statusline+=\
setlocal statusline+=\ %f
setlocal statusline+=\ %m\
setlocal statusline+=%=
setlocal statusline+=%y\
setlocal statusline+=%#ErnstSLHighFG#
setlocal statusline+=enc:
setlocal statusline+=%#ErnstSLNormalFG#
setlocal statusline+=%{&fileencoding?&fileencoding:&encoding}\
setlocal statusline+=%#ErnstSLHighFG#
setlocal statusline+=ff:
setlocal statusline+=%#ErnstSLNormalFG#
setlocal statusline+=\%{&fileformat}\
setlocal statusline+=%#ErnstSLHighFG#
setlocal statusline+=progress:
setlocal statusline+=%#ErnstSLNormalFG#
setlocal statusline+=%p%%\
setlocal statusline+=%#ErnstSLHighFG#
setlocal statusline+=line:
setlocal statusline+=%#ErnstSLNormalFG#
setlocal statusline+=%l:%c\ \
" setlocal statusline+=%#ErnstSLHighFG#
" setlocal statusline+=
setlocal statusline+=%#ErnstSLHighBG#
setlocal statusline+=\ %{StatuslineAle()}
endfunction
function! SetInactiveStatusLine()
setlocal statusline=
setlocal statusline+=%#ErnstSLInactiveBG#
setlocal statusline+=\ NORMAL\
setlocal statusline+=%#ErnstSLInactiveFG#
" setlocal statusline+=
setlocal statusline+=\ %f
setlocal statusline+=\ %m\
setlocal statusline+=%=
setlocal statusline+=%y\
setlocal statusline+=enc:
setlocal statusline+=%{&fileencoding?&fileencoding:&encoding}\
setlocal statusline+=ff:
setlocal statusline+=\%{&fileformat}\
setlocal statusline+=progress:
setlocal statusline+=%p%%\
setlocal statusline+=ln:
setlocal statusline+=%l:%c\ \
setlocal statusline+=\ %{StatuslineAle()}
endfunction
augroup statusline
autocmd!
autocmd BufEnter,WinEnter * call SetActiveStatusLine()
autocmd BufLeave,WinLeave * call SetInactiveStatusLine()
augroup end
call SetInactiveStatusLine()
call SetActiveStatusLine()