summaryrefslogtreecommitdiff
path: root/runtime/indent/gitconfig.vim
blob: 28d95b7cd2e1efc74e5634c8f1e222d260e7c620 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
" Vim indent file
" Language:	git config file
" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
" Last Change:	2009 Dec 24

if exists("b:did_indent")
  finish
endif
let b:did_indent = 1

setlocal autoindent
setlocal indentexpr=GetGitconfigIndent()
setlocal indentkeys=o,O,*<Return>,0[,],0;,0#,=,!^F

" Only define the function once.
if exists("*GetGitconfigIndent")
  finish
endif

function! GetGitconfigIndent()
    let line  = getline(prevnonblank(v:lnum-1))
    let cline = getline(v:lnum)
    if line =~  '\\\@<!\%(\\\\\)*\\$'
        " odd number of slashes, in a line continuation
        return 2 * &sw
    elseif cline =~ '^\s*\['
        return 0
    elseif cline =~ '^\s*\a'
        return &sw
    elseif cline == ''       && line =~ '^\['
        return &sw
    else
        return -1
    endif
endfunction