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