diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2017-03-23 11:43:41 +0100 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-03-23 11:43:41 +0100 | 
| commit | 461de4cc216cac858ccc4f2dd99644e6ea43589d (patch) | |
| tree | 4ea2373904a594c143b029d279218f9650b6833c /indent | |
| parent | ba758909360bbd037cea06fd4e4eec8da7bf8751 (diff) | |
| download | vim-polyglot-461de4cc216cac858ccc4f2dd99644e6ea43589d.tar.gz vim-polyglot-461de4cc216cac858ccc4f2dd99644e6ea43589d.zip | |
Add caddyfile support, closes #195
Diffstat (limited to '')
| -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 | 
