@@ -97,8 +97,14 @@ syntax region jsRegexpString start=+\(\(\(return\|case\)\s\+\)\@<=\|\(\([)\]
9797syntax match jsNumber / \< -\=\d\+ L\=\>\|\< 0[xX]\x\+\> /
9898syntax keyword jsNumber Infinity
9999syntax match jsFloat / \< -\=\% (\d\+\.\d\+\|\d\+\.\|\.\d\+\)\% ([eE][+-]\=\d\+\)\=\> /
100- syntax match jsObjectKey / \< [a-zA-Z_$][0-9a-zA-Z_$]*\(\s *:\)\@ =/ contains =jsFunctionKey contained
101- syntax match jsFunctionKey / \< [a-zA-Z_$][0-9a-zA-Z_$]*\(\s *:\s *function\s *\)\@ =/ contained
100+ syntax match jsObjectKey / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\)\@ =/ contains =jsFunctionKey contained
101+ syntax match jsFunctionKey / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\s *function\s *\)\@ =/ contained
102+
103+ syntax match jsAssignmentExpr / \v %([a-zA-Z_$]\k *\. )*[a-zA-Z_$]\k *\s *\= / contains =jsFuncAssignExpr,jsAssignExpIdent,jsPrototype,jsOperator,jsThis
104+ syntax match jsAssignExpIdent / \v [a-zA-Z_$]\k *\z e%(\s *\= )/ contained
105+ syntax match jsFuncAssignExpr / \v %(%([a-zA-Z_$]\k *\. )*[a-zA-Z_$]\k *\s *\=\s *){-1,}\z e%(function\s *\* ?\s *\( )/ contains =jsFuncAssignObjChain,jsFuncAssignIdent,jsFunction,jsPrototype,jsOperator,jsThis contained
106+ syntax match jsFuncAssignObjChain / \v %([a-zA-Z_$]\k *\. )+/ contains =jsPrototype,jsNoise contained
107+ syntax match jsFuncAssignIdent / \v [a-zA-Z_$]\k *\z e%(\s *\= )/ contained
102108
103109exe ' syntax keyword jsNull null ' .(exists (' g:javascript_conceal_null' ) ? ' conceal cchar=' .g: javascript_conceal_null : ' ' )
104110exe ' syntax keyword jsReturn return ' .(exists (' g:javascript_conceal_return' ) ? ' conceal cchar=' .g: javascript_conceal_return : ' ' )
@@ -174,7 +180,7 @@ endif "DOM/HTML/CSS
174180
175181
176182" " Code blocks
177- syntax cluster jsExpression contains =jsComment,jsLineComment,jsDocComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsCommonJS
183+ syntax cluster jsExpression contains =jsComment,jsLineComment,jsDocComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsCommonJS,jsAssignmentExpr
178184syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
179185syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
180186syntax region jsParen matchgroup =jsParens start =" (" end =" )" contains =@jsAll,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
0 commit comments