From cb0a4a269c08609eddefd29debf10b8dadaf1a7c Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Sat, 21 Nov 2020 13:59:19 -0600 Subject: [PATCH] Work on fixing neovim statusline overflow --- apps/neovim/init.vim | 27 ++++++++++++++++++++++----- apps/nnn/config.fish | 1 + readme.md | 1 - 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/apps/neovim/init.vim b/apps/neovim/init.vim index 27daa77..91b73d4 100644 --- a/apps/neovim/init.vim +++ b/apps/neovim/init.vim @@ -144,7 +144,7 @@ nnoremap t :split:term:resize 24:startinsert tnoremap :q! function! NeatFoldText() - " TODO: WIP + " TODO: finish this! let lines_count = v:foldend - v:foldstart + 1 let foldchar = matchstr(&fillchars, 'fold:\zs.') let foldtextstart = strpart('^' . repeat(foldchar, v:foldlevel*2) . line, 0, (winwidth(0)*2)/3) @@ -154,8 +154,8 @@ function! NeatFoldText() endfunction set foldtext=NeatFoldText() -" TODO: only update this portion when needed? -function! StatusLineBufferByNum(_, bufnum) +" TODO: only update this portion when needed instead of every render? +function! StatusLineBufferByNum(bufnum) let l:prefix = '%#InactiveBuffer#' let l:suffix = '%* ' let l:bufinfo = getbufinfo(a:bufnum)[0] @@ -171,12 +171,29 @@ endfunction au BufReadPost * | if stridx(&ft, 'commit') >= 0 | exe "startinsert!" | endif +let l:status_line_max_length = 5 function! StatusLineBuffers() - return join(map(nvim_list_bufs(), function("StatusLineBufferByNum")), '') + let l:since_active = 0 + let l:acc = [] + for bufnum in nvim_list_bufs() + let l:entry = StatusLineBufferByNum(bufnum) + if l:entry =~ "^%#ActiveBuffer#" + " + endif + let l:acc = add(l:acc, l:entry) + if l:since_active > 0 + let l:since_active = l:since_active + 1 + endif + endfor + return join(l:acc, '') endfunction function! StatusLine() - return StatusLineBuffers() . '%*%=%c,%l/%L (%p%%)' + try + return StatusLineBuffers().'%*%=%c,%l/%L (%p%%)' + catch + return 'buflisterr%*%=%c,%l/%L (%p%%)' + endtry endfunction " set laststatus=0 showtabline tabline=%!StatusLine() diff --git a/apps/nnn/config.fish b/apps/nnn/config.fish index 61743cd..9bfbf54 100644 --- a/apps/nnn/config.fish +++ b/apps/nnn/config.fish @@ -1,3 +1,4 @@ set -Ux NNN_OPTS EHacdrx set -Ux NNN_COLORS 1234 set -Ux NNN_PLUG p:preview +set -Ux NNN_FCOLORS 030304020005050805030501 diff --git a/readme.md b/readme.md index 64c8ddb..14483a2 100644 --- a/readme.md +++ b/readme.md @@ -16,7 +16,6 @@ curl -s -L https://git.lyte.dev/lytedev/dotfiles/raw/branch/master/bin/init-dotf # To Do -+ nnn FCOLORS + nvim statusline overflow + **Learn to use `journalctl`** + Vim sessions?