1"Description: Indent scheme for the tilde weblanguage 2"Author: Tobias Rundstr�m <tobi@tobi.nu> 3"URL: http://tilde.tildesoftware.net 4"Last Change: May 8 09:15:09 CEST 2002 5 6if exists ("b:did_indent") 7 finish 8endif 9 10let b:did_indent = 1 11 12setlocal autoindent 13setlocal indentexpr=GetTildeIndent(v:lnum) 14setlocal indentkeys=o,O,) 15 16if exists("*GetTildeIndent") 17 finish 18endif 19 20function GetTildeIndent(lnum) 21 let plnum = prevnonblank(v:lnum-1) 22 23 if plnum == 0 24 return 0 25 endif 26 27 if getline(v:lnum) =~ '^\s*\~\(endif\|else\|elseif\|end\)\>' 28 return indent(v:lnum) - &sw 29 endif 30 31 if getline(plnum) =~ '^\s*\~\(if\|foreach\|foreach_row\|xml_loop\|file_loop\|file_write\|file_append\|imap_loopsections\|imap_index\|imap_list\|ldap_search\|post_loopall\|post_loop\|file_loop\|sql_loop_num\|sql_dbmsselect\|search\|sql_loop\|post\|for\|function_define\|silent\|while\|setvalbig\|mail_create\|systempipe\|mail_send\|dual\|elseif\|else\)\>' 32 return indent(plnum) + &sw 33 else 34 return -1 35 endif 36endfunction 37