mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Vim syntax file
 | |
| " Language:             RFC 2614 - An API for Service Location registration file
 | |
| " Previous Maintainer:  Nikolai Weibull <now@bitwi.se>
 | |
| " Latest Revision:      2006-04-19
 | |
| 
 | |
| if exists("b:current_syntax")
 | |
|   finish
 | |
| endif
 | |
| 
 | |
| let s:cpo_save = &cpo
 | |
| set cpo&vim
 | |
| 
 | |
| syn keyword slpregTodo          contained TODO FIXME XXX NOTE
 | |
| 
 | |
| syn region  slpregComment       display oneline start='^[#;]' end='$'
 | |
|                                 \ contains=slpregTodo,@Spell
 | |
| 
 | |
| syn match   slpregBegin         display '^'
 | |
|                                 \ nextgroup=slpregServiceURL,
 | |
|                                 \ slpregComment
 | |
| 
 | |
| syn match   slpregServiceURL    contained display 'service:'
 | |
|                                 \ nextgroup=slpregServiceType
 | |
| 
 | |
| syn match   slpregServiceType   contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\='
 | |
|                                 \ nextgroup=slpregServiceSAPCol
 | |
| 
 | |
| syn match   slpregServiceSAPCol contained display ':'
 | |
|                                 \ nextgroup=slpregSAP
 | |
| 
 | |
| syn match   slpregSAP           contained '[^,]\+'
 | |
|                                 \ nextgroup=slpregLangSep
 | |
| "syn match   slpregSAP           contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*'
 | |
| 
 | |
| syn match   slpregLangSep       contained display ','
 | |
|                                 \ nextgroup=slpregLang
 | |
| 
 | |
| syn match   slpregLang          contained display '\a\{1,8}\%(-\a\{1,8\}\)\='
 | |
|                                 \ nextgroup=slpregLTimeSep
 | |
| 
 | |
| syn match   slpregLTimeSep      contained display ','
 | |
|                                 \ nextgroup=slpregLTime
 | |
| 
 | |
| syn match   slpregLTime         contained display '\d\{1,5}'
 | |
|                                 \ nextgroup=slpregType,slpregUNewline
 | |
| 
 | |
| syn match   slpregType          contained display '\a[[:alpha:][:digit:]+-]*'
 | |
|                                 \ nextgroup=slpregUNewLine
 | |
| 
 | |
| syn match   slpregUNewLine      contained '\s*\n'
 | |
|                                 \ nextgroup=slpregScopes,slpregAttrList skipnl
 | |
| 
 | |
| syn keyword slpregScopes        contained scopes
 | |
|                                 \ nextgroup=slpregScopesEq
 | |
| 
 | |
| syn match   slpregScopesEq      contained '=' nextgroup=slpregScopeName
 | |
| 
 | |
| syn match   slpregScopeName     contained '[^(),\\!<=>[:cntrl:];*+ ]\+'
 | |
|                                 \ nextgroup=slpregScopeNameSep,
 | |
|                                 \ slpregScopeNewline
 | |
| 
 | |
| syn match   slpregScopeNameSep  contained ','
 | |
|                                 \ nextgroup=slpregScopeName
 | |
| 
 | |
| syn match   slpregScopeNewline  contained '\s*\n'
 | |
|                                 \ nextgroup=slpregAttribute skipnl
 | |
| 
 | |
| syn match   slpregAttribute     contained '[^(),\\!<=>[:cntrl:]* \t_]\+'
 | |
|                                 \ nextgroup=slpregAttributeEq,
 | |
|                                 \ slpregScopeNewline
 | |
| 
 | |
| syn match   slpregAttributeEq   contained '='
 | |
|                                 \ nextgroup=@slpregAttrValue
 | |
| 
 | |
| syn cluster slpregAttrValueCon  contains=slpregAttribute,slpregAttrValueSep
 | |
| 
 | |
| syn cluster slpregAttrValue     contains=slpregAttrIValue,slpregAttrSValue,
 | |
|                                 \ slpregAttrBValue,slpregAttrSSValue
 | |
| 
 | |
| syn match   slpregAttrSValue    contained display '[^(),\\!<=>~[:cntrl:]]\+'
 | |
|                                 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
 | |
| 
 | |
| syn match   slpregAttrSSValue   contained display '\\FF\%(\\\x\x\)\+'
 | |
|                                 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
 | |
| 
 | |
| syn match   slpregAttrIValue    contained display '[-]\=\d\+\>'
 | |
|                                 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
 | |
| 
 | |
| syn keyword slpregAttrBValue    contained true false
 | |
|                                 \ nextgroup=@slpregAttrValueCon skipwhite skipnl
 | |
| 
 | |
| syn match   slpregAttrValueSep  contained display ','
 | |
|                                 \ nextgroup=@slpregAttrValue skipwhite skipnl
 | |
| 
 | |
| hi def link slpregTodo          Todo
 | |
| hi def link slpregComment       Comment
 | |
| hi def link slpregServiceURL    Type
 | |
| hi def link slpregServiceType   slpregServiceURL
 | |
| hi def link slpregServiceSAPCol slpregServiceURL
 | |
| hi def link slpregSAP           slpregServiceURL
 | |
| hi def link slpregDelimiter     Delimiter
 | |
| hi def link slpregLangSep       slpregDelimiter
 | |
| hi def link slpregLang          String
 | |
| hi def link slpregLTimeSep      slpregDelimiter
 | |
| hi def link slpregLTime         Number
 | |
| hi def link slpregType          Type
 | |
| hi def link slpregScopes        Identifier
 | |
| hi def link slpregScopesEq      Operator
 | |
| hi def link slpregScopeName     String
 | |
| hi def link slpregScopeNameSep  slpregDelimiter
 | |
| hi def link slpregAttribute     Identifier
 | |
| hi def link slpregAttributeEq   Operator
 | |
| hi def link slpregAttrSValue    String
 | |
| hi def link slpregAttrSSValue   slpregAttrSValue
 | |
| hi def link slpregAttrIValue    Number
 | |
| hi def link slpregAttrBValue    Boolean
 | |
| hi def link slpregAttrValueSep  slpregDelimiter
 | |
| 
 | |
| let b:current_syntax = "slpreg"
 | |
| 
 | |
| let &cpo = s:cpo_save
 | |
| unlet s:cpo_save
 | 
