@@ -46,11 +46,11 @@ syntax region jsExportContainer start="^\s\?export \?" end="$" contains=jsM
4646
4747" " JavaScript comments
4848syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
49- syntax region jsLineComment start =+ \/\/ + end =+ $+ keepend contains =jsCommentTodo,@Spell
49+ syntax region jsLineComment start =+ \/\/ + end =+ $+ keepend contains =jsCommentTodo,@Spell extend
5050syntax region jsEnvComment start =" \% ^#!" end =" $" display
5151syntax region jsLineComment start =+ ^\s *\/\/ + skip =+ \n\s *\/\/ + end =+ $+ keepend contains =jsCommentTodo,@Spell fold
5252syntax region jsCvsTag start =" \$\c id:" end =" \$ " oneline contained
53- syntax region jsComment start =" /\* " end =" \* /" contains =jsCommentTodo,jsCvsTag,@Spell fold
53+ syntax region jsComment start =" /\* " end =" \* /" contains =jsCommentTodo,jsCvsTag,@Spell fold extend
5454
5555" " JSDoc / JSDoc Toolkit
5656if ! exists (" javascript_ignore_javaScriptdoc" )
@@ -196,9 +196,9 @@ syntax cluster jsExpression contains=jsComment,jsLineComment,jsBlockComment,jsTa
196196syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
197197syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
198198syntax region jsParen matchgroup =jsParens start =" (" end =" )" contains =@jsAll,jsOf,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
199- syntax region jsBlock matchgroup =jsBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,jsObjectKey,@htmlPreproc,jsClassDefinition fold
200199syntax region jsClassBlock matchgroup =jsClassBraces start =" {" end =" }" contains =jsFuncName,jsClassMethodDefinitions contained fold
201200syntax region jsFuncBlock matchgroup =jsFuncBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,@htmlPreproc,jsClassDefinition fold
201+ syntax region jsBlock matchgroup =jsBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,jsObjectKey,@htmlPreproc,jsClassDefinition fold
202202syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =+ ?+ end =+ :+ contains =@jsExpression,jsTernaryIf
203203
204204" " catch errors caused by wrong parenthesis
@@ -218,15 +218,16 @@ exe 'syntax match jsArrowFunction /=>/ skipwhite nextgroup=jsFuncBlock contains=
218218
219219syntax match jsGenerator contained ' \* ' nextgroup =jsFuncName,jsFuncArgs skipwhite
220220syntax match jsFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup =jsFuncArgs skipwhite
221- syntax region jsFuncArgs contained matchgroup =jsFuncParens start =' (' end =' )' contains =jsFuncArgCommas,jsFuncArgRest,jsAssignmentExpr, jsComment,jsLineComment nextgroup =jsFuncBlock keepend skipwhite skipempty
221+ syntax region jsFuncArgs contained matchgroup =jsFuncParens start =' (' end =' )' contains =jsFuncArgCommas,jsFuncArgRest,jsComment,jsLineComment,jsStringS,jsStringD,jsNumber,jsFuncArgDestructuring nextgroup =jsFuncBlock keepend skipwhite skipempty
222222syntax match jsFuncArgCommas contained ' ,'
223223syntax match jsFuncArgRest contained / \% (\.\.\. [a-zA-Z_$][0-9a-zA-Z_$]*\) )/ contains =jsFuncArgRestDots
224224syntax match jsFuncArgRestDots contained / \.\.\. /
225+ syntax match jsFuncArgDestructuring contained / \( {\| }\| =\| :\| (\| )\) / extend
225226
226227" Matches a single keyword argument with no parens
227- syntax match jsArrowFuncArgs / \(\k\)\+\s\+\ ( =>\)\@ =/ skipwhite contains =jsFuncArgs extend
228+ syntax match jsArrowFuncArgs / \(\k\)\+\s * \ ( =>\)\@ =/ skipwhite contains =jsFuncArgs nextgroup = jsArrowFunction
228229" Matches a series of arguments surrounded in parens
229- syntax match jsArrowFuncArgs / (\(\k\| , \|\s\|\n\|\ .\) *)\s\+\ ( =>\)\@ =/ skipwhite contains =jsFuncArgs extend
230+ syntax match jsArrowFuncArgs / (\% ( .\) *)\s * \ ( =>\)\@ =/ skipempty skipwhite contains =jsFuncArgs nextgroup = jsArrowFunction
230231
231232syntax keyword jsClassKeywords extends class contained
232233syntax match jsClassNoise / \. / contained
@@ -323,6 +324,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
323324 HiLink jsModuleWords Include
324325 HiLink jsDecorator Special
325326 HiLink jsFuncArgRestDots Noise
327+ HiLink jsFuncArgDestructuring Noise
326328
327329 HiLink jsDomErrNo Constant
328330 HiLink jsDomNodeConsts Constant
0 commit comments