1" Vim indent file 2" Language: gitolite configuration 3" URL: https://github.com/tmatilai/gitolite.vim 4" Maintainer: Teemu Matilainen <[email protected]> 5" Last Change: 2011-12-24 6 7if exists("b:did_indent") 8 finish 9endif 10let b:did_indent = 1 11 12setlocal autoindent 13setlocal indentexpr=GetGitoliteIndent() 14setlocal indentkeys=o,O,*<Return>,!^F,=repo,\",= 15 16" Only define the function once. 17if exists("*GetGitoliteIndent") 18 finish 19endif 20 21let s:cpo_save = &cpo 22set cpo&vim 23 24function! GetGitoliteIndent() 25 let prevln = prevnonblank(v:lnum-1) 26 let pline = getline(prevln) 27 let cline = getline(v:lnum) 28 29 if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]' 30 return &sw 31 elseif cline =~ '^\s*config\s' 32 return &sw 33 elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$' 34 return &sw 35 elseif cline =~ '^\s*#' 36 return indent(prevln) 37 elseif cline =~ '^\s*$' 38 return -1 39 else 40 return 0 41 endif 42endfunction 43 44let &cpo = s:cpo_save 45unlet s:cpo_save 46