@@ -203,11 +203,11 @@ syn match rubyPredefinedVariable "$KCODE\>" display
203203syn cluster rubyGlobalVariable contains =rubyGlobalVariable,rubyPredefinedVariable,rubyGlobalVariableError
204204
205205" Normal Regular Expressions {{{1
206- SynFold ' /' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " \% (\% (^\| \<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<> ?:*+-]\)\s *\)\@ <=/" end = " /[iomxneus]*" skip = " \\\\ \| \\ /" contains= @r ubyRegexpSpecial
207- SynFold ' /' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " \% (\h\k *\s\+\)\@ <=/\% ([ \t =]\| $\)\@ !" end = " /[iomxneus]*" skip = " \\\\ \| \\ /" contains= @r ubyRegexpSpecial
206+ SynFold ' /' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " \% (\% (^\| \<\%(and\|or\|while\|until\|unless\|if\|elsif\|when\|not\|then\|else\)\|[;\~=!|&(,{[<> ?:*+-]\)\s *\)\@ <=/" end = " /[iomxneus]*" skip = " \\\\ \| \\ /" contains= @r ubyRegexpSpecial nextgroup = @r ubyModifier skipwhite
207+ SynFold ' /' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " \% (\h\k *\s\+\)\@ <=/\% ([ \t =]\| $\)\@ !" end = " /[iomxneus]*" skip = " \\\\ \| \\ /" contains= @r ubyRegexpSpecial nextgroup = @r ubyModifier skipwhite
208208
209209" Generalized Regular Expressions {{{1
210- SynFold ' %' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " %r\z ([~`!@#$%^&*_\- +=|\: ;" ',.?/]\) " end=" \z 1[iomxneus]* " skip=" \\\\ \| \\ \z 1" contains=@rubyRegexpSpecial
210+ SynFold ' %' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " %r\z ([~`!@#$%^&*_\- +=|\: ;" ',.?/]\) " end=" \z 1[iomxneus]* " skip=" \\\\ \| \\ \z 1" contains=@rubyRegexpSpecial nextgroup=@rubyModifier skipwhite
211211SynFold ' %' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " %r{" end = " }[iomxneus]*" skip = " \\\\ \| \\ }" contains= @r ubyRegexpSpecial
212212SynFold ' %' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " %r<" end = " >[iomxneus]*" skip = " \\\\ \| \\ >" contains= @r ubyRegexpSpecial,rubyNestedAngleBrackets
213213SynFold ' %' syn region rubyRegexp matchgroup= rubyRegexpDelimiter start = " %r\[ " end = " \] [iomxneus]*" skip = " \\\\ \| \\ \] " contains= @r ubyRegexpSpecial
@@ -245,10 +245,10 @@ for s:delimiter in keys(s:names)
245245
246246 exe ' syn match ' . s: group . ' "\V\\' . s: delimiter . ' " contained display'
247247 exe ' syn cluster rubySingleCharEscape add=' . s: group
248- exe ' SynFold '' %'' syn region rubyString matchgroup=rubyStringDelimiter start="\V%q' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,' . s: group
249- exe ' SynFold '' %'' syn region rubyString matchgroup=rubyStringDelimiter start="\V%w' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,rubySpaceEscape,' . s: group
250- exe ' SynFold '' %'' syn region rubySymbol matchgroup=rubySymbolDelimiter start="\V%s' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,' . s: group
251- exe ' SynFold '' %'' syn region rubySymbol matchgroup=rubySymbolDelimiter start="\V%i' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,rubySpaceEscape,' . s: group
248+ exe ' SynFold '' %'' syn region rubyString matchgroup=rubyStringDelimiter start="\V%q' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,' . s: group . ' nextgroup=@rubyModifier skipwhite '
249+ exe ' SynFold '' %'' syn region rubyString matchgroup=rubyStringDelimiter start="\V%w' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,rubySpaceEscape,' . s: group . ' nextgroup=@rubyModifier skipwhite '
250+ exe ' SynFold '' %'' syn region rubySymbol matchgroup=rubySymbolDelimiter start="\V%s' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,' . s: group . ' nextgroup=@rubyModifier skipwhite '
251+ exe ' SynFold '' %'' syn region rubySymbol matchgroup=rubySymbolDelimiter start="\V%i' . s: delimiter . ' " end="\V' . s: delimiter . ' " skip="\V\\\\\|\\' . s: delimiter . ' " contains=rubyBackslashEscape,rubySpaceEscape,' . s: group . ' nextgroup=@rubyModifier skipwhite '
252252 exe ' hi def link ' . s: group . ' rubyStringEscape'
253253endfor
254254
@@ -279,7 +279,7 @@ SynFold '%' syn region rubySymbol matchgroup=rubySymbolDelimiter start="%i("
279279
280280" Generalized Double Quoted Strings, Symbols, Array of Strings, Array of Symbols and Shell Command Output {{{1
281281" Note: %= is not matched here as the beginning of a double quoted string
282- SynFold ' %' syn region rubyString matchgroup= rubyStringDelimiter start = " %\z ([~`!@#$%^&*_\- +|\: ;" ',.?/]\) " end=" \z 1" skip=" \\\\ \| \\ \z 1" contains=@rubyStringSpecial
282+ SynFold ' %' syn region rubyString matchgroup= rubyStringDelimiter start = " %\z ([~`!@#$%^&*_\- +|\: ;" ',.?/]\) " end=" \z 1" skip=" \\\\ \| \\ \z 1" contains=@rubyStringSpecial nextgroup=@rubyModifier skipwhite
283283SynFold ' %' syn region rubyString matchgroup= rubyStringDelimiter start = " %[QWx]\z ([~`!@#$%^&*_\- +=|\: ;" ',.?/]\) " end=" \z 1" skip=" \\\\ \| \\ \z 1" contains=@rubyStringSpecial
284284SynFold ' %' syn region rubyString matchgroup= rubyStringDelimiter start = " %[QWx]\= {" end = " }" skip = " \\\\ \| \\ }" contains= @r ubyStringSpecial,rubyNestedCurlyBraces
285285SynFold ' %' syn region rubyString matchgroup= rubyStringDelimiter start = " %[QWx]\= <" end = " >" skip = " \\\\ \| \\ >" contains= @r ubyStringSpecial,rubyNestedAngleBrackets
@@ -288,7 +288,7 @@ SynFold '%' syn region rubyString matchgroup=rubyStringDelimiter start="%[QWx]\=
288288SynFold ' %' syn region rubyString matchgroup= rubyStringDelimiter start = " %[Qx]\z (\s\) " end = " \z 1" skip = " \\\\ \| \\ \z 1" contains= @r ubyStringSpecial
289289
290290" Array of interpolated Symbols
291- SynFold ' %' syn region rubySymbol matchgroup= rubySymbolDelimiter start = " %I\z ([~`!@#$%^&*_\- +=|\: ;" ',.?/]\) " end=" \z 1" skip=" \\\\ \| \\ \z 1" contains=@rubyStringSpecial
291+ SynFold ' %' syn region rubySymbol matchgroup= rubySymbolDelimiter start = " %I\z ([~`!@#$%^&*_\- +=|\: ;" ',.?/]\) " end=" \z 1" skip=" \\\\ \| \\ \z 1" contains=@rubyStringSpecial nextgroup=@rubyModifier skipwhite
292292SynFold ' %' syn region rubySymbol matchgroup= rubySymbolDelimiter start = " %I{" end = " }" skip = " \\\\ \| \\ }" contains= @r ubyStringSpecial,rubyNestedCurlyBraces
293293SynFold ' %' syn region rubySymbol matchgroup= rubySymbolDelimiter start = " %I<" end = " >" skip = " \\\\ \| \\ >" contains= @r ubyStringSpecial,rubyNestedAngleBrackets
294294SynFold ' %' syn region rubySymbol matchgroup= rubySymbolDelimiter start = " %I\[ " end = " \] " skip = " \\\\ \| \\ \] " contains= @r ubyStringSpecial,rubyNestedSquareBrackets
@@ -348,11 +348,13 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
348348 SynFold ' module' syn region rubyModuleBlock start = " \< module\> " matchgroup= rubyModule end = " \< end\> " contains= ALLBUT ,@r ubyNotTop
349349
350350 " modifiers
351- syn match rubyLineContinuation " \\ $" nextgroup =rubyConditionalModifier,rubyRepeatModifier,rubyRescueModifier skipwhite skipnl
351+ syn match rubyLineContinuation " \\ $" nextgroup =@rubyModifier skipwhite skipnl
352352 syn match rubyConditionalModifier " \<\% (if\| unless\)\> "
353353 syn match rubyRepeatModifier " \<\% (while\| until\)\> "
354354 syn match rubyRescueModifier " \< rescue\> "
355355
356+ syn cluster rubyModifier contains =rubyConditionalModifier,rubyRepeatModifier,rubyRescueModifier
357+
356358 SynFold ' do' syn region rubyDoBlock matchgroup= rubyControl start = " \< do\> " end = " \< end\> " contains= ALLBUT ,@r ubyNotTop
357359
358360 " curly bracket block or hash literal
@@ -363,7 +365,7 @@ if !exists("b:ruby_no_expensive") && !exists("ruby_no_expensive")
363365 SynFold ' begin' syn region rubyBlockExpression matchgroup= rubyControl start = " \< begin\> " end = " \< end\> " contains= ALLBUT ,@r ubyNotTop
364366 SynFold ' case' syn region rubyCaseExpression matchgroup= rubyConditional start = " \< case\> " end = " \< end\> " contains= ALLBUT ,@r ubyNotTop
365367
366- SynFold ' if' syn region rubyConditionalExpression matchgroup= rubyConditional start = " \% (\% (^\|\.\.\.\=\| [{:,;([<>~\* %&^|+=-]\|\< then\s\|\% (\< [_[:lower:]][_[:alnum:]]*\)\@ <![?!]\)\s *\)\@ <=\% (if\| unless\)\> " end = " \% (\% (\% (\.\@ 1<!\.\)\| ::\)\s *\)\@ <!\< end\> " contains= ALLBUT ,@r ubyNotTop
368+ SynFold ' if' syn region rubyConditionalExpression matchgroup= rubyConditional start = " \% (\% (^\|\.\.\.\=\| [{:,;([<>~\* / %&^|+=-]\|\< then\s\|\% (\< [_[:lower:]][_[:alnum:]]*\)\@ <![?!]\)\s *\)\@ <=\% (if\| unless\)\> " end = " \% (\% (\% (\.\@ 1<!\.\)\| ::\)\s *\)\@ <!\< end\> " contains= ALLBUT ,@r ubyNotTop
367369
368370 syn match rubyConditional " \<\% (then\| else\| when\)\> [?!]\@ !" contained containedin =rubyCaseExpression
369371 syn match rubyConditional " \<\% (then\| else\| elsif\)\> [?!]\@ !" contained containedin =rubyConditionalExpression
0 commit comments