diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2018-10-29 17:47:27 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-29 17:47:27 +0100 | 
| commit | f5406dfe7772dca82e31f27c042c5718198f0ec8 (patch) | |
| tree | 4dd3a3c82b0f4e762d36501f19a652fc6b41ee48 /runtime/syntax/vim.vim | |
| parent | cf93b5e9f9eea1b08ca8d7cb124265867b2f3bf9 (diff) | |
| parent | 6d1827aebc88698b75094029fb0a9e45c1d67632 (diff) | |
| download | rneovim-f5406dfe7772dca82e31f27c042c5718198f0ec8.tar.gz rneovim-f5406dfe7772dca82e31f27c042c5718198f0ec8.tar.bz2 rneovim-f5406dfe7772dca82e31f27c042c5718198f0ec8.zip | |
Merge #9164 from justinmk/vim-a2a80162deb1
vim-patch: runtime updates
Diffstat (limited to 'runtime/syntax/vim.vim')
| -rw-r--r-- | runtime/syntax/vim.vim | 161 | 
1 files changed, 87 insertions, 74 deletions
| diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 1551a314a3..5dc4f333e4 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -63,45 +63,45 @@ syn case match  " Set up folding commands  if exists("g:vimsyn_folding") && g:vimsyn_folding =~# '[aflmpPrt]' - if g:vimsyn_folding =~# 'a'  -  com! -nargs=* VimFolda <args> fold  - else  -  com! -nargs=* VimFolda <args>  + if g:vimsyn_folding =~# 'a' +  com! -nargs=* VimFolda <args> fold + else +  com! -nargs=* VimFolda <args>   endif - if g:vimsyn_folding =~# 'f'  -  com! -nargs=* VimFoldf <args> fold  - else  -  com! -nargs=* VimFoldf <args>  + if g:vimsyn_folding =~# 'f' +  com! -nargs=* VimFoldf <args> fold + else +  com! -nargs=* VimFoldf <args>   endif - if g:vimsyn_folding =~# 'l'  -  com! -nargs=* VimFoldl <args> fold  - else  -  com! -nargs=* VimFoldl <args>  + if g:vimsyn_folding =~# 'l' +  com! -nargs=* VimFoldl <args> fold + else +  com! -nargs=* VimFoldl <args>   endif - if g:vimsyn_folding =~# 'm'  -  com! -nargs=* VimFoldm <args> fold  - else  -  com! -nargs=* VimFoldm <args>  + if g:vimsyn_folding =~# 'm' +  com! -nargs=* VimFoldm <args> fold + else +  com! -nargs=* VimFoldm <args>   endif   if g:vimsyn_folding =~# 'p'     com! -nargs=* VimFoldp <args> fold    else     com! -nargs=* VimFoldp <args>    endif - if g:vimsyn_folding =~# 'P'  -  com! -nargs=* VimFoldP <args> fold  - else  -  com! -nargs=* VimFoldP <args>  + if g:vimsyn_folding =~# 'P' +  com! -nargs=* VimFoldP <args> fold + else +  com! -nargs=* VimFoldP <args>   endif - if g:vimsyn_folding =~# 'r'  -  com! -nargs=* VimFoldr <args> fold  - else  -  com! -nargs=* VimFoldr <args>  + if g:vimsyn_folding =~# 'r' +  com! -nargs=* VimFoldr <args> fold + else +  com! -nargs=* VimFoldr <args>   endif - if g:vimsyn_folding =~# 't'  -  com! -nargs=* VimFoldt <args> fold  - else  -  com! -nargs=* VimFoldt <args>  + if g:vimsyn_folding =~# 't' +  com! -nargs=* VimFoldt <args> fold + else +  com! -nargs=* VimFoldt <args>   endif  else   com! -nargs=*	VimFolda	<args> @@ -137,24 +137,26 @@ endif  " Numbers {{{2  " ======= -syn match vimNumber	"\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand -syn match vimNumber	"-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\="  skipwhite nextgroup=vimGlobal,vimSubst,vimCommand -syn match vimNumber	"\<0[xX]\x\+" -syn match vimNumber	"\%(^\|[^a-zA-Z]\)\zs#\x\{6}" +syn match vimNumber	"\<\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=" skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment +syn match vimNumber	"-\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\="  skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment +syn match vimNumber	"\<0[xX]\x\+"		       skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment +syn match vimNumber	"\%(^\|\A\)\zs#\x\{6}"             	       skipwhite nextgroup=vimGlobal,vimSubst,vimCommand,vimComment  " All vimCommands are contained by vimIsCommands. {{{2 -syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd +syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimEcho,vimIsCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd  syn match vimIsCommand	"\<\h\w*\>"	contains=vimCommand -syn match vimVar        contained	"\<\h[a-zA-Z0-9#_]*\>" +syn match vimVar	      contained	"\<\h[a-zA-Z0-9#_]*\>"  syn match vimVar		"\<[bwglstav]:\h[a-zA-Z0-9#_]*\>" +syn match vimVar	      	"\s\zs&\a\+\>"  syn match vimFBVar      contained   "\<[bwglstav]:\h[a-zA-Z0-9#_]*\>"  syn keyword vimCommand  contained	in  " Insertions And Appends: insert append {{{2  " ======================= -syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$"	matchgroup=vimCommand end="^\.$"" -syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$"	matchgroup=vimCommand end="^\.$"" -syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$"	matchgroup=vimCommand end="^\.$"" +syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=a\%[ppend]$"		matchgroup=vimCommand end="^\.$"" +syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=c\%[hange]$"		matchgroup=vimCommand end="^\.$"" +syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=i\%[nsert]$"		matchgroup=vimCommand end="^\.$"" +syn region vimInsert	matchgroup=vimCommand start="^[: \t]*\(\d\+\(,\d\+\)\=\)\=starti\%[nsert]$"	matchgroup=vimCommand end="^\.$""  " Behave! {{{2  " ======= @@ -175,7 +177,7 @@ syn keyword vimFTOption contained	detect indent off on plugin  " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2  " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking. -syn cluster vimAugroupList	contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue +syn cluster vimAugroupList	contains=vimAugroup,vimIsCommand,vimCommand,vimUserCmd,vimExecute,vimNotFunc,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimMap,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue,vimSetEqual,vimOption  if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'a'   syn region  vimAugroup	fold matchgroup=vimAugroupKey start="\<aug\%[roup]\>\ze\s\+\K\k*" end="\<aug\%[roup]\>\ze\s\+[eE][nN][dD]\>"	contains=vimAutoCmd,@vimAugroupList  else @@ -190,8 +192,9 @@ syn keyword vimAugroupKey contained	aug[roup]  " Operators: {{{2  " =========  syn cluster	vimOperGroup	contains=vimEnvvar,vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue -syn match	vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile -syn match	vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile +syn match	vimOper	"\%#=1\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile +syn match	vimOper	"\(\<is\>\|\<isnot\>\)[?#]\{0,2}"		skipwhite nextgroup=vimString,vimSpecFile +syn match	vimOper	"||\|&&\|[-+.]"			skipwhite nextgroup=vimString,vimSpecFile  syn region	vimOperParen 	matchgroup=vimParenSep	start="(" end=")" contains=@vimOperGroup  syn region	vimOperParen	matchgroup=vimSep		start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar  if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_noopererror") @@ -201,7 +204,7 @@ endif  " Functions : Tag is provided for those who wish to highlight tagged functions {{{2  " =========  syn cluster	vimFuncList	contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID -syn cluster	vimFuncBodyList	contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand +syn cluster	vimFuncBodyList	contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimGlobal,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSearch,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUnmap,vimUserCommand  syn match	vimFunction	"\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody  if exists("g:vimsyn_folding") && g:vimsyn_folding =~# 'f' @@ -274,7 +277,7 @@ syn region	vimPatSepZone	oneline   contained   matchgroup=vimPatSepZ start="\\%\  syn region	vimPatRegion	contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)"	contains=@vimSubstList oneline  syn match	vimNotPatSep	contained	"\\\\"  syn cluster	vimStringGroup	contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell -syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=@vimStringGroup +syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ matchgroup=vimStringEnd end=+"+	contains=@vimStringGroup  syn region	vimString	oneline keepend	start=+[^a-zA-Z>!\\@]'+lc=1 end=+'+  syn region	vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup  syn region	vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup @@ -292,11 +295,12 @@ syn match	vimSubst	"\%(^\|[^\\]\)\<s\%[ubstitute]\>[:#[:alpha:]]\@!"	nextgroup=v  syn match	vimSubst	"/\zs\<s\%[ubstitute]\>\ze/"		nextgroup=vimSubstPat  syn match	vimSubst	"\(:\+\s*\|^\s*\)s\ze#.\{-}#.\{-}#"		nextgroup=vimSubstPat  syn match	vimSubst1       contained	"\<s\%[ubstitute]\>"	nextgroup=vimSubstPat +syn match	vimSubst2       contained	"s\%[ubstitute]\>"	nextgroup=vimSubstPat  syn region	vimSubstPat     contained	matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1	 contains=@vimSubstList	nextgroup=vimSubstRep4	oneline  syn region	vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline  syn region	vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass  syn match	vimCollClassErr contained	"\[:.\{-\}:\]" -syn match	vimCollClass    contained transparent	"\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]" +syn match	vimCollClass    contained transparent	"\%#=1\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"  syn match	vimSubstSubstr  contained	"\\z\=\d"  syn match	vimSubstTwoBS   contained	"\\\\"  syn match	vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags @@ -311,7 +315,7 @@ syn match	vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst  syn match	vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst  syn match	vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst  syn match	vimMark	"\<norm\%[al]\s\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst -syn match	vimMarkNumber	"[-+]\d\+"		nextgroup=vimSubst contained contains=vimOper +syn match	vimMarkNumber	"[-+]\d\+"		contained contains=vimOper nextgroup=vimSubst2  syn match	vimPlainMark contained	"'[a-zA-Z0-9]"  syn match	vimRegister	'[^,;[{: \t]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":0-9]' @@ -331,9 +335,9 @@ syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]\>'lc=1  syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\>\)'  " Set command and associated set-options (vimOptions) with comment {{{2 -syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod -syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline -syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar +syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|se\%[t]\)\>" skip="\%(\\\\\)*\\." end="$" end="|" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod +syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1	contains=vimCtrlChar,vimSetSep,vimNotation,vimEnvvar oneline +syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+		contains=vimCtrlChar  syn match	vimSetSep	contained	"[,:]" skipwhite nextgroup=vimCommand  syn match	vimSetMod	contained	"&vim\=\|[!&?<]\|all&" @@ -371,7 +375,7 @@ syn keyword	vimUnmap		cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[  syn keyword	nvimUnmap 		tunm[ap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs  syn match	vimMapLhs	contained	"\S\+"			contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs  syn match	vimMapBang	contained	"!"			skipwhite nextgroup=vimMapMod,vimMapLhs -syn match	vimMapMod	contained	"\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs +syn match	vimMapMod	contained	"\%#=1\c<\(buffer\|expr\|\(local\)\=leader\|nowait\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs  syn match	vimMapRhs	contained	".*" contains=vimNotation,vimCtrlChar	skipnl nextgroup=vimMapRhsExtend  syn match	vimMapRhsExtend	contained	"^\s*\\.*$"			contains=vimContinue  syn case ignore @@ -393,27 +397,27 @@ syn match	vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList  " Angle-Bracket Notation (tnx to Michael Geddes) {{{2  " ======================  syn case ignore -syn match	vimNotation	"\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket -syn match	vimNotation	"\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket -syn match	vimNotation	"\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"		contains=vimBracket -syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1			contains=vimBracket -syn match	vimNotation	'\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'	contains=vimBracket -syn match	vimNotation	"\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket +syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|mouse\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|kpoint\|space\|k\=\(page\)\=\(\|down\|up\|k\d\>\)\)>" contains=vimBracket +syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket +syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"			contains=vimBracket +syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1				contains=vimBracket +syn match	vimNotation	'\%#=1\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|mods\|f-args\|f-mods\|lt\)>'	contains=vimBracket +syn match	vimNotation	"\%#=1\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket  syn match	vimBracket contained	"[\\<>]"  syn case match  " User Function Highlighting {{{2  " (following Gautam Iyer's suggestion)  " ========================== -syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute -syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation +syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute +syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%(\w\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation  syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"  " Errors And Warnings: {{{2  " ====================  if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimfunctionerror")   syn match	vimFunctionError	"\s\zs[a-z0-9]\i\{-}\ze\s*("			contained contains=vimFuncKey,vimFuncBlank -" syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*("	contained contains=vimFuncKey,vimFuncBlank +" syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\d\i\{-}\ze\s*("	contained contains=vimFuncKey,vimFuncBlank   syn match	vimElseIfErr	"\<else\s\+if\>"   syn match	vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/  endif @@ -470,14 +474,14 @@ syn cluster vimFuncBodyList add=vimSynType  syn cluster	vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin  syn keyword	vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion  syn region	vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup -syn match	vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>" +syn match	vimSynKeyOpt	contained	"\%#=1\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"  syn cluster vimFuncBodyList add=vimSynType  " Syntax: match {{{2  syn cluster	vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation  syn keyword	vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion  syn region	vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\h\w*" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup -syn match	vimSynMtchOpt	contained	"\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>" +syn match	vimSynMtchOpt	contained	"\%#=1\<\(conceal\|transparent\|contained\|excludenl\|keepend\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"  if has("conceal")   syn match	vimSynMtchOpt	contained	"\<cchar="	nextgroup=vimSynMtchCchar   syn match	vimSynMtchCchar	contained	"\S" @@ -492,12 +496,12 @@ syn cluster	vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vim  syn cluster	vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp  syn keyword	vimSynType	contained	region	skipwhite nextgroup=vimSynRegion  syn region	vimSynRegion	contained keepend	matchgroup=vimGroupName start="\h\w*" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup -syn match	vimSynRegOpt	contained	"\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>" +syn match	vimSynRegOpt	contained	"\%#=1\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"  syn match	vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat  syn match	vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup,vimOnlyHLGroup,nvimHLGroup  syn region	vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg -syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" -syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod +syn match	vimSynPatMod	contained	"\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=" +syn match	vimSynPatMod	contained	"\%#=1\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod  syn match	vimSynPatMod	contained	"lc=\d\+"  syn match	vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod  syn region	vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]" @@ -530,14 +534,14 @@ syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotatio  " ============  syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment  if !exists("g:vimsyn_noerror") && !exists("g:vimsyn_novimhictermerror") - syn match	vimHiCtermError	contained	"[^0-9]\i*" + syn match	vimHiCtermError	contained	"\D\i*"  endif  syn match	vimHighlight	"\<hi\%[ghlight]\>"	skipwhite nextgroup=vimHiBang,@vimHighlightCluster  syn match	vimHiBang	contained	"!"	skipwhite nextgroup=@vimHighlightCluster  syn match	vimHiGroup	contained	"\i\+"  syn case ignore -syn keyword	vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl +syn keyword	vimHiAttrib	contained	none bold inverse italic nocombine reverse standout strikethrough underline undercurl  syn keyword	vimFgBgAttrib	contained	none bg background fg foreground  syn case match  syn match	vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib @@ -571,7 +575,9 @@ syn match	vimHiNmbr	contained	'\d\+'  syn keyword	vimHiClear	contained	clear	nextgroup=vimHiGroup  " Highlight: link {{{2 -syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation,vimOnlyHLGroup,nvimHLGroup +" see tst24 (hi def vs hi) (Jul 06, 2018) +"syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation +syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\(\<hi\%[ghlight]\s\+\)\@<=\(\(def\%[ault]\s\+\)\=link\>\|\<def\>\)" end="$"	contains=@vimHiCluster  syn cluster vimFuncBodyList add=vimHiLink  " Control Characters {{{2 @@ -622,6 +628,7 @@ if !filereadable(s:luapath)  endif  if g:vimsyn_embed =~# 'l' && filereadable(s:luapath)   unlet! b:current_syntax + syn cluster vimFuncBodyList	add=vimLuaRegion   exe "syn include @vimLuaScript ".s:luapath   VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimLuaScript   VimFoldl syn region vimLuaRegion matchgroup=vimScriptDelim start=+lua\s*<<\s*$+ end=+\.$+		contains=@vimLuaScript @@ -644,11 +651,12 @@ if !filereadable(s:perlpath)  endif  if g:vimsyn_embed =~# 'p' && filereadable(s:perlpath)   unlet! b:current_syntax + syn cluster vimFuncBodyList	add=vimPerlRegion   let s:foldmethod = &l:foldmethod   exe "syn include @vimPerlScript ".s:perlpath   let &l:foldmethod = s:foldmethod - VimFoldp syn region vimPerlRegion  matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript - VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+	contains=@vimPerlScript + VimFoldp syn region vimPerlRegion  matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(\S*\)\ze\(\s*["#].*\)\=$+ end=+^\z1\ze\(\s*[#"].*\)\=$+	contains=@vimPerlScript + VimFoldp syn region vimPerlRegion	matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+			contains=@vimPerlScript   syn cluster vimFuncBodyList	add=vimPerlRegion  else   syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ @@ -667,12 +675,13 @@ if !filereadable(s:rubypath)   endfor  endif  if g:vimsyn_embed =~# 'r' && filereadable(s:rubypath) + syn cluster vimFuncBodyList	add=vimRubyRegion   unlet! b:current_syntax   let s:foldmethod = &l:foldmethod   exe "syn include @vimRubyScript ".s:rubypath   let &l:foldmethod = s:foldmethod - VimFoldr syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript - syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+		contains=@vimRubyScript + VimFoldr syn region vimRubyRegion	matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+	contains=@vimRubyScript + syn region vimRubyRegion	matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+			contains=@vimRubyScript   syn cluster vimFuncBodyList	add=vimRubyRegion  else   syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ @@ -692,11 +701,12 @@ if !filereadable(s:pythonpath)  endif  if g:vimsyn_embed =~# 'P' && filereadable(s:pythonpath)   unlet! b:current_syntax + syn cluster vimFuncBodyList	add=vimPythonRegion   exe "syn include @vimPythonScript ".s:pythonpath - VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript - VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+		contains=@vimPythonScript - VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(.*\)$+ end=+^\z1$+		contains=@vimPythonScript - VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+		contains=@vimPythonScript + VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+	contains=@vimPythonScript + VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]3\=\s*<<\s*$+ end=+\.$+			contains=@vimPythonScript + VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\s*<<\s*\z(\S*\)\ze\(\s*#.*\)\=$+ end=+^\z1\ze\(\s*".*\)\=$+	contains=@vimPythonScript + VimFoldP syn region vimPythonRegion matchgroup=vimScriptDelim start=+Py\%[thon]2or3\=\s*<<\s*$+ end=+\.$+			contains=@vimPythonScript   syn cluster vimFuncBodyList	add=vimPythonRegion  else   syn region vimEmbedError start=+py\%[thon]3\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ @@ -723,6 +733,7 @@ if s:trytcl   endif   if g:vimsyn_embed =~# 't' && filereadable(s:tclpath)    unlet! b:current_syntax +  syn cluster vimFuncBodyList	add=vimTclRegion    exe "syn include @vimTclScript ".s:tclpath    VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript    VimFoldt syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+	contains=@vimTclScript @@ -751,6 +762,7 @@ endif  if g:vimsyn_embed =~# 'm' && filereadable(s:mzschemepath)   unlet! b:current_syntax   let s:iskKeep= &isk + syn cluster vimFuncBodyList	add=vimMzSchemeRegion   exe "syn include @vimMzSchemeScript ".s:mzschemepath   let &isk= s:iskKeep   unlet s:iskKeep @@ -875,7 +887,7 @@ if !exists("skip_vim_syntax_inits")   hi def link vimOper	Operator   hi def link vimOption	PreProc   hi def link vimParenSep	Delimiter - hi def link vimPatSepErr	vimPatSep + hi def link vimPatSepErr	vimError   hi def link vimPatSepR	vimPatSep   hi def link vimPatSep	SpecialChar   hi def link vimPatSepZone	vimString @@ -897,6 +909,7 @@ if !exists("skip_vim_syntax_inits")   hi def link vimStatement	Statement   hi def link vimStringCont	vimString   hi def link vimString	String + hi def link vimStringEnd	vimString   hi def link vimSubst1	vimSubst   hi def link vimSubstDelim	Delimiter   hi def link vimSubstFlags	Special | 
