123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- " 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
|