diff options
Diffstat (limited to '.vim/miniplugins/my_statusline.vim')
| -rw-r--r-- | .vim/miniplugins/my_statusline.vim | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/.vim/miniplugins/my_statusline.vim b/.vim/miniplugins/my_statusline.vim new file mode 100644 index 0000000..92b9f10 --- /dev/null +++ b/.vim/miniplugins/my_statusline.vim @@ -0,0 +1,81 @@ +" Needed settings +set laststatus=2 +set timeoutlen=1000 ttimeoutlen=10 +set noshowmode + +" call hlset([#{name: 'StatusLine', ctermfg: '252', ctermbg: '239'}]) + +" Logic + +let leftcap = '' +let rightcap = '' +let leftmcap = '' +let rightmcap = '' + +set statusline= +" Mode + +" Values are, in order, for: normal (default), insert, replace, visual modes +" [ctermfg, ctermbg] +let s:modecolors = [ +\ ['236', '117'], +\ ['236', '119'], +\ ['236', '203'], +\ ['236', '216'], +\] + +let modestring = '' + +hi SLMode ctermfg=1 ctermbg=0 +hi SLModeC ctermfg=1 ctermbg=0 + + +function! SLModeSetter() + let cm = mode() + let ind = 0 + + if cm == 'i' + let ind = 1 + elseif cm == 'R' + let ind = 2 + let cm = 'r' + elseif cm == 'v' + let ind = 3 + endif + + call hlset([#{name: 'SLMode', ctermfg: s:modecolors[l:ind][0], ctermbg: s:modecolors[l:ind][1]}]) + call hlset([#{name: 'SLModeC', ctermfg: s:modecolors[l:ind][1], ctermbg: '239'}]) + let g:modestring = l:cm + + return '' +endfunction + +set statusline+=%{SLModeSetter()}%#SLModeC#%{leftcap}%#SLMode#%{modestring}%#SLModeC#%{rightcap} +" \______leftcap______/\________mode_______/\______rightcap_____/ + +" Filename + +set statusline+=%#StatusLine#\ %f\ %{rightmcap} + +" File stat + +function! SLReadonly() + return (&ft !~? 'vimfiler' && &readonly) ? ' ' : '' +endfunction + +function! SLModified() + return (&ft =~ 'vimfiler') ? '' : (&modified ? '' : (&modifiable ? '' : '')) +endfunction + +set statusline+=\ %{SLReadonly()}%{SLModified()}\ + +" Middle separator +set statusline+=%= + +" Filetype +set statusline+=%{leftmcap}\ %{WebDevIconsGetFileTypeSymbol()}\ %{&ft}\ + +" Line and column count +hi SLRowCol ctermfg=238 ctermbg=244 +hi SLRowColC ctermfg=244 ctermbg=239 +set statusline+=%#SLRowColC#%{leftcap}%#SLRowCol#%l:%c%#SLRowColC#%{rightcap} |
