diff options
Diffstat (limited to 'runtime/syntax/initng.vim')
-rw-r--r-- | runtime/syntax/initng.vim | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/runtime/syntax/initng.vim b/runtime/syntax/initng.vim new file mode 100644 index 0000000..959c79a --- /dev/null +++ b/runtime/syntax/initng.vim @@ -0,0 +1,90 @@ +" 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: 2007/05/05 17:17:40 $ +" +" 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 +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" |