Dotfiles.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

35 lines
938 B

" Copyright (c) 2019 Liu-Cheng Xu
" MIT License
" vim: ts=2 sw=2 sts=2 et
" Treat the number of heading whitespaces as indent level
function! s:HeadingWhitespaces(line) abort
return strlen(matchstr(a:line,'\v^\s+'))
endfunction
function! vista#fold#Expr() abort
if getline(v:lnum) =~# '^$'
return 0
endif
let cur_indent = s:HeadingWhitespaces(getline(v:lnum))
let next_indent = s:HeadingWhitespaces(getline(v:lnum+1))
if cur_indent < next_indent
return '>'.next_indent
else
return cur_indent
endif
endfunction
function! vista#fold#Text() abort
let line = getline(v:foldstart)
" Foldtext ignores tabstop and shows tabs as one space,
" so convert tabs to 'tabstop' spaces, then text lines up.
let spaces = repeat(' ', &tabstop)
let line = substitute(line, '\t', spaces, 'g')
let line = substitute(line, g:vista_fold_toggle_icons[0], g:vista_fold_toggle_icons[1], '')
return line
endfunction