123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- " 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: 2022 Mar 28
- " 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'
- let s:cpo = &cpo
- set cpo-=C
- let s:supported = [
- \ 'oldstable', 'stable', 'testing', 'unstable', 'experimental',
- \ 'jessie', 'stretch', 'buster', 'bullseye', 'bookworm',
- \ 'trixie', 'sid', 'rc-buggy',
- \
- \ 'trusty', 'xenial', 'bionic', 'focal', 'impish', 'jammy',
- \ 'devel'
- \ ]
- let s:unsupported = [
- \ 'frozen', 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato',
- \ 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy',
- \
- \ 'warty', 'hoary', 'breezy', 'dapper', 'edgy', 'feisty',
- \ 'gutsy', 'hardy', 'intrepid', 'jaunty', 'karmic', 'lucid',
- \ 'maverick', 'natty', 'oneiric', 'precise', 'quantal', 'raring', 'saucy',
- \ 'utopic', 'vivid', 'wily', 'yakkety', 'zesty', 'artful', 'cosmic',
- \ 'disco', 'eoan', 'hirsute', 'groovy'
- \ ]
- let &cpo=s:cpo
- " 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.'\)"'
- exe 'syn match debchangelogTarget contained "\%( \%('.join(s:supported, '\|').'\)\>[-[:alnum:]]*\)\+"'
- exe 'syn match debchangelogUnsupportedTarget contained "\%( \%('.join(s:unsupported, '\|').'\)\>[-[:alnum:]]*\)\+"'
- syn match debchangelogUnreleased contained / UNRELEASED/
- 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,debchangelogUnsupportedTarget,debchangelogUnreleased,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 debchangelogUnsupportedTarget Identifier
- hi def link debchangelogUnreleased WarningMsg
- hi def link debchangelogEmail Special
- let b:current_syntax = 'debchangelog'
- " vim: ts=8 sw=2
|