codekingpro/portable-devtools
115k
1" Vim syntax file2" Language: initng .i files3" Maintainer: Elan Ruusamäe <glen@pld-linux.org>4" URL: http://glen.alkohol.ee/pld/initng/5" License: GPL v26" Version: 0.137" Last Change: $Date: 2007/05/05 17:17:40 $8"9" Syntax highlighting for initng .i files. Inherits from sh.vim and adds10" in the hiliting to start/stop {} blocks. Requires vim 6.3 or later.11 12if &compatible || v:version < 60313 finish14endif15 16if exists("b:current_syntax")17 finish18endif19 20syn case match21 22let is_bash = 123syn include @shTop syntax/sh.vim24 25syn region initngService matchgroup=initngServiceHeader start="^\s*\(service\|virtual\|daemon\|class\|cron\)\s\+\(\(\w\|[-/*]\)\+\(\s\+:\s\+\(\w\|[-/*]\)\+\)\?\)\s\+{" end="}" contains=@initngServiceCluster26syn cluster initngServiceCluster contains=initngComment,initngAction,initngServiceOption,initngServiceHeader,initngDelim,initngVariable27 28syn region initngAction matchgroup=initngActionHeader start="^\s*\(script start\|script stop\|script run\)\s*=\s*{" end="}" contains=@initngActionCluster29syn cluster initngActionCluster contains=@shTop30 31syn match initngDelim /[{}]/ contained32 33syn region initngString start=/"/ end=/"/ skip=/\\"/34 35" option = value36syn match initngServiceOption /.\+\s*=.\+;/ contains=initngServiceKeywords,initngSubstMacro contained37" option without value38syn match initngServiceOption /\w\+;/ contains=initngServiceKeywords,initngSubstMacro contained39 40" options with value41syn keyword initngServiceKeywords also_stop need use nice setuid contained42syn keyword initngServiceKeywords delay chdir suid sgid start_pause env_file env_parse pid_file pidfile contained43syn keyword initngServiceKeywords pid_of up_when_pid_set stdout stderr syncron just_before contained44syn keyword initngServiceKeywords provide lockfile daemon_stops_badly contained45syn match initngServiceKeywords /\(script\|exec\(_args\)\?\) \(start\|stop\|daemon\)/ contained46syn match initngServiceKeywords /env\s\+\w\+/ contained47 48" rlimits49syn keyword initngServiceKeywords rlimit_cpu_hard rlimit_core_soft contained50 51" single options52syn keyword initngServiceKeywords last respawn network_provider require_network require_file critical forks contained53" cron options54syn keyword initngServiceKeywords hourly contained55syn match initngVariable /\${\?\w\+\}\?/56 57" Substituted @foo@ macros:58" ==========59syn match initngSubstMacro /@[^@]\+@/ contained60syn cluster initngActionCluster add=initngSubstMacro61syn cluster shCommandSubList add=initngSubstMacro62 63" Comments:64" ==========65syn cluster initngCommentGroup contains=initngTodo,@Spell66syn keyword initngTodo TODO FIXME XXX contained67syn match initngComment /#.*$/ contains=@initngCommentGroup68 69" install_service #macros70" TODO: syntax check for ifd-endd pairs71" ==========72syn region initngDefine start="^#\(endd\|elsed\|exec\|ifd\|endexec\|endd\)\>" skip="\\$" end="$" end="#"me=s-173syn cluster shCommentGroup add=initngDefine74syn cluster initngCommentGroup add=initngDefine75 76hi def link initngComment Comment77hi def link initngTodo Todo78 79hi def link initngString String80hi def link initngServiceKeywords Define81 82hi def link initngServiceHeader Keyword83hi def link initngActionHeader Type84hi def link initngDelim Delimiter85 86hi def link initngVariable PreProc87hi def link initngSubstMacro Comment88hi def link initngDefine Macro89 90let b:current_syntax = "initng"91 