xref: /vim-8.2.3635/runtime/syntax/udevrules.vim (revision 214641f7)
10dc065eeSBram Moolenaar" Vim syntax file
20dc065eeSBram Moolenaar" Language:             udev(8) rules file
3*214641f7SBram Moolenaar" Previous Maintainer:  Nikolai Weibull <[email protected]>
42c7a7638SBram Moolenaar" Latest Revision:      2006-12-18
50dc065eeSBram Moolenaar
60dc065eeSBram Moolenaarif exists("b:current_syntax")
70dc065eeSBram Moolenaar  finish
80dc065eeSBram Moolenaarendif
90dc065eeSBram Moolenaar
100dc065eeSBram Moolenaarlet s:cpo_save = &cpo
110dc065eeSBram Moolenaarset cpo&vim
120dc065eeSBram Moolenaar
132c7a7638SBram Moolenaar" TODO: Line continuations.
142c7a7638SBram Moolenaar
150dc065eeSBram Moolenaarsyn keyword udevrulesTodo       contained TODO FIXME XXX NOTE
160dc065eeSBram Moolenaar
170dc065eeSBram Moolenaarsyn region  udevrulesComment    display oneline start='^\s*#' end='$'
180dc065eeSBram Moolenaar                                \ contains=udevrulesTodo,@Spell
190dc065eeSBram Moolenaar
202c7a7638SBram Moolenaarsyn keyword udevrulesRuleKey    ACTION DEVPATH KERNEL SUBSYSTEM KERNELS
212c7a7638SBram Moolenaar                                \ SUBSYSTEMS DRIVERS RESULT
222c7a7638SBram Moolenaar                                \ nextgroup=udevrulesRuleTest
232c7a7638SBram Moolenaar                                \ skipwhite
240dc065eeSBram Moolenaar
252c7a7638SBram Moolenaarsyn keyword udevrulesRuleKey    ATTRS nextgroup=udevrulesAttrsPath
260dc065eeSBram Moolenaar
272c7a7638SBram Moolenaarsyn region  udevrulesAttrsPath  display transparent
280dc065eeSBram Moolenaar                                \ matchgroup=udevrulesDelimiter start='{'
290dc065eeSBram Moolenaar                                \ matchgroup=udevrulesDelimiter end='}'
300dc065eeSBram Moolenaar                                \ contains=udevrulesPath
312c7a7638SBram Moolenaar                                \ nextgroup=udevrulesRuleTest
322c7a7638SBram Moolenaar                                \ skipwhite
330dc065eeSBram Moolenaar
340dc065eeSBram Moolenaarsyn keyword udevrulesRuleKey    ENV nextgroup=udevrulesEnvVar
350dc065eeSBram Moolenaar
360dc065eeSBram Moolenaarsyn region  udevrulesEnvVar     display transparent
370dc065eeSBram Moolenaar                                \ matchgroup=udevrulesDelimiter start='{'
380dc065eeSBram Moolenaar                                \ matchgroup=udevrulesDelimiter end='}'
390dc065eeSBram Moolenaar                                \ contains=udevrulesVariable
402c7a7638SBram Moolenaar                                \ nextgroup=udevrulesRuleTest,udevrulesRuleEq
412c7a7638SBram Moolenaar                                \ skipwhite
420dc065eeSBram Moolenaar
432c7a7638SBram Moolenaarsyn keyword udevrulesRuleKey    PROGRAM RESULT
442c7a7638SBram Moolenaar                                \ nextgroup=udevrulesEStringTest,udevrulesEStringEq
452c7a7638SBram Moolenaar                                \ skipwhite
462c7a7638SBram Moolenaar
472c7a7638SBram Moolenaarsyn keyword udevrulesAssignKey  NAME SYMLINK OWNER GROUP RUN
480dc065eeSBram Moolenaar                                \ nextgroup=udevrulesEStringEq
492c7a7638SBram Moolenaar                                \ skipwhite
500dc065eeSBram Moolenaar
512c7a7638SBram Moolenaarsyn keyword udevrulesAssignKey  MODE LABEL GOTO WAIT_FOR_SYSFS
520dc065eeSBram Moolenaar                                \ nextgroup=udevrulesRuleEq
532c7a7638SBram Moolenaar                                \ skipwhite
542c7a7638SBram Moolenaar
552c7a7638SBram Moolenaarsyn keyword udevrulesAssignKey  ATTR nextgroup=udevrulesAttrsPath
562c7a7638SBram Moolenaar
572c7a7638SBram Moolenaarsyn region  udevrulesAttrKey    display transparent
582c7a7638SBram Moolenaar                                \ matchgroup=udevrulesDelimiter start='{'
592c7a7638SBram Moolenaar                                \ matchgroup=udevrulesDelimiter end='}'
602c7a7638SBram Moolenaar                                \ contains=udevrulesKey
612c7a7638SBram Moolenaar                                \ nextgroup=udevrulesRuleEq
622c7a7638SBram Moolenaar                                \ skipwhite
632c7a7638SBram Moolenaar
642c7a7638SBram Moolenaarsyn keyword udevrulesAssignKey  IMPORT nextgroup=udevrulesImport,
652c7a7638SBram Moolenaar                                \ udevrulesEStringEq
662c7a7638SBram Moolenaar                                \ skipwhite
672c7a7638SBram Moolenaar
682c7a7638SBram Moolenaarsyn region  udevrulesImport     display transparent
692c7a7638SBram Moolenaar                                \ matchgroup=udevrulesDelimiter start='{'
702c7a7638SBram Moolenaar                                \ matchgroup=udevrulesDelimiter end='}'
712c7a7638SBram Moolenaar                                \ contains=udevrulesImportType
722c7a7638SBram Moolenaar                                \ nextgroup=udevrulesEStringEq
732c7a7638SBram Moolenaar                                \ skipwhite
742c7a7638SBram Moolenaar
752c7a7638SBram Moolenaarsyn keyword udevrulesImportType program file parent
760dc065eeSBram Moolenaar
770dc065eeSBram Moolenaarsyn keyword udevrulesAssignKey  OPTIONS
780dc065eeSBram Moolenaar                                \ nextgroup=udevrulesOptionsEq
790dc065eeSBram Moolenaar
800dc065eeSBram Moolenaarsyn match   udevrulesPath       contained display '[^}]\+'
810dc065eeSBram Moolenaar
820dc065eeSBram Moolenaarsyn match   udevrulesVariable   contained display '[^}]\+'
830dc065eeSBram Moolenaar
842c7a7638SBram Moolenaarsyn match   udevrulesRuleTest   contained display '[=!:]='
850dc065eeSBram Moolenaar                                \ nextgroup=udevrulesString skipwhite
860dc065eeSBram Moolenaar
872c7a7638SBram Moolenaarsyn match   udevrulesEStringTest contained display '[=!+:]='
880dc065eeSBram Moolenaar                                \ nextgroup=udevrulesEString skipwhite
890dc065eeSBram Moolenaar
902c7a7638SBram Moolenaarsyn match   udevrulesRuleEq     contained display '+=\|=\ze[^=]'
912c7a7638SBram Moolenaar                                \ nextgroup=udevrulesString skipwhite
922c7a7638SBram Moolenaar
932c7a7638SBram Moolenaarsyn match   udevrulesEStringEq  contained '+=\|=\ze[^=]'
942c7a7638SBram Moolenaar                                \ nextgroup=udevrulesEString skipwhite
952c7a7638SBram Moolenaar
962c7a7638SBram Moolenaarsyn match   udevrulesOptionsEq  contained '+=\|=\ze[^=]'
970dc065eeSBram Moolenaar                                \ nextgroup=udevrulesOptions skipwhite
980dc065eeSBram Moolenaar
990dc065eeSBram Moolenaarsyn region  udevrulesEString    contained display oneline start=+"+ end=+"+
1002c7a7638SBram Moolenaar                                \ contains=udevrulesStrEscapes,udevrulesStrVars
1010dc065eeSBram Moolenaar
1022c7a7638SBram Moolenaarsyn match   udevrulesStrEscapes contained '%[knpbMmcPrN%]'
1030dc065eeSBram Moolenaar
1042c7a7638SBram Moolenaar" TODO: This can actually stand alone (without {…}), so add a nextgroup here.
1050dc065eeSBram Moolenaarsyn region  udevrulesStrEscapes contained start='%c{' end='}'
1060dc065eeSBram Moolenaar                                \ contains=udevrulesStrNumber
1070dc065eeSBram Moolenaar
1080dc065eeSBram Moolenaarsyn region  udevrulesStrEscapes contained start='%s{' end='}'
1090dc065eeSBram Moolenaar                                \ contains=udevrulesPath
1100dc065eeSBram Moolenaar
1112c7a7638SBram Moolenaarsyn region  udevrulesStrEscapes contained start='%E{' end='}'
1122c7a7638SBram Moolenaar                                \ contains=udevrulesVariable
1132c7a7638SBram Moolenaar
1140dc065eeSBram Moolenaarsyn match   udevrulesStrNumber  contained '\d\++\='
1150dc065eeSBram Moolenaar
1162c7a7638SBram Moolenaarsyn match   udevrulesStrVars    contained display '$\%(kernel\|number\|devpath\|id\|major\|minor\|result\|parent\|root\|tempnode\)\>'
1172c7a7638SBram Moolenaar
1182c7a7638SBram Moolenaarsyn region  udevrulesStrVars    contained start='$attr{' end='}'
1192c7a7638SBram Moolenaar                                \ contains=udevrulesPath
1202c7a7638SBram Moolenaar
1212c7a7638SBram Moolenaarsyn region  udevrulesStrVars    contained start='$env{' end='}'
1222c7a7638SBram Moolenaar                                \ contains=udevrulesVariable
1232c7a7638SBram Moolenaar
1242c7a7638SBram Moolenaarsyn match   udevrulesStrVars    contained display '\$\$'
1252c7a7638SBram Moolenaar
1260dc065eeSBram Moolenaarsyn region  udevrulesString     contained display oneline start=+"+ end=+"+
1270dc065eeSBram Moolenaar                                \ contains=udevrulesPattern
1280dc065eeSBram Moolenaar
1290dc065eeSBram Moolenaarsyn match   udevrulesPattern    contained '[*?]'
1300dc065eeSBram Moolenaarsyn region  udevrulesPattern    contained start='\[!\=' end='\]'
1310dc065eeSBram Moolenaar                                \ contains=udevrulesPatRange
1320dc065eeSBram Moolenaar
1330dc065eeSBram Moolenaarsyn match   udevrulesPatRange   contained '[^[-]-[^]-]'
1340dc065eeSBram Moolenaar
1350dc065eeSBram Moolenaarsyn region  udevrulesOptions    contained display oneline start=+"+ end=+"+
1360dc065eeSBram Moolenaar                                \ contains=udevrulesOption,udevrulesOptionSep
1370dc065eeSBram Moolenaar
1380dc065eeSBram Moolenaarsyn keyword udevrulesOption     contained last_rule ignore_device ignore_remove
1390dc065eeSBram Moolenaar                                \ all_partitions
1400dc065eeSBram Moolenaar
1410dc065eeSBram Moolenaarsyn match   udevrulesOptionSep  contained ','
1420dc065eeSBram Moolenaar
1430dc065eeSBram Moolenaarhi def link udevrulesTodo       Todo
1440dc065eeSBram Moolenaarhi def link udevrulesComment    Comment
1450dc065eeSBram Moolenaarhi def link udevrulesRuleKey    Keyword
1460dc065eeSBram Moolenaarhi def link udevrulesDelimiter  Delimiter
1470dc065eeSBram Moolenaarhi def link udevrulesAssignKey  Identifier
1480dc065eeSBram Moolenaarhi def link udevrulesPath       Identifier
1490dc065eeSBram Moolenaarhi def link udevrulesVariable   Identifier
1502c7a7638SBram Moolenaarhi def link udevrulesAttrKey    Identifier
1510dc065eeSBram Moolenaar" XXX: setting this to Operator makes for extremely intense highlighting.
1520dc065eeSBram Moolenaarhi def link udevrulesEq         Normal
1530dc065eeSBram Moolenaarhi def link udevrulesRuleEq     udevrulesEq
1540dc065eeSBram Moolenaarhi def link udevrulesEStringEq  udevrulesEq
1550dc065eeSBram Moolenaarhi def link udevrulesOptionsEq  udevrulesEq
1560dc065eeSBram Moolenaarhi def link udevrulesEString    udevrulesString
1570dc065eeSBram Moolenaarhi def link udevrulesStrEscapes SpecialChar
1580dc065eeSBram Moolenaarhi def link udevrulesStrNumber  Number
1592c7a7638SBram Moolenaarhi def link udevrulesStrVars    Identifier
1600dc065eeSBram Moolenaarhi def link udevrulesString     String
1610dc065eeSBram Moolenaarhi def link udevrulesPattern    SpecialChar
1620dc065eeSBram Moolenaarhi def link udevrulesPatRange   SpecialChar
1630dc065eeSBram Moolenaarhi def link udevrulesOptions    udevrulesString
1640dc065eeSBram Moolenaarhi def link udevrulesOption     Type
1650dc065eeSBram Moolenaarhi def link udevrulesOptionSep  Delimiter
1662c7a7638SBram Moolenaarhi def link udevrulesImportType Type
1670dc065eeSBram Moolenaar
1680dc065eeSBram Moolenaarlet b:current_syntax = "udevrules"
1690dc065eeSBram Moolenaar
1700dc065eeSBram Moolenaarlet &cpo = s:cpo_save
1710dc065eeSBram Moolenaarunlet s:cpo_save
172