summaryrefslogtreecommitdiff
path: root/.vim/miniplugins/statusline.vim
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2023-02-24 22:44:34 +0200
committerSyndamia <kamen@syndamia.com>2023-02-24 22:44:34 +0200
commit3a1c1bbb07a29030ad9f5b31e6d7e281321fcecb (patch)
treee4e3547ea60c66cd3896067a576265e8409ea9d8 /.vim/miniplugins/statusline.vim
parent6ea45e425be52b92006e97e2caf315036542856d (diff)
downloaddotfiles-3a1c1bbb07a29030ad9f5b31e6d7e281321fcecb.tar
dotfiles-3a1c1bbb07a29030ad9f5b31e6d7e281321fcecb.tar.gz
dotfiles-3a1c1bbb07a29030ad9f5b31e6d7e281321fcecb.zip
[.vimrc] Renamed my_statusline to just statusline
Diffstat (limited to '.vim/miniplugins/statusline.vim')
-rw-r--r--.vim/miniplugins/statusline.vim81
1 files changed, 81 insertions, 0 deletions
diff --git a/.vim/miniplugins/statusline.vim b/.vim/miniplugins/statusline.vim
new file mode 100644
index 0000000..92b9f10
--- /dev/null
+++ b/.vim/miniplugins/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}