summaryrefslogtreecommitdiff
path: root/.vim/miniplugins/tabline.vim
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-01-28 16:05:38 +0200
committerSyndamia <kamen@syndamia.com>2024-01-28 16:07:18 +0200
commitf3ea7c8003c7a65de29c2f4e0e1bf0d592dd0ad8 (patch)
treebd5953791d769f96f6cb660e74a73b9043db16e5 /.vim/miniplugins/tabline.vim
parent999bb0cb0e771505ea13cba702474bd27b9d9930 (diff)
downloaddotfiles-f3ea7c8003c7a65de29c2f4e0e1bf0d592dd0ad8.tar
dotfiles-f3ea7c8003c7a65de29c2f4e0e1bf0d592dd0ad8.tar.gz
dotfiles-f3ea7c8003c7a65de29c2f4e0e1bf0d592dd0ad8.zip
[.vimrc] Reworked entire vimrc
Diffstat (limited to '.vim/miniplugins/tabline.vim')
-rw-r--r--.vim/miniplugins/tabline.vim91
1 files changed, 0 insertions, 91 deletions
diff --git a/.vim/miniplugins/tabline.vim b/.vim/miniplugins/tabline.vim
deleted file mode 100644
index bb6fe57..0000000
--- a/.vim/miniplugins/tabline.vim
+++ /dev/null
@@ -1,91 +0,0 @@
-let tabcap = ''
-let tabmiddlecap = ''
-
-set tabline=%!TablineGenerator()
-
-" Tab data/helper functions {{{
- function! TabFilename(n)
- let buflist = tabpagebuflist(a:n)
- let winnr = tabpagewinnr(a:n)
- let _ = (expand('#'..buflist[winnr - 1]..':t') !=# '') ? expand('#'..buflist[winnr - 1]..':t') : '[No Name]'
-
- " Limit the width of tabs, so they don't go out of the screen
- let tabNameLengthMax = &columns/(((tabpagenr('$') > 0) ? tabpagenr('$') : 0) + 5)
-
- return WebDevIconsGetFileTypeSymbol(_) .. ' ' .. _[0:tabNameLengthMax]
- endfunction
-
- function! TabReadonly(n)
- let winnr = tabpagewinnr(a:n)
- return gettabwinvar(a:n, winnr, '&readonly') ? ' ' : ''
- endfunction
-
- function! TabModified(n)
- let winnr = tabpagewinnr(a:n)
- return gettabwinvar(a:n, winnr, '&modified') ? ' ' : (gettabwinvar(a:n, winnr, '&modifiable') ? '' : ' ')
- endfunction
-" }}}
-
-" Colors {{{
- autocmd ColorScheme * call TLCreateHighlightGroups()
-
- " Colorscheme clears highlights https://vi.stackexchange.com/a/3356
- function! TLCreateHighlightGroups()
- hi TLTab ctermfg=252 ctermbg=242
- hi TLTabSel ctermfg=252 ctermbg=235
- hi TLRest ctermfg=248 ctermbg=238
-
- let s:hi_tltab = hlget('TLTab')[0]
- let s:hi_tltabsel = hlget('TLTabSel')[0]
- let s:hi_tlrest = hlget('TLRest')[0]
- call hlset([#{name: 'TLTabSelLC', ctermfg: s:hi_tltab['ctermbg'], ctermbg: s:hi_tltabsel['ctermbg'] },
- \ #{name: 'TLTabSelRC', ctermfg: s:hi_tltabsel['ctermbg'], ctermbg: s:hi_tltab['ctermbg'] },
- \ #{name: 'TLTabSelRCF', ctermfg: s:hi_tltabsel['ctermbg'], ctermbg: s:hi_tlrest['ctermbg'] },
- \ #{name: 'TLTabRCF', ctermfg: s:hi_tltab['ctermbg'], ctermbg: s:hi_tlrest['ctermbg'] }])
- endfunction
- call TLCreateHighlightGroups()
-" }}}
-
-function! TablineGenerator()
- let s = ''
-
- " For each tab i
- for i in range(1, tabpagenr('$'))
- " Sets the tab page number, so that mouse clicks work
- let s ..= '%' .. i .. 'T'
-
- let innerText = '%{TabFilename(' .. i .. ')}%{TabReadonly(' .. i .. ')}%{TabModified(' .. i .. ')} '
-
- " If tab is the selected one
- if i == tabpagenr()
- " If tab isn't the left most
- if i > 1
- let s ..= '%#TLTabSelLC#%{tabcap}'
- endif
-
- let s ..= '%#TLTabSel# ' .. l:innerText
-
- " If tab is the last one, right cap bg color has to be different
- let s ..= (i == tabpagenr('$') ? '%#TLTabSelRCF#' : '%#TLTabSelRC#') .. '%{tabcap}'
-
- else
- let s ..= '%#TLTab#'
- " If tab isn't to the right of selected and isn't the left most
- if (i-1 != tabpagenr()) && (i > 1)
- let s ..= '%{tabmiddlecap}'
- endif
-
- let s ..= ' ' .. l:innerText
-
- " Last tab has to have a tabcap
- if i == tabpagenr('$')
- let s ..= '%#TLTabRCF#%{tabcap}'
- endif
- endif
- endfor
-
- " After last tab, fill with TLRest
- let s ..= '%#TLRest#%T'
-
- return s
-endfunction