2 " Language: Debian control files
3 " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
4 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
5 " Wichert Akkerman <wakkerma@debian.org>
6 " Last Change: $LastChangedDate: 2006-04-16 21:50:31 -0400 (Sun, 16 Apr 2006) $
7 " URL: http://svn.debian.org/wsvn/pkg-vim/trunk/runtime/syntax/debcontrol.vim?op=file&rev=0&sc=0
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!
13 " Standard syntax initialization
16 elseif exists("b:current_syntax")
20 " Everything that is not explicitly matched by the rules below
21 syn match debcontrolElse "^.*$"
24 syn match debControlComma ", *"
25 syn match debControlSpace " "
27 " Define some common expressions we can use later on
28 syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(eb\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390\|sheb\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
29 syn match debcontrolName contained "[a-z][a-z0-9+-]*"
30 syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
31 syn 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\)"
32 syn match debcontrolVariable contained "\${.\{-}}"
35 syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
36 syn match debcontrolEmail "<.\{-}>"
38 " List of all legal keys
39 syn 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\): *"
41 " Fields for which we do strict syntax checking
42 syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
43 syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
44 syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
45 syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
47 " Catch-all for the other legal fields
48 syn 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
49 syn region debcontrolMultiField start="^\(Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
51 " Associate our matches and regions with pretty colours
52 if version >= 508 || !exists("did_debcontrol_syn_inits")
54 let did_debcontrol_syn_inits = 1
55 command -nargs=+ HiLink hi link <args>
57 command -nargs=+ HiLink hi def link <args>
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
75 let b:current_syntax = "debcontrol"