blob: 93b03ae06deae59543cfd5a1d6a0088a70b2d628 [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
Bram Moolenaar72540672018-02-09 22:00:53 +01003" Maintainer: Debian Vim Maintainers
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00004" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
5" Wichert Akkerman <wakkerma@debian.org>
Bram Moolenaar6aa57292021-08-14 21:25:52 +02006" Last Change: 2021 Aug 03
Bram Moolenaar72540672018-02-09 22:00:53 +01007" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
9" Standard syntax initialization
Bram Moolenaar85eee132018-05-06 17:57:30 +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 Moolenaar314dd792019-02-03 15:27:20 +010017let s:urgency='urgency=\(low\|medium\|high\|emergency\|critical\)\( [^[:space:],][^,]*\)\='
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020018let s:binNMU='binary-only=yes'
Bram Moolenaarf2571c62015-06-09 19:44:55 +020019
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010020let s:cpo = &cpo
21set cpo-=C
22let s:supported = [
23 \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
Bram Moolenaar3132cdd2020-11-05 20:41:49 +010024 \ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
Bram Moolenaar23515b42020-11-29 14:36:24 +010025 \ 'trixie', 'sid', 'rc-buggy',
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010026 \
Bram Moolenaar6aa57292021-08-14 21:25:52 +020027 \ 'trusty', 'xenial', 'bionic', 'focal', 'hirsute', 'impish', 'devel'
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010028 \ ]
29let s:unsupported = [
30 \ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
Bram Moolenaar3132cdd2020-11-05 20:41:49 +010031 \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010032 \
33 \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
34 \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
35 \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
Bram Moolenaar560979e2020-02-04 22:53:05 +010036 \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
Bram Moolenaar6aa57292021-08-14 21:25:52 +020037 \ 'disco', 'eoan', 'groovy'
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010038 \ ]
39let &cpo=s:cpo
40
Bram Moolenaar071d4272004-06-13 20:20:40 +000041" Define some common expressions we can use later on
Bram Moolenaar5c736222010-01-06 20:54:52 +010042syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
Bram Moolenaar3ec574f2017-06-13 18:12:01 +020043exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
44exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010045exe 'syn match debchangelogTarget contained "\%( \%('.join(s:supported, '\|').'\)\>[-[:alnum:]]*\)\+"'
46exe 'syn match debchangelogUnsupportedTarget contained "\%( \%('.join(s:unsupported, '\|').'\)\>[-[:alnum:]]*\)\+"'
Bram Moolenaar560979e2020-02-04 22:53:05 +010047syn match debchangelogUnreleased contained / UNRELEASED/
Bram Moolenaar071d4272004-06-13 20:20:40 +000048syn match debchangelogVersion contained "(.\{-})"
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000049syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
50syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
Bram Moolenaar071d4272004-06-13 20:20:40 +000051syn match debchangelogEmail contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
52syn match debchangelogEmail contained "<.\{-}>"
53
54" Define the entries that make up the changelog
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010055syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogFirstKV,debchangelogOtherKV,debchangelogTarget,debchangelogUnsupportedTarget,debchangelogUnreleased,debchangelogVersion,debchangelogBinNMU oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000056syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000057syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000058
59" Associate our matches and regions with pretty colours
Bram Moolenaarf37506f2016-08-31 22:22:10 +020060hi def link debchangelogHeader Error
61hi def link debchangelogFooter Identifier
62hi def link debchangelogEntry Normal
63hi def link debchangelogCloses Statement
64hi def link debchangelogLP Statement
65hi def link debchangelogFirstKV Identifier
66hi def link debchangelogOtherKV Identifier
67hi def link debchangelogName Comment
68hi def link debchangelogVersion Identifier
69hi def link debchangelogTarget Identifier
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010070hi def link debchangelogUnsupportedTarget Identifier
71hi def link debchangelogUnreleased WarningMsg
Bram Moolenaarf37506f2016-08-31 22:22:10 +020072hi def link debchangelogEmail Special
Bram Moolenaar071d4272004-06-13 20:20:40 +000073
Bram Moolenaar85eee132018-05-06 17:57:30 +020074let b:current_syntax = 'debchangelog'
Bram Moolenaar071d4272004-06-13 20:20:40 +000075
76" vim: ts=8 sw=2