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