mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			172 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:             udev(8) rules file
 | 
						|
" Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
 | 
						|
" Latest Revision:      2006-12-18
 | 
						|
 | 
						|
if exists("b:current_syntax")
 | 
						|
  finish
 | 
						|
endif
 | 
						|
 | 
						|
let s:cpo_save = &cpo
 | 
						|
set cpo&vim
 | 
						|
 | 
						|
" TODO: Line continuations.
 | 
						|
 | 
						|
syn keyword udevrulesTodo       contained TODO FIXME XXX NOTE
 | 
						|
 | 
						|
syn region  udevrulesComment    display oneline start='^\s*#' end='$'
 | 
						|
                                \ contains=udevrulesTodo,@Spell
 | 
						|
 | 
						|
syn keyword udevrulesRuleKey    ACTION DEVPATH KERNEL SUBSYSTEM KERNELS
 | 
						|
                                \ SUBSYSTEMS DRIVERS RESULT
 | 
						|
                                \ nextgroup=udevrulesRuleTest
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesRuleKey    ATTRS nextgroup=udevrulesAttrsPath
 | 
						|
 | 
						|
syn region  udevrulesAttrsPath  display transparent
 | 
						|
                                \ matchgroup=udevrulesDelimiter start='{'
 | 
						|
                                \ matchgroup=udevrulesDelimiter end='}'
 | 
						|
                                \ contains=udevrulesPath
 | 
						|
                                \ nextgroup=udevrulesRuleTest
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesRuleKey    ENV nextgroup=udevrulesEnvVar
 | 
						|
 | 
						|
syn region  udevrulesEnvVar     display transparent
 | 
						|
                                \ matchgroup=udevrulesDelimiter start='{'
 | 
						|
                                \ matchgroup=udevrulesDelimiter end='}'
 | 
						|
                                \ contains=udevrulesVariable
 | 
						|
                                \ nextgroup=udevrulesRuleTest,udevrulesRuleEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesRuleKey    PROGRAM RESULT
 | 
						|
                                \ nextgroup=udevrulesEStringTest,udevrulesEStringEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesAssignKey  NAME SYMLINK OWNER GROUP RUN
 | 
						|
                                \ nextgroup=udevrulesEStringEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesAssignKey  MODE LABEL GOTO WAIT_FOR_SYSFS
 | 
						|
                                \ nextgroup=udevrulesRuleEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesAssignKey  ATTR nextgroup=udevrulesAttrsPath
 | 
						|
 | 
						|
syn region  udevrulesAttrKey    display transparent
 | 
						|
                                \ matchgroup=udevrulesDelimiter start='{'
 | 
						|
                                \ matchgroup=udevrulesDelimiter end='}'
 | 
						|
                                \ contains=udevrulesKey
 | 
						|
                                \ nextgroup=udevrulesRuleEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesAssignKey  IMPORT nextgroup=udevrulesImport,
 | 
						|
                                \ udevrulesEStringEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn region  udevrulesImport     display transparent
 | 
						|
                                \ matchgroup=udevrulesDelimiter start='{'
 | 
						|
                                \ matchgroup=udevrulesDelimiter end='}'
 | 
						|
                                \ contains=udevrulesImportType
 | 
						|
                                \ nextgroup=udevrulesEStringEq
 | 
						|
                                \ skipwhite
 | 
						|
 | 
						|
syn keyword udevrulesImportType program file parent
 | 
						|
 | 
						|
syn keyword udevrulesAssignKey  OPTIONS
 | 
						|
                                \ nextgroup=udevrulesOptionsEq
 | 
						|
 | 
						|
syn match   udevrulesPath       contained display '[^}]\+'
 | 
						|
 | 
						|
syn match   udevrulesVariable   contained display '[^}]\+'
 | 
						|
 | 
						|
syn match   udevrulesRuleTest   contained display '[=!:]='
 | 
						|
                                \ nextgroup=udevrulesString skipwhite
 | 
						|
 | 
						|
syn match   udevrulesEStringTest contained display '[=!+:]='
 | 
						|
                                \ nextgroup=udevrulesEString skipwhite
 | 
						|
 | 
						|
syn match   udevrulesRuleEq     contained display '+=\|=\ze[^=]'
 | 
						|
                                \ nextgroup=udevrulesString skipwhite
 | 
						|
 | 
						|
syn match   udevrulesEStringEq  contained '+=\|=\ze[^=]'
 | 
						|
                                \ nextgroup=udevrulesEString skipwhite
 | 
						|
 | 
						|
syn match   udevrulesOptionsEq  contained '+=\|=\ze[^=]'
 | 
						|
                                \ nextgroup=udevrulesOptions skipwhite
 | 
						|
 | 
						|
syn region  udevrulesEString    contained display oneline start=+"+ end=+"+
 | 
						|
                                \ contains=udevrulesStrEscapes,udevrulesStrVars
 | 
						|
 | 
						|
syn match   udevrulesStrEscapes contained '%[knpbMmcPrN%]'
 | 
						|
 | 
						|
" TODO: This can actually stand alone (without {…}), so add a nextgroup here.
 | 
						|
syn region  udevrulesStrEscapes contained start='%c{' end='}'
 | 
						|
                                \ contains=udevrulesStrNumber
 | 
						|
 | 
						|
syn region  udevrulesStrEscapes contained start='%s{' end='}'
 | 
						|
                                \ contains=udevrulesPath
 | 
						|
 | 
						|
syn region  udevrulesStrEscapes contained start='%E{' end='}'
 | 
						|
                                \ contains=udevrulesVariable
 | 
						|
 | 
						|
syn match   udevrulesStrNumber  contained '\d\++\='
 | 
						|
 | 
						|
syn match   udevrulesStrVars    contained display '$\%(kernel\|number\|devpath\|id\|major\|minor\|result\|parent\|root\|tempnode\)\>'
 | 
						|
 | 
						|
syn region  udevrulesStrVars    contained start='$attr{' end='}'
 | 
						|
                                \ contains=udevrulesPath
 | 
						|
 | 
						|
syn region  udevrulesStrVars    contained start='$env{' end='}'
 | 
						|
                                \ contains=udevrulesVariable
 | 
						|
 | 
						|
syn match   udevrulesStrVars    contained display '\$\$'
 | 
						|
 | 
						|
syn region  udevrulesString     contained display oneline start=+"+ end=+"+
 | 
						|
                                \ contains=udevrulesPattern
 | 
						|
 | 
						|
syn match   udevrulesPattern    contained '[*?]'
 | 
						|
syn region  udevrulesPattern    contained start='\[!\=' end='\]'
 | 
						|
                                \ contains=udevrulesPatRange
 | 
						|
 | 
						|
syn match   udevrulesPatRange   contained '[^[-]-[^]-]'
 | 
						|
 | 
						|
syn region  udevrulesOptions    contained display oneline start=+"+ end=+"+
 | 
						|
                                \ contains=udevrulesOption,udevrulesOptionSep
 | 
						|
 | 
						|
syn keyword udevrulesOption     contained last_rule ignore_device ignore_remove
 | 
						|
                                \ all_partitions
 | 
						|
 | 
						|
syn match   udevrulesOptionSep  contained ','
 | 
						|
 | 
						|
hi def link udevrulesTodo       Todo
 | 
						|
hi def link udevrulesComment    Comment
 | 
						|
hi def link udevrulesRuleKey    Keyword
 | 
						|
hi def link udevrulesDelimiter  Delimiter
 | 
						|
hi def link udevrulesAssignKey  Identifier
 | 
						|
hi def link udevrulesPath       Identifier
 | 
						|
hi def link udevrulesVariable   Identifier
 | 
						|
hi def link udevrulesAttrKey    Identifier
 | 
						|
" XXX: setting this to Operator makes for extremely intense highlighting.
 | 
						|
hi def link udevrulesEq         Normal
 | 
						|
hi def link udevrulesRuleEq     udevrulesEq
 | 
						|
hi def link udevrulesEStringEq  udevrulesEq
 | 
						|
hi def link udevrulesOptionsEq  udevrulesEq
 | 
						|
hi def link udevrulesEString    udevrulesString
 | 
						|
hi def link udevrulesStrEscapes SpecialChar
 | 
						|
hi def link udevrulesStrNumber  Number
 | 
						|
hi def link udevrulesStrVars    Identifier
 | 
						|
hi def link udevrulesString     String
 | 
						|
hi def link udevrulesPattern    SpecialChar
 | 
						|
hi def link udevrulesPatRange   SpecialChar
 | 
						|
hi def link udevrulesOptions    udevrulesString
 | 
						|
hi def link udevrulesOption     Type
 | 
						|
hi def link udevrulesOptionSep  Delimiter
 | 
						|
hi def link udevrulesImportType Type
 | 
						|
 | 
						|
let b:current_syntax = "udevrules"
 | 
						|
 | 
						|
let &cpo = s:cpo_save
 | 
						|
unlet s:cpo_save
 |