123456789101112131415161718192021222324252627282930313233343536373839404142 |
- " use the usual vim fold commands, such as "za
- function! FunctionGraphFoldExpr(lnum)
- let line = getline(a:lnum)
- if line[-1:] == '{'
- if line =~ 'finish_task_switch() {$'
- return '>1'
- endif
- return 'a1'
- elseif line[-1:] == '}'
- return 's1'
- else
- return '='
- endif
- endfunction
- function! FunctionGraphFoldText()
- let s = split(getline(v:foldstart), '|', 1)
- if getline(v:foldend+1) =~ 'finish_task_switch() {$'
- let s[2] = ' task switch '
- else
- let e = split(getline(v:foldend), '|', 1)
- let s[2] = e[2]
- endif
- return join(s, '|')
- endfunction
- setlocal foldexpr=FunctionGraphFoldExpr(v:lnum)
- setlocal foldtext=FunctionGraphFoldText()
- setlocal foldcolumn=12
- setlocal foldmethod=expr
|