1" Vim syntax file 2" Language: Debian control files 3" Maintainer: Wichert Akkerman <[email protected]> 4" Last Change: October 28, 2001 5 6" Standard syntax initialization 7if version < 600 8 syntax clear 9elseif exists("b:current_syntax") 10 finish 11endif 12 13" Everything that is not explicitly matched by the rules below 14syn match debcontrolElse "^.*$" 15 16" Common seperators 17syn match debControlComma ", *" 18syn match debControlSpace " " 19 20" Define some common expressions we can use later on 21syn match debcontrolArchitecture contained "\(all\|any\|alpha\|arm\|hppa\|ia64\|i386\|m68k\|mipsel\|mips\|powerpc\|sh\|sheb\|sparc\|hurd-i386\)" 22syn match debcontrolName contained "[a-z][a-z0-9+-]*" 23syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)" 24syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|games\|graphics\|hamradio\|interpreters\|libs\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)" 25syn match debcontrolVariable contained "\${.\{-}}" 26 27" An email address 28syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+" 29syn match debcontrolEmail "<.\{-}>" 30 31" List of all legal keys 32syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\): *" 33 34" Fields for which we do strict syntax checking 35syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline 36syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline 37syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline 38syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline 39 40" Catch-all for the other legal fields 41syn region debcontrolField start="^\(Maintainer\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Bugs\|Origin\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline 42syn region debcontrolMultiField start="^\(Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable 43 44" Associate our matches and regions with pretty colours 45if version >= 508 || !exists("did_debcontrol_syn_inits") 46 if version < 508 47 let did_debcontrol_syn_inits = 1 48 command -nargs=+ HiLink hi link <args> 49 else 50 command -nargs=+ HiLink hi def link <args> 51 endif 52 53 HiLink debcontrolKey Keyword 54 HiLink debcontrolField Normal 55 HiLink debcontrolStrictField Error 56 HiLink debcontrolMultiField Normal 57 HiLink debcontrolArchitecture Normal 58 HiLink debcontrolName Normal 59 HiLink debcontrolPriority Normal 60 HiLink debcontrolSection Normal 61 HiLink debcontrolVariable Identifier 62 HiLink debcontrolEmail Identifier 63 HiLink debcontrolElse Special 64 65 delcommand HiLink 66endif 67 68let b:current_syntax = "debcontrol" 69 70" vim: ts=8 sw=2 71