1" Vim syntax file 2" Language: udev(8) rules file 3" Maintainer: Nikolai Weibull <[email protected]> 4" Latest Revision: 2006-04-19 5 6if exists("b:current_syntax") 7 finish 8endif 9 10let s:cpo_save = &cpo 11set cpo&vim 12 13syn keyword udevrulesTodo contained TODO FIXME XXX NOTE 14 15syn region udevrulesComment display oneline start='^\s*#' end='$' 16 \ contains=udevrulesTodo,@Spell 17 18syn keyword udevrulesRuleKey BUS KERNEL SUBSYSTEM DRIVER ID RESULT 19 \ nextgroup=udevrulesRuleEq 20 21syn keyword udevrulesRuleKey SYSFS nextgroup=udevrulesSysFSPath 22 23syn region udevrulesSysFSPath display transparent 24 \ matchgroup=udevrulesDelimiter start='{' 25 \ matchgroup=udevrulesDelimiter end='}' 26 \ contains=udevrulesPath 27 \ nextgroup=udevrulesRuleEq 28 29syn keyword udevrulesRuleKey ENV nextgroup=udevrulesEnvVar 30 31syn region udevrulesEnvVar display transparent 32 \ matchgroup=udevrulesDelimiter start='{' 33 \ matchgroup=udevrulesDelimiter end='}' 34 \ contains=udevrulesVariable 35 \ nextgroup=udevrulesRuleEq 36 37syn keyword udevrulesRuleKey PROGRAM 38 \ nextgroup=udevrulesEStringEq 39 40syn keyword udevrulesAssignKey NAME SYMLINK OWNER GROUP 41 \ nextgroup=udevrulesEStringEq 42 43syn keyword udevrulesAssignKey MODE 44 \ nextgroup=udevrulesRuleEq 45 46syn keyword udevrulesAssignKey OPTIONS 47 \ nextgroup=udevrulesOptionsEq 48 49syn match udevrulesPath contained display '[^}]\+' 50 51syn match udevrulesVariable contained display '[^}]\+' 52 53syn match udevrulesRuleEq contained '[[:space:]=]' 54 \ nextgroup=udevrulesString skipwhite 55 56syn match udevrulesEStringEq contained '[[:space:]=]' 57 \ nextgroup=udevrulesEString skipwhite 58 59syn match udevrulesOptionsEq contained '[[:space:]=]' 60 \ nextgroup=udevrulesOptions skipwhite 61 62syn region udevrulesEString contained display oneline start=+"+ end=+"+ 63 \ contains=udevrulesStrEscapes 64 65syn match udevrulesStrEscapes contained '%[nkpMmbcNPe%]' 66 67syn region udevrulesStrEscapes contained start='%c{' end='}' 68 \ contains=udevrulesStrNumber 69 70syn region udevrulesStrEscapes contained start='%s{' end='}' 71 \ contains=udevrulesPath 72 73syn match udevrulesStrNumber contained '\d\++\=' 74 75syn region udevrulesString contained display oneline start=+"+ end=+"+ 76 \ contains=udevrulesPattern 77 78syn match udevrulesPattern contained '[*?]' 79syn region udevrulesPattern contained start='\[!\=' end='\]' 80 \ contains=udevrulesPatRange 81 82syn match udevrulesPatRange contained '[^[-]-[^]-]' 83 84syn region udevrulesOptions contained display oneline start=+"+ end=+"+ 85 \ contains=udevrulesOption,udevrulesOptionSep 86 87syn keyword udevrulesOption contained last_rule ignore_device ignore_remove 88 \ all_partitions 89 90syn match udevrulesOptionSep contained ',' 91 92hi def link udevrulesTodo Todo 93hi def link udevrulesComment Comment 94hi def link udevrulesRuleKey Keyword 95hi def link udevrulesDelimiter Delimiter 96hi def link udevrulesAssignKey Identifier 97hi def link udevrulesPath Identifier 98hi def link udevrulesVariable Identifier 99" XXX: setting this to Operator makes for extremely intense highlighting. 100hi def link udevrulesEq Normal 101hi def link udevrulesRuleEq udevrulesEq 102hi def link udevrulesEStringEq udevrulesEq 103hi def link udevrulesOptionsEq udevrulesEq 104hi def link udevrulesEString udevrulesString 105hi def link udevrulesStrEscapes SpecialChar 106hi def link udevrulesStrNumber Number 107hi def link udevrulesString String 108hi def link udevrulesPattern SpecialChar 109hi def link udevrulesPatRange SpecialChar 110hi def link udevrulesOptions udevrulesString 111hi def link udevrulesOption Type 112hi def link udevrulesOptionSep Delimiter 113 114let b:current_syntax = "udevrules" 115 116let &cpo = s:cpo_save 117unlet s:cpo_save 118