summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorWill Woods <wwoods@redhat.com>2012-02-24 12:13:28 -0500
committerWill Woods <wwoods@redhat.com>2012-02-24 12:13:28 -0500
commit731a1871749724d009635b9826a4f9b1133c44f1 (patch)
treef4012764d9a7636f6a61cd73735a4e64d6aa9a05 /syntax
parente03a20b9e68c9059ed84842931014390e0fe5d13 (diff)
downloadvim-scripts-731a1871749724d009635b9826a4f9b1133c44f1.tar.gz
vim-scripts-731a1871749724d009635b9826a4f9b1133c44f1.tar.xz
vim-scripts-731a1871749724d009635b9826a4f9b1133c44f1.zip
add syntax/ftdetect plugins for udev rules
Diffstat (limited to 'syntax')
-rw-r--r--syntax/udev.vim46
1 files changed, 46 insertions, 0 deletions
diff --git a/syntax/udev.vim b/syntax/udev.vim
new file mode 100644
index 0000000..5e82fc2
--- /dev/null
+++ b/syntax/udev.vim
@@ -0,0 +1,46 @@
+" Filename: udev.vim
+" Purpose: Vim syntax file
+" Language: udev rules files
+" Maintainer: Will Woods <wwoods@redhat.com>
+" Last Change: Thu Feb 23 14:59:36 EST 2012
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syntax case match
+syntax sync maxlines=10
+
+syntax region udev_comment start=/#/ end=/$/
+
+syntax match udev_match /[A-Z_]\+\%({[^}]\+}\)\?\%(==\|!=\)"[^"]\+"/ contains=udev_match_keys,udev_brace,udev_str
+syntax match udev_assign /[A-Z_]\+\%({[^}]\+}\)\?\%(=\|:=\|+=\)"[^"]\+"/ contains=udev_assign_keys,udev_label_keys,udev_brace,udev_str
+
+syntax keyword udev_match_keys contained ACTION DEVPATH KERNEL KERNELS NAME SYMLINK SUBSYSTEM SUBSYSTEMS DRIVER DRIVERS TAG TAGS PROGRAM RESULT ENV ATTR ATTRS TEST
+syntax keyword udev_assign_keys contained NAME SYMLINK OWNER GROUP MODE TAG RUN WAIT_FOR OPTIONS ENV ATTR IMPORT
+
+syntax region udev_brace contained start=/{/hs=s+1 end=/}/he=e-1 contains=udev_attr_special
+syntax match udev_attr_special contained '\[\i\+/\i\+\]'
+
+syntax keyword udev_label_keys contained LABEL GOTO
+
+" strings and string subs
+syntax region udev_str contained start=/"/ end=/"/ contains=udev_globs,udev_subs,udev_bad_subs
+syntax match udev_globs contained /[?|*]/
+syntax region udev_globs contained start=/\[/ end=/\]/
+syntax match udev_escapes contained /\$\$\|%%/
+syntax match udev_subs contained /%[knpbMmcsE]/
+syntax match udev_subs contained /\$\%(kernel\|number\|devpath\|id\|driver\|major\|minor\|result\|parent\|name\|links\|root\|sys\|tempnode\)/
+syntax region udev_subs contained start=/$\%(attr\|env\){/ end=/}/
+
+
+hi def link udev_comment Comment
+hi def link udev_match_keys Identifier
+hi def link udev_assign_keys Operator
+hi def link udev_label_keys Structure
+hi def link udev_brace Macro
+hi def link udev_str String
+hi def link udev_subs Macro
+hi def link udev_globs Special
+hi def link udev_escapes Special
+hi def link udev_attr_special Special