1" Vim indent file
2" Language:         FrameScript
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2008-07-19
5
6if exists("b:did_indent")
7  finish
8endif
9let b:did_indent = 1
10
11setlocal indentexpr=GetFrameScriptIndent()
12setlocal indentkeys=!^F,o,O,0=~Else,0=~EndIf,0=~EndLoop,0=~EndSub
13setlocal nosmartindent
14
15if exists("*GetFrameScriptIndent")
16  finish
17endif
18
19function GetFrameScriptIndent()
20  let lnum = prevnonblank(v:lnum - 1)
21
22  if lnum == 0
23    return 0
24  endif
25
26  if getline(v:lnum) =~ '^\s*\*'
27    return cindent(v:lnum)
28  endif
29
30  let ind = indent(lnum)
31
32  if getline(lnum) =~? '^\s*\%(If\|Loop\|Sub\)'
33    let ind = ind + &sw
34  endif
35
36  if getline(v:lnum) =~? '^\s*\%(Else\|End\%(If\|Loop\|Sub\)\)'
37    let ind = ind - &sw
38  endif
39
40  return ind
41endfunction
42