blob: 22be6872cbe7299cc8442b2e34e20230a3f8afa4 [file] [log] [blame]
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01001" Vim indent file
2" Language: gitolite configuration
Bram Moolenaar01164a62017-11-02 22:58:42 +01003" 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 <sitaramc@gmail.com>
6" (former Maintainer: Teemu Matilainen <teemu.matilainen@iki.fi>)
Bram Moolenaarcbaff5e2022-04-08 17:45:08 +01007" Last Change: 2022 Apr 06
Bram Moolenaarf1568ec2011-12-14 21:17:39 +01008
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
Bram Moolenaarcbaff5e2022-04-08 17:45:08 +010018let b:undo_indent = "setl ai< inde< indk<"
19
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010020" Only define the function once.
21if exists("*GetGitoliteIndent")
22 finish
23endif
24
Bram Moolenaarb6b046b2011-12-30 13:11:27 +010025let s:cpo_save = &cpo
26set cpo&vim
27
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010028function! GetGitoliteIndent()
29 let prevln = prevnonblank(v:lnum-1)
30 let pline = getline(prevln)
31 let cline = getline(v:lnum)
32
33 if cline =~ '^\s*\(C\|R\|RW\|RW+\|RWC\|RW+C\|RWD\|RW+D\|RWCD\|RW+CD\|-\)[ \t=]'
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020034 return shiftwidth()
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010035 elseif cline =~ '^\s*config\s'
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020036 return shiftwidth()
Bram Moolenaar01164a62017-11-02 22:58:42 +010037 elseif cline =~ '^\s*option\s'
38 return shiftwidth()
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010039 elseif pline =~ '^\s*repo\s' && cline =~ '^\s*\(#.*\)\?$'
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020040 return shiftwidth()
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010041 elseif cline =~ '^\s*#'
42 return indent(prevln)
43 elseif cline =~ '^\s*$'
44 return -1
45 else
46 return 0
47 endif
48endfunction
Bram Moolenaarb6b046b2011-12-30 13:11:27 +010049
50let &cpo = s:cpo_save
51unlet s:cpo_save