neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

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'