@@ -65,7 +65,7 @@ endfunction
6565com ! -nargs =* SynFold call s: run_syntax_fold (<q-args> )
6666
6767" Not-Top Cluster {{{1
68- syn cluster rubyNotTop contains =@rubyCommentNotTop,@rubyStringNotTop,@rubyRegexpSpecial,@rubyDeclaration,@rubyExceptionHandler,@rubyClassOperator,rubyConditional,rubyModuleName,rubyClassName,rubySymbolDelimiter
68+ syn cluster rubyNotTop contains =@rubyCommentNotTop,@rubyStringNotTop,@rubyRegexpSpecial,@rubyDeclaration,@rubyExceptionHandler,@rubyClassOperator,rubyConditional,rubyModuleName,rubyClassName,rubySymbolDelimiter,rubyParentheses
6969
7070" Whitespace Errors {{{1
7171if exists (" ruby_space_errors" )
@@ -91,6 +91,7 @@ if exists("ruby_operators") || exists("ruby_pseudo_operators")
9191 syn match rubyBooleanOperator " \% (\w\| [^\x 00-\x 7F]\)\@ 1<!!\| &&\| ||"
9292 syn match rubyRangeOperator " \.\.\.\= "
9393 syn match rubyAssignmentOperator " =>\@ !\| -=\| /=\|\*\* =\|\* =\| &&=\| &=\| ||=\| |=\| %=\| +=\| >>=\| <<=\|\^ ="
94+ syn match rubyAssignmentOperator " =>\@ !" containedin =rubyBlockParameterList " TODO: this is inelegant
9495 syn match rubyEqualityOperator " ===\| ==\| !=\| !\~\| =\~ "
9596
9697 syn region rubyBracketOperator matchgroup =rubyOperator start =" \% (\% (\w\| [^\x 00-\x 7F]\) [?!]\=\| []})]\)\@ 2<=\[ " end =" ]" contains =ALLBUT,@rubyNotTop
@@ -106,6 +107,7 @@ if exists("ruby_operators") || exists("ruby_pseudo_operators")
106107 syn match rubyProcOperator " \% ([[(|,]\_ s*\)\@ <=&"
107108 syn match rubyProcOperator " \s\@ 1<=&\% (\h\| [^\x 00-\x 7F]\| [:$@]\| ->\)\@ ="
108109
110+ syn cluster rubyProperOperator contains =rubyTernaryOperator,rubyArithmeticOperator,rubyComparisonOperator,rubyBitwiseOperator,rubyBooleanOperator,rubyRangeOperator,rubyAssignmentOperator,rubyEqualityOperator,rubyDefinedOperator,rubyEnglishBooleanOperator
109111 syn cluster rubyClassOperator contains =rubyEigenClassOperator,rubySuperClassOperator
110112 syn cluster rubyPseudoOperator contains =rubyDotOperator,rubyScopeOperator,rubyEigenClassOperator,rubySuperClassOperator,rubyLambdaOperator,rubySplatOperator,rubyDoubleSplatOperator,rubyProcOperator
111113 syn cluster rubyOperator contains =ruby.*Operator
@@ -190,8 +192,8 @@ SynFold ':' syn region rubySymbol matchgroup=rubySymbolDelimiter start="[]})\"':
190192
191193syn match rubyCapitalizedMethod " \% (\% (^\| [^.]\)\.\s *\)\@ <!\<\u\% (\w\| [^\x 00-\x 7F]\) *\>\% (\s *(\)\@ ="
192194
193- syn match rubyBlockParameter " \% ( \h\| [^ \x 00- \x 7F] \)\% ( \w\| [^ \x 00- \x 7F] \) * " contained
194- syn region rubyBlockParameterList start =" \% (\% (\< do\>\| {\)\_ s*\)\@ 32<=|" end =" |" oneline display contains =rubyBlockParameter,rubySplatOperator,rubyDoubleSplatOperator,rubyProcOperator
195+ syn region rubyParentheses start = " ( " end = " ) " contains = ALLBUT,@rubyNotTop containedin = rubyBlockParameterList
196+ syn region rubyBlockParameterList start =" \% (\% (\< do\>\| {\)\_ s*\)\@ 32<=|" end =" |" contains =ALLBUT,@rubyNotTop,@rubyProperOperator
195197
196198if exists (' ruby_global_variable_error' )
197199 syn match rubyGlobalVariableError " $[^A-Za-z_]" display
@@ -310,6 +312,7 @@ SynFold '%' syn region rubySymbol matchgroup=rubyPercentSymbolDelimiter start="%
310312
311313" Here Documents {{{1
312314syn region rubyHeredocStart matchgroup =rubyHeredocDelimiter start =+ \% (\% (class\| ::\|\.\@ 1<!\.\)\_ s*\|\% ([]})"'`]\)\s\|\w\)\@ <!<<[-~]\=\z s\% (\% (\h\| [^\x 00-\x 7F]\)\% (\w\| [^\x 00-\x 7F]\) *\) + end =+ $+ oneline contains =ALLBUT,@rubyNotTop
315+
313316syn region rubyHeredocStart matchgroup =rubyHeredocDelimiter start =+ \% (\% (class\| ::\|\.\@ 1<!\.\)\_ s*\|\% ([]})"'`]\)\s\|\w\)\@ <!<<[-~]\=\z s"\% ([^"]*\) "+ end =+ $+ oneline contains =ALLBUT,@rubyNotTop
314317syn region rubyHeredocStart matchgroup =rubyHeredocDelimiter start =+ \% (\% (class\| ::\|\.\@ 1<!\.\)\_ s*\|\% ([]})"'`]\)\s\|\w\)\@ <!<<[-~]\=\z s'\% ([^']*\) '+ end =+ $+ oneline contains =ALLBUT,@rubyNotTop
315318syn region rubyHeredocStart matchgroup =rubyHeredocDelimiter start =+ \% (\% (class\| ::\|\.\@ 1<!\.\)\_ s*\|\% ([]})"'`]\)\s\|\w\)\@ <!<<[-~]\=\z s`\% ([^`]*\) `+ end =+ $+ oneline contains =ALLBUT,@rubyNotTop
@@ -335,7 +338,7 @@ syn match rubyMethodName "\<\%([_[:alpha:]]\|[^\x00-\x7F]\)\%([_[:alnum:]]\|[^\x
335338syn match rubyMethodName " \% (\s\| ^\)\@ 1<=\% ([_[:alpha:]]\| [^\x 00-\x 7F]\)\% ([_[:alnum:]]\| [^\x 00-\x 7F]\) *[?!=]\=\% (\s\| $\)\@ =" contained containedin =rubyAliasDeclaration,rubyAliasDeclaration2
336339syn match rubyMethodName " \% ([[:space:].]\| ^\)\@ 1<=\% (\[\] =\=\|\*\*\| [-+!~]@\=\| [*/%|&^~]\| <<\| >>\| [<>]=\=\| <=>\| ===\| [=!]=\| [=!]\~\| !\| `\)\% ([[:space:];#(]\| $\)\@ =" contained containedin =rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration
337340
338- syn cluster rubyDeclaration contains =rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyMethodName,rubyBlockParameter
341+ syn cluster rubyDeclaration contains =rubyAliasDeclaration,rubyAliasDeclaration2,rubyMethodDeclaration,rubyModuleDeclaration,rubyClassDeclaration,rubyMethodName
339342
340343" Keywords {{{1
341344" Note: the following keywords have already been defined:
@@ -459,7 +462,7 @@ endif
459462syn match rubyDefinedOperator " \< defined?" display
460463
461464" More Symbols {{{1
462- syn match rubySymbol " \% ([{(,]\_ s*\)\@ <=\% (\h\| [^\x 00-\x 7F]\)\% (\w\| [^\x 00-\x 7F]\) *[?!]\= ::\@ !" he =e - 1
465+ syn match rubySymbol " \% ([{(| ,]\_ s*\)\@ <=\% (\h\| [^\x 00-\x 7F]\)\% (\w\| [^\x 00-\x 7F]\) *[?!]\= ::\@ !" he =e - 1
463466syn match rubySymbol " []})\" ':]\@ 1<!\<\% (\h\| [^\x 00-\x 7F]\)\% (\w\| [^\x 00-\x 7F]\) *[!?]\= :[[:space:],]\@ =" he =e - 1
464467
465468" __END__ Directive {{{1
0 commit comments