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