diff runtime/syntax/initng.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children e170173ecb68
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/runtime/syntax/initng.vim	Sat Nov 10 15:07:22 2007 +0900
@@ -0,0 +1,91 @@
+" Vim syntax file
+" Language:	initng .i files
+" Maintainer:	Elan Ruusamäe <glen@pld-linux.org>
+" URL:		http://glen.alkohol.ee/pld/initng/
+" License:	GPL v2
+" Version:	0.13
+" Last Change:	$Date$
+"
+" 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"