summaryrefslogtreecommitdiff
path: root/.vim/miniplugins/my_statusline.vim
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2023-02-24 22:39:05 +0200
committerSyndamia <kamen@syndamia.com>2023-02-24 22:39:05 +0200
commit6ea45e425be52b92006e97e2caf315036542856d (patch)
tree99e37b4a5963af7c99b35e705135b9457800aa82 /.vim/miniplugins/my_statusline.vim
parent9020beac90c6779d831f0d73639c95a2dabacdb1 (diff)
downloaddotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar
dotfiles-6ea45e425be52b92006e97e2caf315036542856d.tar.gz
dotfiles-6ea45e425be52b92006e97e2caf315036542856d.zip
[.vimrc] Huge overhaul, separating contents into different files
Diffstat (limited to '.vim/miniplugins/my_statusline.vim')
-rw-r--r--.vim/miniplugins/my_statusline.vim81
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}