codekingpro/portable-devtools
115k
1" Vim syntax file2" Language: udev(8) rules file3" Previous Maintainer: Nikolai Weibull <now@bitwi.se>4" Latest Revision: 2006-12-185 6if exists("b:current_syntax")7 finish8endif9 10let s:cpo_save = &cpo11set cpo&vim12 13" TODO: Line continuations.14 15syn keyword udevrulesTodo contained TODO FIXME XXX NOTE16 17syn region udevrulesComment display oneline start='^\s*#' end='$'18 \ contains=udevrulesTodo,@Spell19 20syn keyword udevrulesRuleKey ACTION DEVPATH KERNEL SUBSYSTEM KERNELS21 \ SUBSYSTEMS DRIVERS RESULT22 \ nextgroup=udevrulesRuleTest23 \ skipwhite24 25syn keyword udevrulesRuleKey ATTRS nextgroup=udevrulesAttrsPath26 27syn region udevrulesAttrsPath display transparent28 \ matchgroup=udevrulesDelimiter start='{'29 \ matchgroup=udevrulesDelimiter end='}'30 \ contains=udevrulesPath31 \ nextgroup=udevrulesRuleTest32 \ skipwhite33 34syn keyword udevrulesRuleKey ENV nextgroup=udevrulesEnvVar35 36syn region udevrulesEnvVar display transparent37 \ matchgroup=udevrulesDelimiter start='{'38 \ matchgroup=udevrulesDelimiter end='}'39 \ contains=udevrulesVariable40 \ nextgroup=udevrulesRuleTest,udevrulesRuleEq41 \ skipwhite42 43syn keyword udevrulesRuleKey PROGRAM RESULT44 \ nextgroup=udevrulesEStringTest,udevrulesEStringEq45 \ skipwhite46 47syn keyword udevrulesAssignKey NAME SYMLINK OWNER GROUP RUN48 \ nextgroup=udevrulesEStringEq49 \ skipwhite50 51syn keyword udevrulesAssignKey MODE LABEL GOTO WAIT_FOR_SYSFS52 \ nextgroup=udevrulesRuleEq53 \ skipwhite54 55syn keyword udevrulesAssignKey ATTR nextgroup=udevrulesAttrsPath56 57syn region udevrulesAttrKey display transparent58 \ matchgroup=udevrulesDelimiter start='{'59 \ matchgroup=udevrulesDelimiter end='}'60 \ contains=udevrulesKey61 \ nextgroup=udevrulesRuleEq62 \ skipwhite63 64syn keyword udevrulesAssignKey IMPORT nextgroup=udevrulesImport,65 \ udevrulesEStringEq66 \ skipwhite67 68syn region udevrulesImport display transparent69 \ matchgroup=udevrulesDelimiter start='{'70 \ matchgroup=udevrulesDelimiter end='}'71 \ contains=udevrulesImportType72 \ nextgroup=udevrulesEStringEq73 \ skipwhite74 75syn keyword udevrulesImportType program file parent76 77syn keyword udevrulesAssignKey OPTIONS78 \ nextgroup=udevrulesOptionsEq79 80syn match udevrulesPath contained display '[^}]\+'81 82syn match udevrulesVariable contained display '[^}]\+'83 84syn match udevrulesRuleTest contained display '[=!:]='85 \ nextgroup=udevrulesString skipwhite86 87syn match udevrulesEStringTest contained display '[=!+:]='88 \ nextgroup=udevrulesEString skipwhite89 90syn match udevrulesRuleEq contained display '+=\|=\ze[^=]'91 \ nextgroup=udevrulesString skipwhite92 93syn match udevrulesEStringEq contained '+=\|=\ze[^=]'94 \ nextgroup=udevrulesEString skipwhite95 96syn match udevrulesOptionsEq contained '+=\|=\ze[^=]'97 \ nextgroup=udevrulesOptions skipwhite98 99syn region udevrulesEString contained display oneline start=+"+ end=+"+100 \ contains=udevrulesStrEscapes,udevrulesStrVars101 102syn match udevrulesStrEscapes contained '%[knpbMmcPrN%]'103 104" TODO: This can actually stand alone (without {…}), so add a nextgroup here.105syn region udevrulesStrEscapes contained start='%c{' end='}'106 \ contains=udevrulesStrNumber107 108syn region udevrulesStrEscapes contained start='%s{' end='}'109 \ contains=udevrulesPath110 111syn region udevrulesStrEscapes contained start='%E{' end='}'112 \ contains=udevrulesVariable113 114syn match udevrulesStrNumber contained '\d\++\='115 116syn match udevrulesStrVars contained display '$\%(kernel\|number\|devpath\|id\|major\|minor\|result\|parent\|root\|tempnode\)\>'117 118syn region udevrulesStrVars contained start='$attr{' end='}'119 \ contains=udevrulesPath120 121syn region udevrulesStrVars contained start='$env{' end='}'122 \ contains=udevrulesVariable123 124syn match udevrulesStrVars contained display '\$\$'125 126syn region udevrulesString contained display oneline start=+"+ end=+"+127 \ contains=udevrulesPattern128 129syn match udevrulesPattern contained '[*?]'130syn region udevrulesPattern contained start='\[!\=' end='\]'131 \ contains=udevrulesPatRange132 133syn match udevrulesPatRange contained '[^[-]-[^]-]'134 135syn region udevrulesOptions contained display oneline start=+"+ end=+"+136 \ contains=udevrulesOption,udevrulesOptionSep137 138syn keyword udevrulesOption contained last_rule ignore_device ignore_remove139 \ all_partitions140 141syn match udevrulesOptionSep contained ','142 143hi def link udevrulesTodo Todo144hi def link udevrulesComment Comment145hi def link udevrulesRuleKey Keyword146hi def link udevrulesDelimiter Delimiter147hi def link udevrulesAssignKey Identifier148hi def link udevrulesPath Identifier149hi def link udevrulesVariable Identifier150hi def link udevrulesAttrKey Identifier151" XXX: setting this to Operator makes for extremely intense highlighting.152hi def link udevrulesEq Normal153hi def link udevrulesRuleEq udevrulesEq154hi def link udevrulesEStringEq udevrulesEq155hi def link udevrulesOptionsEq udevrulesEq156hi def link udevrulesEString udevrulesString157hi def link udevrulesStrEscapes SpecialChar158hi def link udevrulesStrNumber Number159hi def link udevrulesStrVars Identifier160hi def link udevrulesString String161hi def link udevrulesPattern SpecialChar162hi def link udevrulesPatRange SpecialChar163hi def link udevrulesOptions udevrulesString164hi def link udevrulesOption Type165hi def link udevrulesOptionSep Delimiter166hi def link udevrulesImportType Type167 168let b:current_syntax = "udevrules"169 170let &cpo = s:cpo_save171unlet s:cpo_save172 