2014-07-10 21:05:51 -07:00
|
|
|
" Vim syntax file
|
2017-11-05 21:05:54 -07:00
|
|
|
" Language: udev(8) rules file
|
|
|
|
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
|
|
|
" Latest Revision: 2006-12-18
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
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
|