mirror of
https://github.com/sheerun/vim-polyglot.git
synced 2025-11-14 14:33:50 -05:00
Add syntax files from upstream vim repository
This commit is contained in:
175
syntax/udevrules.vim
Normal file
175
syntax/udevrules.vim
Normal file
@@ -0,0 +1,175 @@
|
||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
|
||||
|
||||
" Vim syntax file
|
||||
" Language: udev(8) rules file
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2006-12-18
|
||||
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:cpo_save = &cpo
|
||||
set cpo&vim
|
||||
|
||||
" TODO: Line continuations.
|
||||
|
||||
syn keyword udevrulesTodo contained TODO FIXME XXX NOTE
|
||||
|
||||
syn region udevrulesComment display oneline start='^\s*#' end='$'
|
||||
\ contains=udevrulesTodo,@Spell
|
||||
|
||||
syn keyword udevrulesRuleKey ACTION DEVPATH KERNEL SUBSYSTEM KERNELS
|
||||
\ SUBSYSTEMS DRIVERS RESULT
|
||||
\ nextgroup=udevrulesRuleTest
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesRuleKey ATTRS nextgroup=udevrulesAttrsPath
|
||||
|
||||
syn region udevrulesAttrsPath display transparent
|
||||
\ matchgroup=udevrulesDelimiter start='{'
|
||||
\ matchgroup=udevrulesDelimiter end='}'
|
||||
\ contains=udevrulesPath
|
||||
\ nextgroup=udevrulesRuleTest
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesRuleKey ENV nextgroup=udevrulesEnvVar
|
||||
|
||||
syn region udevrulesEnvVar display transparent
|
||||
\ matchgroup=udevrulesDelimiter start='{'
|
||||
\ matchgroup=udevrulesDelimiter end='}'
|
||||
\ contains=udevrulesVariable
|
||||
\ nextgroup=udevrulesRuleTest,udevrulesRuleEq
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesRuleKey PROGRAM RESULT
|
||||
\ nextgroup=udevrulesEStringTest,udevrulesEStringEq
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesAssignKey NAME SYMLINK OWNER GROUP RUN
|
||||
\ nextgroup=udevrulesEStringEq
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesAssignKey MODE LABEL GOTO WAIT_FOR_SYSFS
|
||||
\ nextgroup=udevrulesRuleEq
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesAssignKey ATTR nextgroup=udevrulesAttrsPath
|
||||
|
||||
syn region udevrulesAttrKey display transparent
|
||||
\ matchgroup=udevrulesDelimiter start='{'
|
||||
\ matchgroup=udevrulesDelimiter end='}'
|
||||
\ contains=udevrulesKey
|
||||
\ nextgroup=udevrulesRuleEq
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesAssignKey IMPORT nextgroup=udevrulesImport,
|
||||
\ udevrulesEStringEq
|
||||
\ skipwhite
|
||||
|
||||
syn region udevrulesImport display transparent
|
||||
\ matchgroup=udevrulesDelimiter start='{'
|
||||
\ matchgroup=udevrulesDelimiter end='}'
|
||||
\ contains=udevrulesImportType
|
||||
\ nextgroup=udevrulesEStringEq
|
||||
\ skipwhite
|
||||
|
||||
syn keyword udevrulesImportType program file parent
|
||||
|
||||
syn keyword udevrulesAssignKey OPTIONS
|
||||
\ nextgroup=udevrulesOptionsEq
|
||||
|
||||
syn match udevrulesPath contained display '[^}]\+'
|
||||
|
||||
syn match udevrulesVariable contained display '[^}]\+'
|
||||
|
||||
syn match udevrulesRuleTest contained display '[=!:]='
|
||||
\ nextgroup=udevrulesString skipwhite
|
||||
|
||||
syn match udevrulesEStringTest contained display '[=!+:]='
|
||||
\ nextgroup=udevrulesEString skipwhite
|
||||
|
||||
syn match udevrulesRuleEq contained display '+=\|=\ze[^=]'
|
||||
\ nextgroup=udevrulesString skipwhite
|
||||
|
||||
syn match udevrulesEStringEq contained '+=\|=\ze[^=]'
|
||||
\ nextgroup=udevrulesEString skipwhite
|
||||
|
||||
syn match udevrulesOptionsEq contained '+=\|=\ze[^=]'
|
||||
\ nextgroup=udevrulesOptions skipwhite
|
||||
|
||||
syn region udevrulesEString contained display oneline start=+"+ end=+"+
|
||||
\ contains=udevrulesStrEscapes,udevrulesStrVars
|
||||
|
||||
syn match udevrulesStrEscapes contained '%[knpbMmcPrN%]'
|
||||
|
||||
" TODO: This can actually stand alone (without {…}), so add a nextgroup here.
|
||||
syn region udevrulesStrEscapes contained start='%c{' end='}'
|
||||
\ contains=udevrulesStrNumber
|
||||
|
||||
syn region udevrulesStrEscapes contained start='%s{' end='}'
|
||||
\ contains=udevrulesPath
|
||||
|
||||
syn region udevrulesStrEscapes contained start='%E{' end='}'
|
||||
\ contains=udevrulesVariable
|
||||
|
||||
syn match udevrulesStrNumber contained '\d\++\='
|
||||
|
||||
syn match udevrulesStrVars contained display '$\%(kernel\|number\|devpath\|id\|major\|minor\|result\|parent\|root\|tempnode\)\>'
|
||||
|
||||
syn region udevrulesStrVars contained start='$attr{' end='}'
|
||||
\ contains=udevrulesPath
|
||||
|
||||
syn region udevrulesStrVars contained start='$env{' end='}'
|
||||
\ contains=udevrulesVariable
|
||||
|
||||
syn match udevrulesStrVars contained display '\$\$'
|
||||
|
||||
syn region udevrulesString contained display oneline start=+"+ end=+"+
|
||||
\ contains=udevrulesPattern
|
||||
|
||||
syn match udevrulesPattern contained '[*?]'
|
||||
syn region udevrulesPattern contained start='\[!\=' end='\]'
|
||||
\ contains=udevrulesPatRange
|
||||
|
||||
syn match udevrulesPatRange contained '[^[-]-[^]-]'
|
||||
|
||||
syn region udevrulesOptions contained display oneline start=+"+ end=+"+
|
||||
\ contains=udevrulesOption,udevrulesOptionSep
|
||||
|
||||
syn keyword udevrulesOption contained last_rule ignore_device ignore_remove
|
||||
\ all_partitions
|
||||
|
||||
syn match udevrulesOptionSep contained ','
|
||||
|
||||
hi def link udevrulesTodo Todo
|
||||
hi def link udevrulesComment Comment
|
||||
hi def link udevrulesRuleKey Keyword
|
||||
hi def link udevrulesDelimiter Delimiter
|
||||
hi def link udevrulesAssignKey Identifier
|
||||
hi def link udevrulesPath Identifier
|
||||
hi def link udevrulesVariable Identifier
|
||||
hi def link udevrulesAttrKey Identifier
|
||||
" XXX: setting this to Operator makes for extremely intense highlighting.
|
||||
hi def link udevrulesEq Normal
|
||||
hi def link udevrulesRuleEq udevrulesEq
|
||||
hi def link udevrulesEStringEq udevrulesEq
|
||||
hi def link udevrulesOptionsEq udevrulesEq
|
||||
hi def link udevrulesEString udevrulesString
|
||||
hi def link udevrulesStrEscapes SpecialChar
|
||||
hi def link udevrulesStrNumber Number
|
||||
hi def link udevrulesStrVars Identifier
|
||||
hi def link udevrulesString String
|
||||
hi def link udevrulesPattern SpecialChar
|
||||
hi def link udevrulesPatRange SpecialChar
|
||||
hi def link udevrulesOptions udevrulesString
|
||||
hi def link udevrulesOption Type
|
||||
hi def link udevrulesOptionSep Delimiter
|
||||
hi def link udevrulesImportType Type
|
||||
|
||||
let b:current_syntax = "udevrules"
|
||||
|
||||
let &cpo = s:cpo_save
|
||||
unlet s:cpo_save
|
||||
|
||||
endif
|
||||
Reference in New Issue
Block a user