diff options
Diffstat (limited to 'indent/zimbu.vim')
| -rw-r--r-- | indent/zimbu.vim | 132 | 
1 files changed, 0 insertions, 132 deletions
| diff --git a/indent/zimbu.vim b/indent/zimbu.vim deleted file mode 100644 index 85883ca7..00000000 --- a/indent/zimbu.vim +++ /dev/null @@ -1,132 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 -   -" Vim indent file -" Language:	Zimbu -" Maintainer:	Bram Moolenaar <Bram@vim.org> -" Last Change:	2016 Jan 25 - -" Only load this indent file when no other was loaded. -if exists("b:did_indent") -   finish -endif -let b:did_indent = 1 - -setlocal ai nolisp nocin -setlocal indentexpr=GetZimbuIndent(v:lnum) -setlocal indentkeys=0{,0},!^F,o,O,0=ELSE,0=ELSEIF,0=CASE,0=DEFAULT,0=FINALLY - -" We impose recommended defaults: no Tabs, 'shiftwidth' = 2 -setlocal sw=2 et - -let b:undo_indent = "setl et< sw< ai< indentkeys< indentexpr=" - -" Only define the function once. -if exists("*GetZimbuIndent") -  finish -endif - -let s:cpo_save = &cpo -set cpo&vim - -" Come here when loading the script the first time. - -let s:maxoff = 50	" maximum number of lines to look backwards for () - -func GetZimbuIndent(lnum) -  let prevLnum = prevnonblank(a:lnum - 1) -  if prevLnum == 0 -    " This is the first non-empty line, use zero indent. -    return 0 -  endif - -  " Taken from Python indenting: -  " If the previous line is inside parenthesis, use the indent of the starting -  " line. -  " Trick: use the non-existing "dummy" variable to break out of the loop when -  " going too far back. -  call cursor(prevLnum, 1) -  let parlnum = searchpair('(\|{\|\[', '', ')\|}\|\]', 'nbW', -	  \ "line('.') < " . (prevLnum - s:maxoff) . " ? dummy :" -	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" -	  \ . " =~ '\\(Comment\\|String\\|Char\\)$'") -  if parlnum > 0 -    let plindent = indent(parlnum) -    let plnumstart = parlnum -  else -    let plindent = indent(prevLnum) -    let plnumstart = prevLnum -  endif - - -  " When inside parenthesis: If at the first line below the parenthesis add -  " two 'shiftwidth', otherwise same as previous line. -  " i = (a -  "       + b -  "       + c) -  call cursor(a:lnum, 1) -  let p = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', -	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" -	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" -	  \ . " =~ '\\(Comment\\|String\\|Char\\)$'") -  if p > 0 -    if p == prevLnum -      " When the start is inside parenthesis, only indent one 'shiftwidth'. -      let pp = searchpair('(\|{\|\[', '', ')\|}\|\]', 'bW', -	  \ "line('.') < " . (a:lnum - s:maxoff) . " ? dummy :" -	  \ . " synIDattr(synID(line('.'), col('.'), 1), 'name')" -	  \ . " =~ '\\(Comment\\|String\\|Char\\)$'") -      if pp > 0 -	return indent(prevLnum) + shiftwidth() -      endif -      return indent(prevLnum) + shiftwidth() * 2 -    endif -    if plnumstart == p -      return indent(prevLnum) -    endif -    return plindent -  endif - -  let prevline = getline(prevLnum) -  let thisline = getline(a:lnum) - -  " If this line is not a comment and the previous one is then move the -  " previous line further back. -  if thisline !~ '^\s*#' -    while prevline =~ '^\s*#' -      let prevLnum = prevnonblank(prevLnum - 1) -      if prevLnum == 0 -	" Only comment lines before this, no indent -	return 0 -      endif -      let prevline = getline(prevLnum) -      let plindent = indent(prevLnum) -    endwhile -  endif - -  if prevline =~ '^\s*\(IF\|\|ELSEIF\|ELSE\|GENERATE_IF\|\|GENERATE_ELSEIF\|GENERATE_ELSE\|WHILE\|REPEAT\|TRY\|CATCH\|FINALLY\|FOR\|DO\|SWITCH\|CASE\|DEFAULT\|FUNC\|VIRTUAL\|ABSTRACT\|DEFINE\|REPLACE\|FINAL\|PROC\|MAIN\|NEW\|ENUM\|CLASS\|INTERFACE\|BITS\|MODULE\|SHARED\)\>' -    let plindent += shiftwidth() -  endif -  if thisline =~ '^\s*\(}\|ELSEIF\>\|ELSE\>\|CATCH\|FINALLY\|GENERATE_ELSEIF\>\|GENERATE_ELSE\>\|UNTIL\>\)' -    let plindent -= shiftwidth() -  endif -  if thisline =~ '^\s*\(CASE\>\|DEFAULT\>\)' && prevline !~ '^\s*SWITCH\>' -    let plindent -= shiftwidth() -  endif - -  " line up continued comment that started after some code -  "   String something   # comment comment -  "                      # comment -  if a:lnum == prevLnum + 1 && thisline =~ '^\s*#' && prevline !~ '^\s*#' -    let n = match(prevline, '#') -    if n > 1 -      let plindent = n -    endif -  endif - -  return plindent -endfunc - -let &cpo = s:cpo_save -unlet s:cpo_save - -endif | 
