12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- " 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"
|