More generic code.
[~madcoder/dotfiles.git] / vim / ftplugin / dosini.vim
1 " Vim filetype plugin file (GUI menu, folding and completion)
2
3 if exists("b:did_ftplugin")
4   finish
5 endif
6 let b:did_ftplugin=1
7
8 " {{{1 Local settings (do on every load)
9 if !exists("g:debchangelog_fold_disable")
10   setlocal foldmethod=expr
11 endif
12 setlocal foldexpr=DosiniFold(v:lnum)
13
14 setlocal comments=:#
15
16 " Clean unloading
17 let b:undo_ftplugin = "setlocal tw< comments< foldmethod< foldexpr< foldtext<"
18 " }}}1
19
20 if exists("g:did_dosini_ftplugin")
21   finish
22 endif
23
24 " Don't load another plugin (this is global)
25 let g:did_dosini_ftplugin = 1
26
27 " {{{1 folding
28
29 function! DosiniFold(lnum)
30     let line = getline(a:lnum)
31     let prevl = getline(a:lnum - 1)
32     if line =~ '^ *\['
33         return '>1'
34     endif
35     if line == '' && prevl == ''
36         return '>0'
37     endif
38     return '='
39 endfunction
40
41 " }}}
42 silent! normal zo
43
44 " vim: set foldmethod=marker:
45