1620
|
1 " Vim indent file
|
|
2 " Language: git config file
|
2034
|
3 " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
3465
|
4 " Last Change: 2012 April 7
|
1620
|
5
|
|
6 if exists("b:did_indent")
|
|
7 finish
|
|
8 endif
|
|
9 let b:did_indent = 1
|
|
10
|
|
11 setlocal autoindent
|
|
12 setlocal indentexpr=GetGitconfigIndent()
|
|
13 setlocal indentkeys=o,O,*<Return>,0[,],0;,0#,=,!^F
|
|
14
|
3465
|
15 let b:undo_indent = 'setl ai< inde< indk<'
|
|
16
|
1620
|
17 " Only define the function once.
|
|
18 if exists("*GetGitconfigIndent")
|
|
19 finish
|
|
20 endif
|
|
21
|
|
22 function! GetGitconfigIndent()
|
2202
|
23 let line = getline(prevnonblank(v:lnum-1))
|
|
24 let cline = getline(v:lnum)
|
|
25 if line =~ '\\\@<!\%(\\\\\)*\\$'
|
|
26 " odd number of slashes, in a line continuation
|
|
27 return 2 * &sw
|
|
28 elseif cline =~ '^\s*\['
|
|
29 return 0
|
|
30 elseif cline =~ '^\s*\a'
|
|
31 return &sw
|
|
32 elseif cline == '' && line =~ '^\['
|
|
33 return &sw
|
|
34 else
|
|
35 return -1
|
|
36 endif
|
1620
|
37 endfunction
|