Merged from the latest developing branch.
[MacVim/jjgod.git] / runtime / syntax / debcontrol.vim
blobf15e83cb61eeab336f826f09a52db33a963398fd
1 " Vim syntax file
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
14 if version < 600
15   syntax clear
16 elseif exists("b:current_syntax")
17   finish
18 endif
20 " Everything that is not explicitly matched by the rules below
21 syn match debcontrolElse "^.*$"
23 " Common seperators
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 "\${.\{-}}"
34 " An email address
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")
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
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
72   delcommand HiLink
73 endif
75 let b:current_syntax = "debcontrol"
77 " vim: ts=8 sw=2