| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | "Description: Indent scheme for the tilde weblanguage | 
					
						
							| 
									
										
										
										
											2020-10-26 21:12:46 +01:00
										 |  |  | "Author: Tobias Rundström <tobi@tobi.nu> | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | "URL: http://tilde.tildesoftware.net | 
					
						
							|  |  |  | "Last Change: May  8 09:15:09 CEST 2002 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists ("b:did_indent") | 
					
						
							|  |  |  | 	finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let b:did_indent = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | setlocal autoindent | 
					
						
							|  |  |  | setlocal indentexpr=GetTildeIndent(v:lnum) | 
					
						
							|  |  |  | setlocal indentkeys=o,O,) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists("*GetTildeIndent") | 
					
						
							|  |  |  | 	finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function GetTildeIndent(lnum) | 
					
						
							|  |  |  | 	let plnum = prevnonblank(v:lnum-1) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if plnum == 0 | 
					
						
							|  |  |  | 		return 0 | 
					
						
							|  |  |  | 	endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if getline(v:lnum) =~ '^\s*\~\(endif\|else\|elseif\|end\)\>' | 
					
						
							| 
									
										
										
										
											2017-06-13 18:12:01 +02:00
										 |  |  | 		return indent(v:lnum) - shiftwidth() | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 	endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	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\)\>' | 
					
						
							| 
									
										
										
										
											2017-06-13 18:12:01 +02:00
										 |  |  | 		return indent(plnum) + shiftwidth() | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 	else | 
					
						
							|  |  |  | 		return -1 | 
					
						
							|  |  |  | 	endif | 
					
						
							|  |  |  | endfunction |