5
|
1 " Vim indent file
|
|
2 " Language: git config file
|
39
|
3 " Maintainer: Tim Pope <vimNOSPAM@tpope.org>
|
|
4 " Last Change: 2010 May 21
|
5
|
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
|
|
15 " Only define the function once.
|
|
16 if exists("*GetGitconfigIndent")
|
|
17 finish
|
|
18 endif
|
|
19
|
|
20 function! GetGitconfigIndent()
|
39
|
21 let line = getline(prevnonblank(v:lnum-1))
|
|
22 let cline = getline(v:lnum)
|
|
23 if line =~ '\\\@<!\%(\\\\\)*\\$'
|
|
24 " odd number of slashes, in a line continuation
|
|
25 return 2 * &sw
|
|
26 elseif cline =~ '^\s*\['
|
|
27 return 0
|
|
28 elseif cline =~ '^\s*\a'
|
|
29 return &sw
|
|
30 elseif cline == '' && line =~ '^\['
|
|
31 return &sw
|
|
32 else
|
|
33 return -1
|
|
34 endif
|
5
|
35 endfunction
|