From 461de4cc216cac858ccc4f2dd99644e6ea43589d Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Thu, 23 Mar 2017 11:43:41 +0100 Subject: Add caddyfile support, closes #195 --- indent/caddyfile.vim | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 indent/caddyfile.vim (limited to 'indent/caddyfile.vim') 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 -- cgit v1.2.3