deb822sources.vim (3655B)
1 " Vim syntax file 2 " Language: Debian deb822-format source list file 3 " Maintainer: Debian Vim Maintainers 4 " Last Change: 2024 Jan 30 5 " URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/deb822sources.vim 6 7 " Standard syntax initialization 8 if exists('b:current_syntax') 9 finish 10 endif 11 12 " case insensitive 13 syn case ignore 14 15 " A bunch of useful keywords 16 syn match deb822sourcesType /\<\(deb-src\|deb\)\ */ contained 17 syn match deb822sourcesFreeComponent /\<\(main\|universe\)\> */ contained 18 syn match deb822sourcesNonFreeComponent /\<\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)\> */ contained 19 20 " Comments are matched from the first character of a line to the end-of-line 21 syn region deb822sourcesComment start="^#" end="$" 22 23 " Include Debian versioning information 24 runtime! syntax/shared/debversions.vim 25 26 exe 'syn match deb822sourcesSupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\) *+' 27 exe 'syn match deb822sourcesUnsupportedSuites contained + *\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\) *+' 28 29 unlet g:debSharedSupportedVersions 30 unlet g:debSharedUnsupportedVersions 31 32 syn region deb822sourcesSuites start="\(^Suites: *\)\@<=" end="$" contains=deb822sourcesSupportedSuites,deb822sourcesUnsupportedSuites oneline 33 34 syn keyword deb822sourcesForce contained force 35 syn keyword deb822sourcesYesNo contained yes no 36 37 " Match uri's 38 syn match deb822sourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+' 39 40 syn region deb822sourcesStrictField matchgroup=deb822sourcesEntryField start="^\%(Types\|URIs\|Suites\|Components\): *" end="$" contains=deb822sourcesType,deb822sourcesUri,deb822sourcesSupportedSuites,deb822sourcesUnsupportedSuites,deb822sourcesFreeComponent,deb822sourcesNonFreeComponent oneline 41 syn region deb822sourcesField matchgroup=deb822sourcesOptionField start="^\%(Signed-By\|Check-Valid-Until\|Valid-Until-Min\|Valid-Until-Max\|Date-Max-Future\|InRelease-Path\): *" end="$" oneline 42 syn region deb822sourcesField matchgroup=deb822sourcesMultiValueOptionField start="^\%(Architectures\|Languages\|Targets\)\%(-Add\|-Remove\)\?: *" end="$" oneline 43 syn region deb822sourcesStrictField matchgroup=deb822sourcesBooleanOptionField start="^\%(PDiffs\|Allow-Insecure\|Allow-Weak\|Allow-Downgrade-To-Insecure\|Trusted\|Check-Date\|Enabled\): *" end="$" contains=deb822sourcesYesNo oneline 44 syn region deb822sourcesStrictField matchgroup=deb822sourcesForceBooleanOptionField start="^\%(By-Hash\): *" end="$" contains=deb822sourcesForce,deb822sourcesYesNo oneline 45 46 hi def link deb822sourcesField Default 47 hi def link deb822sourcesComment Comment 48 hi def link deb822sourcesEntryField Keyword 49 hi def link deb822sourcesOptionField Special 50 hi def link deb822sourcesMultiValueOptionField Special 51 hi def link deb822sourcesBooleanOptionField Special 52 hi def link deb822sourcesForceBooleanOptionField Special 53 hi def link deb822sourcesStrictField Error 54 hi def link deb822sourcesType Identifier 55 hi def link deb822sourcesFreeComponent Identifier 56 hi def link deb822sourcesNonFreeComponent Identifier 57 hi def link deb822sourcesForce Identifier 58 hi def link deb822sourcesYesNo Identifier 59 hi def link deb822sourcesUri Constant 60 hi def link deb822sourcesSupportedSuites Type 61 hi def link deb822sourcesUnsupportedSuites WarningMsg 62 63 let b:current_syntax = 'deb822sources'