" " manually: " setlocal foldexpr=balena_diagnostics_fold#expr(v:lnum) " setlocal foldmethod=expr " setlocal foldlevel=1 " or as command: " command! BalenaDiagnosticsFold call balena_diagnostics_fold#apply() " function! s:foldexpr(lnum) return getline(a:lnum)=~'^===\s.*\s===$'?'>1':getline(a:lnum)=~'^---\s.*\s---$'?'>2':'=' endfunction function! balena_diagnostics_fold#expr(lnum) abort return s:foldexpr(a:lnum) endfunction function! balena_diagnostics_fold#apply() abort setlocal \ foldmethod=expr \ foldexpr=balena_diagnostics_fold#expr(v:lnum) \ foldcolumn=auto:9 \ foldlevel=1 \ foldenable endfunction