blob: 3668ea531f2c076a6950ffa7fece6363793fdb37 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaara93fa7e2006-04-17 22:14:47 +00002" Language: Debian changelog files
3" Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00004" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
5" Wichert Akkerman <wakkerma@debian.org>
Bram Moolenaar06d2d382016-05-20 17:24:11 +02006" Last Change: 2016 Apr 24
Bram Moolenaar256972a2015-12-29 19:10:25 +01007" URL: https://anonscm.debian.org/cgit/pkg-vim/vim.git/plain/runtime/syntax/debchangelog.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
9" Standard syntax initialization
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020010if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
14" Case doesn't matter for us
15syn case ignore
16
Bram Moolenaarf2571c62015-06-09 19:44:55 +020017let urgency='urgency=\(low\|medium\|high\|critical\)\( [^[:space:],][^,]*\)\='
18let binNMU='binary-only=yes'
19
Bram Moolenaar071d4272004-06-13 20:20:40 +000020" Define some common expressions we can use later on
Bram Moolenaar5c736222010-01-06 20:54:52 +010021syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
Bram Moolenaarf2571c62015-06-09 19:44:55 +020022exe 'syn match debchangelogFirstKV contained "; \('.urgency.'\|'.binNMU.'\)"'
23exe 'syn match debchangelogOtherKV contained ", \('.urgency.'\|'.binNMU.'\)"'
Bram Moolenaar06d2d382016-05-20 17:24:11 +020024syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|wheezy-%(backports%(-sloppy)=|security)|jessie%(-backports|-security)=|stretch|%(devel|precise|trusty|vivid|wily|xenial|yakkety)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
Bram Moolenaar071d4272004-06-13 20:20:40 +000025syn match debchangelogVersion contained "(.\{-})"
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000026syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
27syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000028syn match debchangelogEmail contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
29syn match debchangelogEmail contained "<.\{-}>"
30
31" Define the entries that make up the changelog
Bram Moolenaarf2571c62015-06-09 19:44:55 +020032syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogFirstKV,debchangelogOtherKV,debchangelogTarget,debchangelogVersion,debchangelogBinNMU oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000033syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000034syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000035
36" Associate our matches and regions with pretty colours
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020037command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020039HiLink debchangelogHeader Error
40HiLink debchangelogFooter Identifier
41HiLink debchangelogEntry Normal
42HiLink debchangelogCloses Statement
43HiLink debchangelogLP Statement
44HiLink debchangelogFirstKV Identifier
45HiLink debchangelogOtherKV Identifier
46HiLink debchangelogName Comment
47HiLink debchangelogVersion Identifier
48HiLink debchangelogTarget Identifier
49HiLink debchangelogEmail Special
Bram Moolenaar071d4272004-06-13 20:20:40 +000050
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020051delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000052
53let b:current_syntax = "debchangelog"
54
55" vim: ts=8 sw=2