1" Vim syntax file
2" Language:    Debian changelog files
3" Maintainer:  Debian Vim Maintainers <[email protected]>
4" Former Maintainers: Gerfried Fuchs <[email protected]>
5"                     Wichert Akkerman <[email protected]>
6" Last Change: 2010 May 06
7" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debchangelog.vim
8
9" Standard syntax initialization
10if version < 600
11  syntax clear
12elseif exists("b:current_syntax")
13  finish
14endif
15
16" Case doesn't matter for us
17syn case ignore
18
19" Define some common expressions we can use later on
20syn match debchangelogName	contained "^[[:alnum:]][[:alnum:].+-]\+ "
21syn match debchangelogUrgency	contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
22syn match debchangelogTarget	contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(etch|lenny)-%(backports|volatile)|%(dapper|hardy|jaunty|karmic|lucid|maverick)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
23syn match debchangelogVersion	contained "(.\{-})"
24syn match debchangelogCloses	contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
25syn match debchangelogLP	contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
26syn match debchangelogEmail	contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
27syn match debchangelogEmail	contained "<.\{-}>"
28
29" Define the entries that make up the changelog
30syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogUrgency,debchangelogTarget,debchangelogVersion oneline
31syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline
32syn region debchangelogEntry start="^  " end="$" contains=debchangelogCloses,debchangelogLP oneline
33
34" Associate our matches and regions with pretty colours
35if version >= 508 || !exists("did_debchangelog_syn_inits")
36  if version < 508
37    let did_debchangelog_syn_inits = 1
38    command -nargs=+ HiLink hi link <args>
39  else
40    command -nargs=+ HiLink hi def link <args>
41  endif
42
43  HiLink debchangelogHeader		Error
44  HiLink debchangelogFooter		Identifier
45  HiLink debchangelogEntry		Normal
46  HiLink debchangelogCloses		Statement
47  HiLink debchangelogLP			Statement
48  HiLink debchangelogUrgency		Identifier
49  HiLink debchangelogName		Comment
50  HiLink debchangelogVersion		Identifier
51  HiLink debchangelogTarget		Identifier
52  HiLink debchangelogEmail		Special
53
54  delcommand HiLink
55endif
56
57let b:current_syntax = "debchangelog"
58
59" vim: ts=8 sw=2
60