diff runtime/indent/framescript.vim @ 5:db46d51a3939

Initial revision
author axmo
date Wed, 13 Aug 2008 17:36:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/indent/framescript.vim	Wed Aug 13 17:36:09 2008 +0900
@@ -0,0 +1,41 @@
+" Vim indent file
+" Language:         FrameScript
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-19
+
+if exists("b:did_indent")
+  finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetFrameScriptIndent()
+setlocal indentkeys=!^F,o,O,0=~Else,0=~EndIf,0=~EndLoop,0=~EndSub
+setlocal nosmartindent
+
+if exists("*GetFrameScriptIndent")
+  finish
+endif
+
+function GetFrameScriptIndent()
+  let lnum = prevnonblank(v:lnum - 1)
+
+  if lnum == 0
+    return 0
+  endif
+
+  if getline(v:lnum) =~ '^\s*\*'
+    return cindent(v:lnum)
+  endif
+
+  let ind = indent(lnum)
+
+  if getline(lnum) =~? '^\s*\%(If\|Loop\|Sub\)'
+    let ind = ind + &sw
+  endif
+
+  if getline(v:lnum) =~? '^\s*\%(Else\|End\%(If\|Loop\|Sub\)\)'
+    let ind = ind - &sw
+  endif
+
+  return ind
+endfunction