comparison runtime/syntax/debcontrol.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children e170173ecb68
comparison
equal deleted inserted replaced
-1:000000000000 0:76efa0be13f1
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
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
14 if version < 600
15 syntax clear
16 elseif exists("b:current_syntax")
17 finish
18 endif
19
20 " Everything that is not explicitly matched by the rules below
21 syn match debcontrolElse "^.*$"
22
23 " Common seperators
24 syn match debControlComma ", *"
25 syn match debControlSpace " "
26
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 "\${.\{-}}"
33
34 " An email address
35 syn match debcontrolEmail "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
36 syn match debcontrolEmail "<.\{-}>"
37
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\): *"
40
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
46
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
50
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
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
73 endif
74
75 let b:current_syntax = "debcontrol"
76
77 " vim: ts=8 sw=2