blob: 76b52cfaa437afaf2508bbd841f62e349af1e94a [file] [log] [blame]
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00001" Vim syntax file
Bram Moolenaarc236c162008-07-13 17:41:49 +00002" Language: Debian sources.list
Bram Moolenaar72540672018-02-09 22:00:53 +01003" Maintainer: Debian Vim Maintainers
Bram Moolenaarc236c162008-07-13 17:41:49 +00004" Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
James McCoyc7ddc9b2024-02-27 01:34:45 -05005" Last Change: 2024 Jan 30
Bram Moolenaarbe4e0162023-02-02 13:59:48 +00006" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/debsources.vim
Bram Moolenaard2cec5b2006-03-28 21:08:56 +00007
8" Standard syntax initialization
Bram Moolenaar85eee132018-05-06 17:57:30 +02009if exists('b:current_syntax')
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000010 finish
11endif
12
13" case sensitive
14syn case match
15
16" A bunch of useful keywords
James McCoyc7ddc9b2024-02-27 01:34:45 -050017syn match debsourcesType /\<\(deb-src\|deb\)\>/ contained
18syn match debsourcesFreeComponent /\<\(main\|universe\)\>/ contained
19syn match debsourcesNonFreeComponent /\<\(contrib\|non-free-firmware\|non-free\|restricted\|multiverse\)\>/ contained
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000020
21" Match comments
Bram Moolenaar5c736222010-01-06 20:54:52 +010022syn match debsourcesComment /#.*/ contains=@Spell
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000023
James McCoy7b7cda62023-10-26 17:14:30 -040024" Include Debian versioning information
25runtime! syntax/shared/debversions.vim
26
27exe 'syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(g:debSharedSupportedVersions, '\|'). '\)\>\([-[:alnum:]_./]*\)+'
28exe 'syn match debsourcesUnsupportedDistrKeyword +\([[:alnum:]_./]*\)\<\('. join(g:debSharedUnsupportedVersions, '\|') .'\)\>\([-[:alnum:]_./]*\)+'
29
30unlet g:debSharedSupportedVersions
31unlet g:debSharedUnsupportedVersions
Bram Moolenaarf2571c62015-06-09 19:44:55 +020032
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000033" Match uri's
Bram Moolenaar85eee132018-05-06 17:57:30 +020034syn match debsourcesUri '\(https\?://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\+'
James McCoy7b7cda62023-10-26 17:14:30 -040035syn region debsourcesLine start="^" end="$" contains=debsourcesType,debsourcesFreeComponent,debsourcesNonFreeComponent,debsourcesComment,debsourcesUri,debsourcesDistrKeyword,debsourcesUnsupportedDistrKeyword oneline
36
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000037" Associate our matches and regions with pretty colours
Bram Moolenaar938ae282023-02-20 20:44:55 +000038hi def link debsourcesType Statement
39hi def link debsourcesFreeComponent Statement
40hi def link debsourcesNonFreeComponent Statement
Bram Moolenaarf2571c62015-06-09 19:44:55 +020041hi def link debsourcesComment Comment
42hi def link debsourcesUri Constant
James McCoy7b7cda62023-10-26 17:14:30 -040043hi def link debsourcesDistrKeyword Type
44hi def link debsourcesUnsupportedDistrKeyword WarningMsg
Bram Moolenaard2cec5b2006-03-28 21:08:56 +000045
Bram Moolenaar85eee132018-05-06 17:57:30 +020046let b:current_syntax = 'debsources'