summaryrefslogtreecommitdiffstats
path: root/indent/zimbu.vim
diff options
context:
space:
mode:
Diffstat (limited to 'indent/zimbu.vim')
-rw-r--r--indent/zimbu.vim132
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