--- ruby.vim Wed Mar 30 15:10:26 2005 UTC +++ ruby.vim Wed Mar 30 19:18:41 2005 UTC @@ -44,12 +44,13 @@ syn match rubyInterpolation "#\%(\$\|@@\=\)\w\+" contained display syn match rubyNoInterpolation "\\#{[^}]*}" contained syn match rubyNoInterpolation "\\#\%(\$\|@@\=\)\w\+" contained display -syn region rubyNestedBrackets start="(" end=")" skip="\\\\\|\\)" contained contains=@rubyStringSpecial -syn region rubyNestedBrackets start="{" end="}" skip="\\\\\|\\}" contained contains=@rubyStringSpecial -syn region rubyNestedBrackets start="<" end=">" skip="\\\\\|\\>" contained contains=@rubyStringSpecial -syn region rubyNestedBrackets start="\[" end="\]" skip="\\\\\|\\\]" contained contains=@rubyStringSpecial +syn match rubyDelimEscape "\\[(<{\[]" contained display +syn region rubyNestedParens start="(" end=")" skip="\\\\\|\\)" contained contains=@rubyStringSpecial,rubyNestedParens +syn region rubyNestedCurlies start="{" end="}" skip="\\\\\|\\}" contained contains=@rubyStringSpecial,rubyNestedCurlies +syn region rubyNestedAngles start="<" end=">" skip="\\\\\|\\>" contained contains=@rubyStringSpecial,rubyNestedAngles +syn region rubyNestedBrackets start="\[" end="\]" skip="\\\\\|\\\]" contained contains=@rubyStringSpecial,rubyNestedBrackets -syn cluster rubyStringSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyEscape,rubyNestedBrackets +syn cluster rubyStringSpecial contains=rubyInterpolation,rubyNoInterpolation,rubyEscape,rubyDelimEscape " Numbers and ASCII Codes syn match rubyASCIICode "\w\@[iomx]*" skip="\\\\\|\\>" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%r\[" end="\][iomx]*" skip="\\\\\|\\\]" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%r(" end=")[iomx]*" skip="\\\\\|\\)" contains=@rubyStringSpecial fold +syn region rubyString matchgroup=rubyStringDelimiter start="%r{" end="}[iomx]*" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlies fold +syn region rubyString matchgroup=rubyStringDelimiter start="%r<" end=">[iomx]*" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngles fold +syn region rubyString matchgroup=rubyStringDelimiter start="%r\[" end="\][iomx]*" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedBrackets fold +syn region rubyString matchgroup=rubyStringDelimiter start="%r(" end=")[iomx]*" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParens fold " Generalized Single Quoted String, Symbol and Array of Strings syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]{" end="}" skip="\\\\\|\\}" fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]<" end=">" skip="\\\\\|\\>" fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]\[" end="\]" skip="\\\\\|\\\]" fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw](" end=")" skip="\\\\\|\\)" fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]{" end="}" skip="\\\\\|\\}" fold contains=rubyNestedCurlies +syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]<" end=">" skip="\\\\\|\\>" fold contains=rubyNestedAngles +syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw]\[" end="\]" skip="\\\\\|\\\]" fold contains=rubyNestedBrackets +syn region rubyString matchgroup=rubyStringDelimiter start="%[qsw](" end=")" skip="\\\\\|\\)" fold contains=rubyNestedParens " Generalized Double Quoted String and Array of Strings and Shell Command Output " Note: %= is not matched here as the beginning of a double quoted string syn region rubyString matchgroup=rubyStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial fold -syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=@rubyStringSpecial,rubyNestedCurlies fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=@rubyStringSpecial,rubyNestedAngles fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=@rubyStringSpecial,rubyNestedBrackets fold +syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=@rubyStringSpecial,rubyNestedParens fold " Here Document syn region rubyString matchgroup=rubyStringDelimiter start=+\%(\%(class\s*\|\%(\.\|::\)\)\_s*\)\@