diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:43:42 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:43:42 +0200 | 
| commit | 5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1 (patch) | |
| tree | 965ae5128797f3d42d78d02692e62d24a4596e19 /indent/chaiscript.vim | |
| parent | 8148255ef1c416f414c3a78405eff08fe149d16e (diff) | |
| download | vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.tar.gz vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.zip | |
Add syntax files from upstream vim repository
Diffstat (limited to 'indent/chaiscript.vim')
| -rw-r--r-- | indent/chaiscript.vim | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/indent/chaiscript.vim b/indent/chaiscript.vim new file mode 100644 index 00000000..9c8b2283 --- /dev/null +++ b/indent/chaiscript.vim @@ -0,0 +1,54 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 +   +" Vim indent file +" Language:     ChaiScript +" Maintainer:	Jason Turner <lefticus 'at' gmail com> + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") +  finish +endif +let b:did_indent = 1 + +setlocal indentexpr=GetChaiScriptIndent() +setlocal autoindent + +" Only define the function once. +if exists("*GetChaiScriptIndent") +  finish +endif + +function! GetChaiScriptIndent() +  " Find a non-blank line above the current line. +  let lnum = prevnonblank(v:lnum - 1) + +  " Hit the start of the file, use zero indent. +  if lnum == 0 +    return 0 +  endif + +  " Add a 'shiftwidth' after lines that start a block: +  " lines containing a { +  let ind = indent(lnum) +  let flag = 0 +  let prevline = getline(lnum) +  if prevline =~ '^.*{.*' +    let ind = ind + shiftwidth() +    let flag = 1 +  endif + +  " Subtract a 'shiftwidth' after lines containing a { followed by a } +  " to keep it balanced +  if flag == 1 && prevline =~ '.*{.*}.*' +    let ind = ind - shiftwidth() +  endif + +  " Subtract a 'shiftwidth' on lines ending with } +  if getline(v:lnum) =~ '^\s*\%(}\)' +    let ind = ind - shiftwidth() +  endif + +  return ind +endfunction + +endif | 
