home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / syntax / debcontrol.vim < prev    next >
Encoding:
Text File  |  2012-05-31  |  6.8 KB  |  108 lines

  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: 2011 Dec 09
  7. " URL: http://anonscm.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
  8.  
  9. " Standard syntax initialization
  10. if version < 600
  11.   syntax clear
  12. elseif exists("b:current_syntax")
  13.   finish
  14. endif
  15.  
  16. " Should match case except for the keys of each field
  17. syn case match
  18.  
  19. " Everything that is not explicitly matched by the rules below
  20. syn match debcontrolElse "^.*$"
  21.  
  22. " Common seperators
  23. syn match debControlComma ", *"
  24. syn match debControlSpace " "
  25.  
  26. " Define some common expressions we can use later on
  27. syn match debcontrolArchitecture contained "\%(all\|linux-any\|\%(any-\)\=\%(alpha\|amd64\|arm\%(e[bl]\|hf\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\)\|hurd-\%(i386\|any\)\|kfreebsd-\%(i386\|amd64\|any\)\|knetbsd-\%(i386\|any\)\|kopensolaris-\%(i386\|any\)\|netbsd-\%(alpha\|i386\|any\)\|any\)"
  28. syn match debcontrolMultiArch contained "\%(no\|foreign\|allowed\|same\)"
  29. syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
  30. syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
  31. syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|education|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|introspection|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
  32. syn match debcontrolPackageType contained "u\?deb"
  33. syn match debcontrolVariable contained "\${.\{-}}"
  34. syn match debcontrolDmUpload contained "\cyes"
  35.  
  36. " A URL (using the domain name definitions from RFC 1034 and 1738), right now
  37. " only enforce protocol and some sanity on the server/path part;
  38. syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
  39. syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
  40. syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
  41. syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
  42.  
  43. " An email address
  44. syn match    debcontrolEmail    "[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
  45. syn match    debcontrolEmail    "<.\{-}>"
  46.  
  47. " #-Comments
  48. syn match debcontrolComment "^#.*$"
  49.  
  50. syn case ignore
  51.  
  52. " List of all legal keys
  53. syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Essential\|Architecture\|Multi-Arch\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|\%(XC-\)\=Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
  54.  
  55. " Fields for which we do strict syntax checking
  56. syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
  57. syn region debcontrolStrictField start="^Multi-Arch" end="$" contains=debcontrolKey,debcontrolMultiArch oneline
  58. syn region debcontrolStrictField start="^\(Package\|Source\)" end="$" contains=debcontrolKey,debcontrolName oneline
  59. syn region debcontrolStrictField start="^Priority" end="$" contains=debcontrolKey,debcontrolPriority oneline
  60. syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
  61. syn region debcontrolStrictField start="^\%(XC-\)\=Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
  62. syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
  63. syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
  64. syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
  65. syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
  66. syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
  67. syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
  68.  
  69. " Catch-all for the other legal fields
  70. syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
  71. syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Breaks\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
  72.  
  73. " Associate our matches and regions with pretty colours
  74. if version >= 508 || !exists("did_debcontrol_syn_inits")
  75.   if version < 508
  76.     let did_debcontrol_syn_inits = 1
  77.     command -nargs=+ HiLink hi link <args>
  78.   else
  79.     command -nargs=+ HiLink hi def link <args>
  80.   endif
  81.  
  82.   HiLink debcontrolKey        Keyword
  83.   HiLink debcontrolField    Normal
  84.   HiLink debcontrolStrictField    Error
  85.   HiLink debcontrolMultiField    Normal
  86.   HiLink debcontrolArchitecture    Normal
  87.   HiLink debcontrolMultiArch    Normal
  88.   HiLink debcontrolName        Normal
  89.   HiLink debcontrolPriority    Normal
  90.   HiLink debcontrolSection    Normal
  91.   HiLink debcontrolPackageType    Normal
  92.   HiLink debcontrolVariable    Identifier
  93.   HiLink debcontrolEmail    Identifier
  94.   HiLink debcontrolVcsSvn    Identifier
  95.   HiLink debcontrolVcsCvs    Identifier
  96.   HiLink debcontrolVcsGit    Identifier
  97.   HiLink debcontrolHTTPUrl    Identifier
  98.   HiLink debcontrolDmUpload    Identifier
  99.   HiLink debcontrolComment    Comment
  100.   HiLink debcontrolElse        Special
  101.  
  102.   delcommand HiLink
  103. endif
  104.  
  105. let b:current_syntax = "debcontrol"
  106.  
  107. " vim: ts=8 sw=2
  108.