xref: /vim-8.2.3635/runtime/indent/gitolite.vim (revision 01164a65)
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