diff options
Diffstat (limited to 'indent')
| -rw-r--r-- | indent/caddyfile.vim | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/indent/caddyfile.vim b/indent/caddyfile.vim new file mode 100644 index 00000000..2f38c0db --- /dev/null +++ b/indent/caddyfile.vim @@ -0,0 +1,46 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'caddyfile') == -1 +   +if exists('b:did_indent') +	finish +endif +let b:did_indent = 1 + +setlocal nolisp +setlocal autoindent +setlocal indentexpr=GetCaddyfileIndent(v:lnum) +setlocal indentkeys+=<:>,0=},0=) +" setlocal cindent + +if exists('*shiftwidth') +	func s:sw() +		return shiftwidth() +	endfunc +else +	func s:sw() +		return &sw +	endfunc +endif + +function! GetCaddyfileIndent(lnum) +	let prevlnum = prevnonblank(a:lnum-1) +	if prevlnum == 0 +		return 0 +	endif + +	let thisl = substitute(getline(a:lnum), '#.*$', '', '') +	let prevl = substitute(getline(prevlnum), '#.*$', '', '') + +	let ind = indent(prevlnum) + +	if prevl =~ '{\s*$' +		let ind += s:sw() +	endif + +	if thisl =~ '^\s*}\s*$' +		let ind -= s:sw() +	endif + +	return ind +endfunction + +endif | 
