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