xref: /vim-8.2.3635/runtime/syntax/udevrules.vim (revision 044b68f4)
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