X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/84e2deef3e6453881262f3cc49e2f38187383bc4..e1fa1d1c9ec1c4080febc65a04347528804ceebb:/vim/ftplugin/cpp.vim diff --git a/vim/ftplugin/cpp.vim b/vim/ftplugin/cpp.vim index ea6837f..d24f1ff 100644 --- a/vim/ftplugin/cpp.vim +++ b/vim/ftplugin/cpp.vim @@ -60,7 +60,7 @@ setlocal errorformat+=%X%*\\a:\ Leaving\ directory\ [`']%f' setlocal errorformat+=%*[^[]\[%tRROR\]%m\ \[%f:%l\] setlocal errorformat+=%*[^[]\[%tARNING\]%m\ \[%f:%l\] -packadd termdebug +packadd! termdebug let g:termdebug_wide = 1 function! s:Debug(...) tabedit % @@ -88,3 +88,18 @@ function! InitialFoldLevel() endif endf call InitialFoldLevel() + +function! MyCppFoldText() + let l:line = getline(v:foldstart) + " expand tabs in line, foldtext does not do it on its own + let l:line = substitute(l:line, "\t", repeat(" ", shiftwidth()), "g") + let l:width = min([&textwidth, winwidth(0)]) + let l:lineinfo = printf("%d", v:foldend - v:foldstart) + let l:ellipsis = "…" + return printf("%.*s%s%*d", + \ l:width - strdisplaywidth(l:ellipsis..l:lineinfo), l:line, + \ l:ellipsis, + \ l:width - strdisplaywidth(l:line..l:ellipsis), l:lineinfo) +endfunction +setlocal foldtext=MyCppFoldText() +setlocal fillchars+=fold:\