vim updates
[~madcoder/dotfiles.git] / vim / ftplugin / debhints.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=DebHintsFold(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_debhints_ftplugin")
21   finish
22 endif
23
24 " Don't load another plugin (this is global)
25 let g:did_debhints_ftplugin = 1
26
27 " {{{1 folding
28
29 function! DebHintsFold(lnum)
30     let line = getline(a:lnum)
31     let prevl = getline(a:lnum - 1)
32     if line =~ '^ *finished *$'
33         return '>1'
34     endif
35     if line =~ '^# *[0-9]\{8\}$'
36         return '>1' " beginning of a new day
37     endif
38     if line == '' && prevl == ''
39         return '1'
40     endif
41     if prevl == '' || prevl =~ '^#[0-9]\{8\}$'
42         return '>2' " beginning of a new hint chunk
43     endif
44     return '='
45 endfunction
46
47 " }}}
48 silent! normal zo
49
50 " vim: set foldmethod=marker:
51