diff options
Diffstat (limited to '')
| -rw-r--r-- | indent/gitconfig.vim | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/indent/gitconfig.vim b/indent/gitconfig.vim new file mode 100644 index 00000000..8eece5d3 --- /dev/null +++ b/indent/gitconfig.vim @@ -0,0 +1,37 @@ +" Vim indent file +" Language:	git config file +" Maintainer:	Tim Pope <vimNOSPAM@tpope.org> +" Last Change:	2012 April 7 + +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 + +let b:undo_indent = 'setl ai< inde< indk<' + +" 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 | 
