mirror of
https://github.com/neovim/neovim
synced 2025-07-15 16:51:49 +00:00
vim-patch:e9d331d: runtime(autopkgtest): add syntax file for autopkgtest
related: vim/vim#17679
e9d331d173
Co-authored-by: James McCoy <jamessan@jamessan.com>
This commit is contained in:
committed by
Christian Clason
parent
d73788fad2
commit
4310f3f580
95
runtime/syntax/autopkgtest.vim
Normal file
95
runtime/syntax/autopkgtest.vim
Normal file
@ -0,0 +1,95 @@
|
||||
" Vim syntax file
|
||||
" Language: Debian autopkgtest control files
|
||||
" Maintainer: Debian Vim Maintainers
|
||||
" Last Change: 2025 Jul 05
|
||||
" URL: https://salsa.debian.org/vim-team/vim-debian/blob/main/syntax/autopkgtest.vim
|
||||
"
|
||||
" Specification of the autopkgtest format is available at:
|
||||
" https://www.debian.org/doc/debian-policy/autopkgtest.txt
|
||||
|
||||
" Standard syntax initialization
|
||||
if exists('b:current_syntax')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" Must call this first, because it will clear other settings
|
||||
syn sync clear
|
||||
syn sync match autopkgtestSync grouphere NONE '^$'
|
||||
|
||||
" Should match case except for the keys of each field
|
||||
syn case match
|
||||
|
||||
syn iskeyword @,48-57,-
|
||||
|
||||
" #-Comments
|
||||
syn match autopkgtestComment "#.*" contains=@Spell
|
||||
|
||||
syn match autopkgtestTests contained "[a-z0-9][a-z0-9+.-]\+\%(,\=\s*[a-z0-9][a-z0-9+.-]\+\)*,\="
|
||||
syn match autopkgtestArbitrary contained "[^#]*"
|
||||
syn keyword autopkgtestRestrictions contained
|
||||
\ allow-stderr
|
||||
\ breaks-testbe
|
||||
\ build-neede
|
||||
\ flaky
|
||||
\ hint-testsuite-trigger
|
||||
\ isolation-container
|
||||
\ isolation-machine
|
||||
\ needs-internet
|
||||
\ needs-reboot
|
||||
\ needs-root
|
||||
\ needs-sudo
|
||||
\ rw-build-tree
|
||||
\ skip-foreign-architecture
|
||||
\ skip-not-installable
|
||||
\ skippable
|
||||
\ superficial
|
||||
syn keyword autopkgtestDeprecatedRestrictions contained needs-recommends
|
||||
syn match autopkgtestFeatures contained 'test-name=[^, ]*\%([, ]*[^, #]\)*,\='
|
||||
syn match autopkgtestDepends contained '\%(@builddeps@\|@recommends@\|@\)'
|
||||
|
||||
runtime! syntax/shared/debarchitectures.vim
|
||||
|
||||
syn keyword autopkgtestArchitecture contained any
|
||||
exe 'syn keyword autopkgtestArchitecture contained '. join(g:debArchitectureKernelAnyArch)
|
||||
exe 'syn keyword autopkgtestArchitecture contained '. join(g:debArchitectureAnyKernelArch)
|
||||
exe 'syn keyword autopkgtestArchitecture contained '. join(g:debArchitectureArchs)
|
||||
|
||||
syn case ignore
|
||||
|
||||
" Catch-all for the legal fields
|
||||
syn region autopkgtestMultiField matchgroup=autopkgtestKey start="^Tests: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=autopkgtestTests,autopkgtestComment
|
||||
syn region autopkgtestMultiField matchgroup=autopkgtestKey start="^Restrictions: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=autopkgtestRestrictions,autopkgtestDeprecatedRestrictions,autopkgtestComment
|
||||
syn region autopkgtestMultiField matchgroup=autopkgtestKey start="^Features: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=autopkgtestFeatures,autopkgtestComment
|
||||
syn region autopkgtestMultiField matchgroup=autopkgtestKey start="^Depends: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=autopkgtestDepends,autopkgtestComment
|
||||
syn region autopkgtestMultiField matchgroup=autopkgtestKey start="^Classes: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=autopkgtestComment
|
||||
syn region autopkgtestMultiField matchgroup=autopkgtestKey start="^Architecture: *" skip="^[ \t]" end="^$"me=s-1 end="^[^ \t#]"me=s-1 contains=autopkgtestArchitecture,autopkgtestComment
|
||||
|
||||
" Fields for which we do strict syntax checking
|
||||
syn region autopkgtestStrictField matchgroup=autopkgtestKey start="^Test-Command: *" end="$" end='#'me=s-1 contains=autopkgtestArbitrary,autopkgtestComment oneline
|
||||
syn region autopkgtestStrictField matchgroup=autopkgtestKey start="^Tests-Directory: *" end="$" end='#'me=s-1 contains=autopkgtestArbitrary,autopkgtestComment oneline
|
||||
|
||||
syn match autopkgtestError '^\%(\%(Architecture\|Classes\|Depends\|Features\|Restrictions\|Test-Command\|Tests-Directory\|Tests\)\@![^ #]*:\)'
|
||||
|
||||
" Associate our matches and regions with pretty colours
|
||||
hi def link autopkgtestKey Keyword
|
||||
hi def link autopkgtestRestrictions Identifier
|
||||
hi def link autopkgtestFeatures Keyword
|
||||
hi def link autopkgtestDepends Identifier
|
||||
hi def link autopkgtestArchitecture Identifier
|
||||
hi def link autopkgtestStrictField Error
|
||||
hi def link autopkgtestDeprecatedRestrictions Error
|
||||
hi def link autopkgtestMultiField Normal
|
||||
hi def link autopkgtestArbitrary Normal
|
||||
hi def link autopkgtestTests Normal
|
||||
hi def link autopkgtestComment Comment
|
||||
hi def link autopkgtestError Error
|
||||
|
||||
let b:current_syntax = 'autopkgtest'
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
" vim: ts=8 sw=2
|
Reference in New Issue
Block a user