@@ -32,7 +32,6 @@ syntax match jsParensError /[)}\]]/
3232syntax keyword jsStorageClass const var let skipwhite skipempty nextgroup =jsDestructuringBlock,jsDestructuringArray
3333syntax keyword jsOperator delete instanceof typeof void new in of
3434syntax match jsOperator / [\!\|\&\+\-\<\>\=\%\/\*\~\^ ]\{ 1}/
35- syntax match jsSpreadOperator / \.\.\. / skipwhite skipempty nextgroup =@jsExpression
3635syntax keyword jsBooleanTrue true
3736syntax keyword jsBooleanFalse false
3837
@@ -129,29 +128,29 @@ syntax keyword jsDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECT
129128syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
130129
131130" " Code blocks
132- syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsExpression extend fold
131+ syntax region jsBracket matchgroup =jsBrackets start =/ \[ / end =/ \] / contains =@jsExpression extend fold
133132syntax region jsParen matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll extend fold
134133syntax region jsParenIfElse contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
135134syntax region jsParenRepeat contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
136135syntax region jsParenSwitch contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
137136syntax region jsParenCatch contained matchgroup =jsParens start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsTryCatchBlock extend fold
138- syntax region jsFuncArgs contained matchgroup =jsFuncParens start =' ( ' end =' ) ' contains =jsFuncArgCommas,jsFuncArgRest, jsComment,jsFuncArgExpression,jsDestructuringBlock skipwhite skipempty nextgroup =jsFuncBlock extend fold
137+ syntax region jsFuncArgs contained matchgroup =jsFuncParens start =/ ( / end =/ ) / contains =jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression skipwhite skipempty nextgroup =jsFuncBlock extend fold
139138syntax region jsClassBlock contained matchgroup =jsClassBraces start =/ {/ end =/ }/ contains =jsClassFuncName,jsClassMethodDefinitions,jsOperator,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise extend fold
140139syntax region jsFuncBlock contained matchgroup =jsFuncBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
141140syntax region jsBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
142141syntax region jsTryCatchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll skipwhite skipempty nextgroup =jsCatch,jsFinally extend fold
143142syntax region jsSwitchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel extend fold
144- syntax region jsDestructuringBlock contained matchgroup =jsDestructuringBraces start =/ {/ end =/ }/ contains =jsDestructuringProperty,jsDestructuringAssignment,jsDestructuringNoise,jsDestructuringPropertyComputed extend fold
145- syntax region jsDestructuringArray contained matchgroup =jsDestructuringBraces start =/ \[ / end =/ \] / contains =jsDestructuringPropertyValue,jsNoise,jsDestructuringProperty extend fold
146- syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectGetSet,jsGenerator,jsComment,jsSpreadOperator, jsObjectStringKey extend fold
143+ syntax region jsDestructuringBlock contained matchgroup =jsDestructuringBraces start =/ {/ end =/ }/ contains =jsDestructuringProperty,jsDestructuringAssignment,jsDestructuringNoise,jsDestructuringPropertyComputed,jsSpreadExpression extend fold
144+ syntax region jsDestructuringArray contained matchgroup =jsDestructuringBraces start =/ \[ / end =/ \] / contains =jsDestructuringPropertyValue,jsNoise,jsDestructuringProperty,jsSpreadExpression extend fold
145+ syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectGetSet,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression extend fold
147146syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
147+ syntax region jsSpreadExpression contained matchgroup =jsSpreadOperator start =/ \.\.\. / end =/ [,}\] ]\@ =/ contains =@jsExpression
148+ syntax region jsRestExpression contained matchgroup =jsRestOperator start =/ \.\.\. / end =/ [,)]\@ =/
148149
149150syntax match jsGenerator contained / \* / skipwhite skipempty nextgroup =jsFuncName,jsFuncArgs
150151syntax match jsFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\> / skipwhite skipempty nextgroup =jsFuncArgs
151152syntax region jsFuncArgExpression contained matchgroup =jsFuncArgOperator start =/ =/ end =/ [,)]\@ =/ contains =@jsExpression extend
152153syntax match jsFuncArgCommas contained ' ,'
153- syntax match jsFuncArgRest contained / \% (\.\.\. [a-zA-Z_$][0-9a-zA-Z_$]*\) )/ contains =jsFuncArgRestDots
154- syntax match jsFuncArgRestDots contained / \.\.\. /
155154syntax keyword jsArguments contained arguments
156155
157156" Matches a single keyword argument with no parens
@@ -218,7 +217,7 @@ if !exists("javascript_ignore_javaScriptdoc")
218217 syntax region jsDocSeeTag contained matchgroup =jsDocSeeTag start =" {" end =" }" contains =jsDocTags
219218endif " " JSDoc end
220219
221- syntax cluster jsExpression contains =jsBracket,jsParen,jsObject,jsBlock,jsTernaryIf,jsTaggedTemplate,jsTemplateString,jsString,jsRegexpString,jsNumber,jsFloat,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsFuncCall,jsUndefined,jsNan,jsPrototype,jsBuiltins,jsNoise,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs,jsParensError,jsComment,jsArguments,jsThis,jsSuper,jsSpreadOperator
220+ syntax cluster jsExpression contains =jsBracket,jsParen,jsObject,jsBlock,jsTernaryIf,jsTaggedTemplate,jsTemplateString,jsString,jsRegexpString,jsNumber,jsFloat,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsFuncCall,jsUndefined,jsNan,jsPrototype,jsBuiltins,jsNoise,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs,jsParensError,jsComment,jsArguments,jsThis,jsSuper
222221syntax cluster jsAll contains =@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry,jsAsyncKeyword
223222
224223" Define the default highlighting.
@@ -231,7 +230,6 @@ if version >= 508 || !exists("did_javascript_syn_inits")
231230 else
232231 command -nargs =+ HiLink hi def link <args>
233232 endif
234- HiLink jsFuncArgRest Special
235233 HiLink jsComment Comment
236234 HiLink jsEnvComment PreProc
237235 HiLink jsCommentTodo Todo
@@ -315,11 +313,12 @@ if version >= 508 || !exists("did_javascript_syn_inits")
315313 HiLink jsModuleDefault Include
316314 HiLink jsDecorator Special
317315 HiLink jsDecoratorFunction Special
318- HiLink jsFuncArgRestDots Noise
319316 HiLink jsFuncArgOperator jsFuncArgs
320317 HiLink jsModuleAsterisk Noise
321318 HiLink jsClassProperty jsObjectKey
322319 HiLink jsSpreadOperator Operator
320+ HiLink jsRestOperator Operator
321+ HiLink jsRestExpression jsFuncArgs
323322
324323 HiLink jsDestructuringBraces Noise
325324 HiLink jsDestructuringProperty jsFuncArgs
0 commit comments