summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/debchangelog.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/debchangelog.vim')
-rw-r--r--runtime/syntax/debchangelog.vim51
1 files changed, 51 insertions, 0 deletions
diff --git a/runtime/syntax/debchangelog.vim b/runtime/syntax/debchangelog.vim
new file mode 100644
index 0000000..4ca4c29
--- /dev/null
+++ b/runtime/syntax/debchangelog.vim
@@ -0,0 +1,51 @@
+" Vim syntax file
+" Language: Debian changelog files
+" Maintainer: Debian Vim Maintainers
+" Former Maintainers: Gerfried Fuchs <alfie@ist.org>
+" Wichert Akkerman <wakkerma@debian.org>
+" Last Change: 2019 Jan 26
+" URL: https://salsa.debian.org/vim-team/vim-debian/blob/master/syntax/debchangelog.vim
+
+" Standard syntax initialization
+if exists('b:current_syntax')
+ finish
+endif
+
+" Case doesn't matter for us
+syn case ignore
+
+let s:urgency='urgency=\(low\|medium\|high\|emergency\|critical\)\( [^[:space:],][^,]*\)\='
+let s:binNMU='binary-only=yes'
+
+" Define some common expressions we can use later on
+syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
+exe 'syn match debchangelogFirstKV contained "; \('.s:urgency.'\|'.s:binNMU.'\)"'
+exe 'syn match debchangelogOtherKV contained ", \('.s:urgency.'\|'.s:binNMU.'\)"'
+syn match debchangelogTarget contained "\v %(frozen|unstable|sid|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|squeeze-%(backports%(-sloppy)=|volatile|lts|security)|%(wheezy|jessie)%(-backports%(-sloppy)=|-security)=|stretch%(-backports|-security)=|%(devel|precise|trusty|vivid|wily|xenial|yakkety|zesty|artful|bionic|cosmic|disco)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+syn match debchangelogVersion contained "(.\{-})"
+syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
+syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
+syn match debchangelogEmail contained "[_=[:alnum:].+-]\+@[[:alnum:]./\-]\+"
+syn match debchangelogEmail contained "<.\{-}>"
+
+" Define the entries that make up the changelog
+syn region debchangelogHeader start="^[^ ]" end="$" contains=debchangelogName,debchangelogFirstKV,debchangelogOtherKV,debchangelogTarget,debchangelogVersion,debchangelogBinNMU oneline
+syn region debchangelogFooter start="^ [^ ]" end="$" contains=debchangelogEmail oneline
+syn region debchangelogEntry start="^ " end="$" contains=debchangelogCloses,debchangelogLP oneline
+
+" Associate our matches and regions with pretty colours
+hi def link debchangelogHeader Error
+hi def link debchangelogFooter Identifier
+hi def link debchangelogEntry Normal
+hi def link debchangelogCloses Statement
+hi def link debchangelogLP Statement
+hi def link debchangelogFirstKV Identifier
+hi def link debchangelogOtherKV Identifier
+hi def link debchangelogName Comment
+hi def link debchangelogVersion Identifier
+hi def link debchangelogTarget Identifier
+hi def link debchangelogEmail Special
+
+let b:current_syntax = 'debchangelog'
+
+" vim: ts=8 sw=2