| 
									
										
										
										
											2007-05-05 17:54:07 +00:00
										 |  |  |  | " Vim syntax file | 
					
						
							|  |  |  |  | " Language:	initng .i files | 
					
						
							|  |  |  |  | " Maintainer:	Elan Ruusam<61>e <glen@pld-linux.org> | 
					
						
							|  |  |  |  | " URL:		http://glen.alkohol.ee/pld/initng/ | 
					
						
							|  |  |  |  | " License:	GPL v2 | 
					
						
							|  |  |  |  | " Version:	0.13 | 
					
						
							| 
									
										
										
										
											2010-01-06 20:54:52 +01:00
										 |  |  |  | " Last Change:	$Date: 2007/05/05 17:17:40 $ | 
					
						
							| 
									
										
										
										
											2007-05-05 17:54:07 +00:00
										 |  |  |  | " | 
					
						
							|  |  |  |  | " Syntax highlighting for initng .i files. Inherits from sh.vim and adds | 
					
						
							|  |  |  |  | " in the hiliting to start/stop {} blocks. Requires vim 6.3 or later. | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | if &compatible || v:version < 603 | 
					
						
							|  |  |  |  | 	finish | 
					
						
							|  |  |  |  | endif | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | if exists("b:current_syntax") | 
					
						
							|  |  |  |  | 	finish | 
					
						
							|  |  |  |  | endif | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | syn case match | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | let is_bash = 1 | 
					
						
							|  |  |  |  | unlet! b:current_syntax | 
					
						
							|  |  |  |  | syn include @shTop syntax/sh.vim | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | syn region	initngService			matchgroup=initngServiceHeader start="^\s*\(service\|virtual\|daemon\|class\|cron\)\s\+\(\(\w\|[-/*]\)\+\(\s\+:\s\+\(\w\|[-/*]\)\+\)\?\)\s\+{" end="}" contains=@initngServiceCluster | 
					
						
							|  |  |  |  | syn cluster initngServiceCluster	contains=initngComment,initngAction,initngServiceOption,initngServiceHeader,initngDelim,initngVariable | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | syn region	initngAction			matchgroup=initngActionHeader start="^\s*\(script start\|script stop\|script run\)\s*=\s*{" end="}" contains=@initngActionCluster | 
					
						
							|  |  |  |  | syn cluster initngActionCluster		contains=@shTop | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | syn match	initngDelim				/[{}]/	contained | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | syn region	initngString			start=/"/ end=/"/ skip=/\\"/ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " option = value | 
					
						
							|  |  |  |  | syn match	initngServiceOption		/.\+\s*=.\+;/ contains=initngServiceKeywords,initngSubstMacro contained | 
					
						
							|  |  |  |  | " option without value | 
					
						
							|  |  |  |  | syn match	initngServiceOption		/\w\+;/ contains=initngServiceKeywords,initngSubstMacro contained | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " options with value | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	also_stop need use nice setuid contained | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	delay chdir suid sgid start_pause env_file env_parse pid_file pidfile contained | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	pid_of up_when_pid_set stdout stderr syncron just_before contained | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	provide lockfile daemon_stops_badly contained | 
					
						
							|  |  |  |  | syn match	initngServiceKeywords	/\(script\|exec\(_args\)\?\) \(start\|stop\|daemon\)/ contained | 
					
						
							|  |  |  |  | syn match	initngServiceKeywords	/env\s\+\w\+/ contained | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " rlimits | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	rlimit_cpu_hard rlimit_core_soft contained | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " single options | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	last respawn network_provider require_network require_file critical forks contained | 
					
						
							|  |  |  |  | " cron options | 
					
						
							|  |  |  |  | syn keyword	initngServiceKeywords	hourly contained | 
					
						
							|  |  |  |  | syn match	initngVariable			/\${\?\w\+\}\?/ | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " Substituted @foo@ macros: | 
					
						
							|  |  |  |  | " ========== | 
					
						
							|  |  |  |  | syn match	initngSubstMacro		/@[^@]\+@/	contained | 
					
						
							|  |  |  |  | syn cluster initngActionCluster		add=initngSubstMacro | 
					
						
							|  |  |  |  | syn cluster shCommandSubList		add=initngSubstMacro | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " Comments: | 
					
						
							|  |  |  |  | " ========== | 
					
						
							|  |  |  |  | syn cluster	initngCommentGroup		contains=initngTodo,@Spell | 
					
						
							|  |  |  |  | syn keyword	initngTodo				TODO FIXME XXX contained | 
					
						
							|  |  |  |  | syn match	initngComment			/#.*$/ contains=@initngCommentGroup | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | " install_service #macros | 
					
						
							|  |  |  |  | " TODO: syntax check for ifd-endd pairs | 
					
						
							|  |  |  |  | " ========== | 
					
						
							|  |  |  |  | syn region	initngDefine			start="^#\(endd\|elsed\|exec\|ifd\|endexec\|endd\)\>" skip="\\$" end="$" end="#"me=s-1 | 
					
						
							|  |  |  |  | syn cluster shCommentGroup			add=initngDefine | 
					
						
							|  |  |  |  | syn cluster initngCommentGroup		add=initngDefine | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | hi def link	initngComment			Comment | 
					
						
							|  |  |  |  | hi def link initngTodo				Todo | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | hi def link	initngString			String | 
					
						
							|  |  |  |  | hi def link initngServiceKeywords	Define | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | hi def link	initngServiceHeader		Keyword | 
					
						
							|  |  |  |  | hi def link	initngActionHeader		Type | 
					
						
							|  |  |  |  | hi def link initngDelim				Delimiter | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | hi def link	initngVariable			PreProc | 
					
						
							|  |  |  |  | hi def link	initngSubstMacro		Comment | 
					
						
							|  |  |  |  | hi def link	initngDefine			Macro | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | let b:current_syntax = "initng" |