33" Maintainer: Hirohito Higashi <h.east.727 ATMARK gmail.com>
44" Doug Kearns <dougkearns@gmail.com>
55" URL: https://github.com/vim-jp/syntax-vim-ex
6- " Last Change: 2024 Aug 16
6+ " Last Change: 2024 Aug 21
77" Former Maintainer: Charles E. Campbell
88
99" DO NOT CHANGE DIRECTLY.
@@ -441,11 +441,12 @@ syn match vimEscape contained "\\\o\{1,3}\|\\[xX]\x\{1,2}\|\\u\x\{1,4}\|\\U\x\{1
441441syn match vimEscape contained " \\ <" contains =vimNotation
442442syn match vimEscape contained " \\ <\* [^>]*>\= >"
443443
444- syn region vimString oneline start =+ $'+ skip =+ ''+ end =+ '+ contains =vimStringInterpolationBrace,vimStringInterpolationExpr
445- syn region vimString oneline start =+ $"+ end =+ "+ contains =@vimStringGroup,vimStringInterpolationBrace,vimStringInterpolationExpr
444+ syn region vimString oneline start =+ $'+ skip =+ ''+ end =+ '+ contains =@vimStringInterpolation
445+ syn region vimString oneline start =+ $"+ end =+ "+ contains =@vimStringGroup,@vimStringInterpolation
446446syn region vimStringInterpolationExpr oneline contained matchgroup =vimSep start =+ {+ end =+ }+ contains =@vimExprList
447447syn match vimStringInterpolationBrace contained " {{"
448448syn match vimStringInterpolationBrace contained " }}"
449+ syn cluster vimStringInterpolation contains =vimStringInterpolationExpr,vimStringInterpolationBrace
449450
450451" Substitutions: {{{2
451452" =============
@@ -525,13 +526,10 @@ VimL syn keyword vimUnlet unl[et] skipwhite nextgroup=vimUnletBang,vimUnletVars
525526syn match vimUnletBang contained " !" skipwhite nextgroup =vimUnletVars
526527syn region vimUnletVars contained start =" $\I\|\h " skip =" \n\s *\\ " end =" $" end =" |" contains =vimVar,vimEnvvar,vimContinue,vimString,vimNumber
527528
528- " Note: This incorrectly matches end markers with leading whitespace even if
529- " "trim" was not specified. Matching :let indent for "trim" indented
530- " end markers would require a contained :let that cannot be restricted
531- " to the start pattern. A common internal testing use of heredocs is to
532- " specify code blocks where :let commonly appears in the heredoc text.
533- VimFoldh syn region vimLetHereDoc matchgroup =vimLetHereDocStart start =' =<<\s *\% (trim\s\+\)\=\z (\L\S *\) ' matchgroup =vimLetHereDocStop end =' ^\s *\z 1$' extend
534- VimFoldh syn region vimLetHereDoc matchgroup =vimLetHereDocStart start =' =<<\s *\% (trim\s\+\)\= eval\s\+\| eval\s\+\% (trim\s\+\)\=\z (\L\S *\) ' matchgroup =vimLetHereDocStop end =' ^\s *\z 1$' contains =vimStringInterpolationExpr,vimStringInterpolationBrace extend
529+ VimFoldh syn region vimLetHereDoc matchgroup =vimLetHereDocStart start =' \% (^\z (\s *\)\S .*\)\@ <==<<\s *trim\% (\s\+\)\@ >\z (\L\S *\) ' matchgroup =vimLetHereDocStop end =' ^\z 1\z 2$' extend
530+ VimFoldh syn region vimLetHereDoc matchgroup =vimLetHereDocStart start =' =<<\% (\s *\)\@ >\z (\L\S *\) ' matchgroup =vimLetHereDocStop end =' ^\z 1$' extend
531+ VimFoldh syn region vimLetHereDoc matchgroup =vimLetHereDocStart start =' \% (^\z (\s *\)\S .*\)\@ <==<<\s *\% (trim\s\+ eval\| eval\s\+ trim\)\% (\s\+\)\@ >\z (\L\S *\) ' matchgroup =vimLetHereDocStop end =' ^\z 1\z 2$' contains =@vimStringInterpolation extend
532+ VimFoldh syn region vimLetHereDoc matchgroup =vimLetHereDocStart start =' =<<\s *eval\% (\s\+\)\@ >\z (\L\S *\) ' matchgroup =vimLetHereDocStop end =' ^\z 1$' contains =@vimStringInterpolation extend
535533
536534Vim9 syn keyword vim9Const const skipwhite nextgroup= vim9Variable,vim9VariableList
537535Vim9 syn keyword vim9Final final skipwhite nextgroup= vim9Variable,vim9VariableList
@@ -934,12 +932,16 @@ if (g:vimsyn_embed =~# 'l' && has("lua")) && filereadable(s:luapath)
934932 unlet ! b: current_syntax
935933 syn cluster vimFuncBodyList add =vimLuaRegion
936934 exe " syn include @vimLuaScript " .s: luapath
937- VimFoldl syn region vimLuaRegion matchgroup =vimScriptDelim start =+ lua\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+ contains =@vimLuaScript
938- VimFoldl syn region vimLuaRegion matchgroup =vimScriptDelim start =+ lua\s *<<\s *$+ end =+ \. $+ contains =@vimLuaScript
935+ VimFoldl syn region vimLuaRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) lua\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+ contains =@vimLuaScript
936+ VimFoldl syn region vimLuaRegion matchgroup =vimScriptDelim start =+ lua\s *<<\s *\z (\S *\) + end =+ ^\z 1$+ contains =@vimLuaScript
937+ VimFoldl syn region vimLuaRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) lua\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+ contains =@vimLuaScript
938+ VimFoldl syn region vimLuaRegion matchgroup =vimScriptDelim start =+ lua\s *<<\s *$+ end =+ ^\. $+ contains =@vimLuaScript
939939 syn cluster vimFuncBodyList add =vimLuaRegion
940940else
941- syn region vimEmbedError start =+ lua\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
942- syn region vimEmbedError start =+ lua\s *<<\s *$+ end =+ \. $+
941+ syn region vimEmbedError start =+ ^\z (\s *\) lua\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
942+ syn region vimEmbedError start =+ lua\s *<<\s *\z (\S *\) + end =+ ^\z 1$+
943+ syn region vimEmbedError start =+ ^\z (\s *\) lua\s *<<\s *trim\s\* $+ end =+ ^\z 1\. $+
944+ syn region vimEmbedError start =+ lua\s *<<\s *$+ end =+ ^\. $+
943945endif
944946unlet s: luapath
945947
@@ -957,12 +959,16 @@ if (g:vimsyn_embed =~# 'p' && has("perl")) && filereadable(s:perlpath)
957959 unlet ! b: current_syntax
958960 syn cluster vimFuncBodyList add =vimPerlRegion
959961 exe " syn include @vimPerlScript " .s: perlpath
960- VimFoldp syn region vimPerlRegion matchgroup =vimScriptDelim start =+ pe\% [rl]\s *<<\s *\z (\S *\)\z e\(\s *["#].*\)\= $+ end =+ ^\z 1\z e\(\s *[#"].*\)\= $+ contains =@vimPerlScript
961- VimFoldp syn region vimPerlRegion matchgroup =vimScriptDelim start =+ pe\% [rl]\s *<<\s *$+ end =+ \. $+ contains =@vimPerlScript
962+ VimFoldp syn region vimPerlRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) pe\% [rl]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+ contains =@vimPerlScript
963+ VimFoldp syn region vimPerlRegion matchgroup =vimScriptDelim start =+ pe\% [rl]\s *<<\s *\z (\S *\) + end =+ ^\z 1$+ contains =@vimPerlScript
964+ VimFoldp syn region vimPerlRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) pe\% [rl]\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+ contains =@vimPerlScript
965+ VimFoldp syn region vimPerlRegion matchgroup =vimScriptDelim start =+ pe\% [rl]\s *<<\s *$+ end =+ \. $+ contains =@vimPerlScript
962966 syn cluster vimFuncBodyList add =vimPerlRegion
963967else
964- syn region vimEmbedError start =+ pe\% [rl]\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
965- syn region vimEmbedError start =+ pe\% [rl]\s *<<\s *$+ end =+ \. $+
968+ syn region vimEmbedError start =+ ^\z (\s *\) pe\% [rl]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
969+ syn region vimEmbedError start =+ pe\% [rl]\s *<<\s *\z (\S *\) + end =+ ^\z 1$+
970+ syn region vimEmbedError start =+ ^\z (\s *\) pe\% [rl]\s *<<\s *trim\s\* $+ end =+ ^\z 1\. $+
971+ syn region vimEmbedError start =+ pe\% [rl]\s *<<\s *$+ end =+ ^\. $+
966972endif
967973unlet s: perlpath
968974
@@ -980,12 +986,16 @@ if (g:vimsyn_embed =~# 'r' && has("ruby")) && filereadable(s:rubypath)
980986 syn cluster vimFuncBodyList add =vimRubyRegion
981987 unlet ! b: current_syntax
982988 exe " syn include @vimRubyScript " .s: rubypath
983- VimFoldr syn region vimRubyRegion matchgroup =vimScriptDelim start =+ rub[y]\s *<<\s *\z (\S *\)\z e\(\s *#.*\)\= $+ end =+ ^\z 1\z e\(\s *".*\)\= $+ contains =@vimRubyScript
984- syn region vimRubyRegion matchgroup =vimScriptDelim start =+ rub[y]\s *<<\s *$+ end =+ \. $+ contains =@vimRubyScript
989+ VimFoldr syn region vimRubyRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) rub\% [y]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+ contains =@vimRubyScript
990+ VimFoldr syn region vimRubyRegion matchgroup =vimScriptDelim start =+ rub\% [y]\s *<<\s *\z (\S *\) + end =+ ^\z 1$+ contains =@vimRubyScript
991+ VimFoldr syn region vimRubyRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) rub\% [y]\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+ contains =@vimRubyScript
992+ VimFoldr syn region vimRubyRegion matchgroup =vimScriptDelim start =+ rub\% [y]\s *<<\s *$+ end =+ \. $+ contains =@vimRubyScript
985993 syn cluster vimFuncBodyList add =vimRubyRegion
986994else
987- syn region vimEmbedError start =+ rub[y]\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
988- syn region vimEmbedError start =+ rub[y]\s *<<\s *$+ end =+ \. $+
995+ syn region vimEmbedError start =+ ^\z (\s *\) rub\% [y]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
996+ syn region vimEmbedError start =+ rub\% [y]\s *<<\s *\z (\S .*\) + end =+ ^\z 1$+
997+ syn region vimEmbedError start =+ ^\z (\s *\) rub\% [y]\s *<<\s *trim\s\* $+ end =+ ^\z 1\. $+
998+ syn region vimEmbedError start =+ rub\% [y]\s *<<\s *$+ end =+ ^\. $+
989999endif
9901000unlet s: rubypath
9911001
@@ -1003,14 +1013,18 @@ if g:vimsyn_embed =~# 'P' && has("pythonx") && filereadable(s:pythonpath)
10031013 unlet ! b: current_syntax
10041014 syn cluster vimFuncBodyList add =vimPythonRegion
10051015 exe " syn include @vimPythonScript " .s: pythonpath
1006- VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ py\% [thon][3x]\=\s *<<\s *\% (trim\s *\)\=\z (\S *\)\z e\(\s *#.*\)\= $+ end =+ ^\z 1\z e\(\s *".*\)\= $+ contains =@vimPythonScript
1007- VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ py\% [thon][3x]\=\s *<<\s *\% (trim\s *\)\= $+ end =+ \. $+ contains =@vimPythonScript
1008- VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ Py\% [thon]2or3\s *<<\s *\% (trim\s *\)\=\z (\S *\)\z e\(\s *#.*\)\= $+ end =+ ^\z 1\z e\(\s *".*\)\= $+ contains =@vimPythonScript
1009- VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ Py\% [thon]2or3\=\s *<<\s *\% (trim\s *\)\= $+ end =+ \. $+ contains =@vimPythonScript
1016+ VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) py\% [thon][3x]\=\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+ contains =@vimPythonScript
1017+ VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ py\% [thon][3x]\=\s *<<\s *\z (\S\+\) + end =+ ^\z 1$+ contains =@vimPythonScript
1018+ VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) py\% [thon][3x]\=\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+ contains =@vimPythonScript
1019+ VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ py\% [thon][3x]\=\s *<<\s *$+ end =+ ^\. $+ contains =@vimPythonScript
1020+ VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ Py\% [thon]2or3\s *<<\s *\% (trim\s *\)\=\z (\S\+\) + end =+ ^\z 1$+ contains =@vimPythonScript
1021+ VimFoldP syn region vimPythonRegion matchgroup =vimScriptDelim start =+ Py\% [thon]2or3\s *<<\s *\% (trim\s *\)\= $+ end =+ ^\. $+ contains =@vimPythonScript
10101022 syn cluster vimFuncBodyList add =vimPythonRegion
10111023else
1012- syn region vimEmbedError start =+ py\% [thon]3\=\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
1013- syn region vimEmbedError start =+ py\% [thon]3\=\s *<<\s *$+ end =+ \. $+
1024+ syn region vimEmbedError start =+ ^\z (\s *\) py\% [thon][3x]\=\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
1025+ syn region vimEmbedError start =+ py\% [thon][3x]\=\s *<<\s *\z (\S\+\) + end =+ ^\z 1$+
1026+ syn region vimEmbedError start =+ ^\z (\s *\) py\% [thon][3x]\=\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+
1027+ syn region vimEmbedError start =+ py\% [thon][3x]\=\s *<<\s *$+ end =+ ^\. $+
10141028endif
10151029unlet s: pythonpath
10161030
@@ -1035,17 +1049,23 @@ if s:trytcl
10351049 unlet ! b: current_syntax
10361050 syn cluster vimFuncBodyList add =vimTclRegion
10371051 exe " syn include @vimTclScript " .s: tclpath
1038- VimFoldt syn region vimTclRegion matchgroup =vimScriptDelim start =+ tc[l]\=\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+ contains =@vimTclScript
1039- VimFoldt syn region vimTclRegion matchgroup =vimScriptDelim start =+ tc[l]\=\s *<<\s *$+ end =+ \. $+ contains =@vimTclScript
1052+ VimFoldt syn region vimTclRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) tc\% [l]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+ contains =@vimTclScript
1053+ VimFoldt syn region vimTclRegion matchgroup =vimScriptDelim start =+ tc\% [l]\=\s *<<\s *\z (\S *\) + end =+ ^\z 1$+ contains =@vimTclScript
1054+ VimFoldt syn region vimTclRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) tc\% [l]\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+ contains =@vimTclScript
1055+ VimFoldt syn region vimTclRegion matchgroup =vimScriptDelim start =+ tc\% [l]\=\s *<<\s *$+ end =+ ^\. $+ contains =@vimTclScript
10401056 syn cluster vimFuncBodyList add =vimTclScript
10411057 else
1042- syn region vimEmbedError start =+ tc[l]\=\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
1043- syn region vimEmbedError start =+ tc[l]\=\s *<<\s *$+ end =+ \. $+
1058+ syn region vimEmbedError start =+ ^\z (\s *\) tc\% [l]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
1059+ syn region vimEmbedError start =+ tc\% [l]\=\s *<<\s *\z (\S *\) + end =+ ^\z 1$+
1060+ syn region vimEmbedError start =+ ^\z (\s *\) tc\% [l]\s *<<\s *trim\s\* $+ end =+ ^\z 1\. $+
1061+ syn region vimEmbedError start =+ tc\% [l]\=\s *<<\s *$+ end =+ ^\. $+
10441062 endif
10451063 unlet s: tclpath
10461064else
1047- syn region vimEmbedError start =+ tc[l]\=\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
1048- syn region vimEmbedError start =+ tc[l]\=\s *<<\s *$+ end =+ \. $+
1065+ syn region vimEmbedError start =+ ^\z (\s *\) tc\% [l]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
1066+ syn region vimEmbedError start =+ tc\% [l]\=\s *<<\s *\z (\S *\) + end =+ ^\z 1$+
1067+ syn region vimEmbedError start =+ ^\z (\s *\) tc\% [l]\s *<<\s *trim\s\* $+ end =+ ^\z 1\. $+
1068+ syn region vimEmbedError start =+ tc\% [l]\=\s *<<\s *$+ end =+ ^\. $+
10491069endif
10501070unlet s: trytcl
10511071
@@ -1066,12 +1086,16 @@ if (g:vimsyn_embed =~# 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
10661086 exe " syn include @vimMzSchemeScript " .s: mzschemepath
10671087 let &isk = s: iskKeep
10681088 unlet s: iskKeep
1069- VimFoldm syn region vimMzSchemeRegion matchgroup =vimScriptDelim start =+ mz\% [scheme]\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+ contains =@vimMzSchemeScript
1070- VimFoldm syn region vimMzSchemeRegion matchgroup =vimScriptDelim start =+ mz\% [scheme]\s *<<\s *$+ end =+ \. $+ contains =@vimMzSchemeScript
1089+ VimFoldm syn region vimMzSchemeRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) mz\% [scheme]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+ contains =@vimMzSchemeScript
1090+ VimFoldm syn region vimMzSchemeRegion matchgroup =vimScriptDelim start =+ mz\% [scheme]\s *<<\s *\z (\S *\) + end =+ ^\z 1$+ contains =@vimMzSchemeScript
1091+ VimFoldm syn region vimMzSchemeRegion matchgroup =vimScriptDelim start =+ ^\z (\s *\) mz\% [scheme]\s *<<\s *trim\s *$+ end =+ ^\z 1\. $+ contains =@vimMzSchemeScript
1092+ VimFoldm syn region vimMzSchemeRegion matchgroup =vimScriptDelim start =+ mz\% [scheme]\s *<<\s *$+ end =+ ^\. $+ contains =@vimMzSchemeScript
10711093 syn cluster vimFuncBodyList add =vimMzSchemeRegion
10721094else
1073- syn region vimEmbedError start =+ mz\% [scheme]\s *<<\s *\z (.*\) $+ end =+ ^\z 1$+
1074- syn region vimEmbedError start =+ mz\% [scheme]\s *<<\s *$+ end =+ \. $+
1095+ syn region vimEmbedError start =+ ^\z (\s *\) mz\% [scheme]\s *<<\s *trim\s\+\z (\S\+\) + end =+ ^\z 1\z 2$+
1096+ syn region vimEmbedError start =+ mz\% [scheme]\s *<<\s *\z (\S *\) + end =+ ^\z 1$+
1097+ syn region vimEmbedError start =+ ^\z (\s *\) mz\% [scheme]\s *<<\s *trim\s\* $+ end =+ ^\z 1\. $+
1098+ syn region vimEmbedError start =+ mz\% [scheme]\s *<<\s *$+ end =+ ^\. $+
10751099endif
10761100unlet s: mzschemepath
10771101
0 commit comments