Mercurial > vim
view runtime/syntax/slpreg.vim @ 17448:f8cd16838434 v8.1.1722
patch 8.1.1722: error when scriptversion is 2 a making a dictionary access
commit https://github.com/vim/vim/commit/61343f0c44c8e71df04918d033e0a744c0b7f8aa
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jul 20 21:11:13 2019 +0200
patch 8.1.1722: error when scriptversion is 2 a making a dictionary access
Problem: Error when scriptversion is 2 a making a dictionary access.
Solution: Parse the subscript even when not evaluating the sub-expression.
(closes #4704)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 20 Jul 2019 21:15:04 +0200 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" 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