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