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:\