blob: 2d24b592d0edef00ada87ef8ef167edd279e52fa [file] [log] [blame]
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01001" Vim indent file
2" Language: gitolite configuration
3" URL: https://github.com/tmatilai/gitolite.vim
4" Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>
Bram Moolenaar3ec574f2017-06-13 18:12:01 +02005" Last Change: 2017 Jun 13
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01006
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
Bram Moolenaarb6b046b2011-12-30 13:11:27 +010021let s:cpo_save = &cpo
22set cpo&vim
23
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010024function! 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=]'
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020030 return shiftwidth()
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010031 elseif cline =~ '^\s*config\s'
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020032 return shiftwidth()
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010033 elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020034 return shiftwidth()
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010035 elseif cline =~ '^\s*#'
36 return indent(prevln)
37 elseif cline =~ '^\s*$'
38 return -1
39 else
40 return 0
41 endif
42endfunction
Bram Moolenaarb6b046b2011-12-30 13:11:27 +010043
44let &cpo = s:cpo_save
45unlet s:cpo_save