@@ -46,11 +46,11 @@ syntax region jsExportContainer start="^\s\?export \?" end="$" contains=jsM
46
46
47
47
" " JavaScript comments
48
48
syntax 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
50
50
syntax region jsEnvComment start =" \% ^#!" end =" $" display
51
51
syntax region jsLineComment start =+ ^\s *\/\/ + skip =+ \n\s *\/\/ + end =+ $+ keepend contains =jsCommentTodo,@Spell fold
52
52
syntax 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
54
54
55
55
" " JSDoc / JSDoc Toolkit
56
56
if ! exists (" javascript_ignore_javaScriptdoc" )
@@ -88,7 +88,7 @@ syntax case match
88
88
" " Syntax in the JavaScript code
89
89
syntax match jsFuncCall / \k\+\% (\s *(\)\@ =/
90
90
syntax match jsSpecial " \v\\ %(0|\\ x\x\{ 2\}\|\\ u\x\{ 4\}\|\c [A-Z]|.)" contained
91
- syntax region jsTemplateVar matchgroup =jsBraces start =+ ${+ end =+ }+ contained contains =@jsExpression
91
+ syntax region jsTemplateVar matchgroup =jsTemplateBraces start =+ ${+ end =+ }+ contained contains =@jsExpression
92
92
syntax region jsStringD start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@htmlPreproc,@Spell
93
93
syntax region jsStringS start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@htmlPreproc,@Spell
94
94
syntax region jsTemplateString start =+ `+ skip =+ \\\( `\| $\) + end =+ `+ contains =jsTemplateVar,jsSpecial,@htmlPreproc
@@ -192,13 +192,13 @@ endif "DOM/HTML/CSS
192
192
" " end DOM/HTML/CSS specified things
193
193
194
194
" " Code blocks
195
- syntax cluster jsExpression contains =jsComment,jsLineComment,jsBlockComment,jsTaggedTemplate,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsStatic,jsSuper,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,jsImportContainer,jsExportContainer,jsArgsObj,jsDecorator,jsAsyncKeyword,jsClassDefinition
195
+ syntax cluster jsExpression contains =jsComment,jsLineComment,jsBlockComment,jsTaggedTemplate,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsStatic,jsSuper,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,jsImportContainer,jsExportContainer,jsArgsObj,jsDecorator,jsAsyncKeyword,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs
196
196
syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
197
197
syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
198
198
syntax 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
200
199
syntax region jsClassBlock matchgroup =jsClassBraces start =" {" end =" }" contains =jsFuncName,jsClassMethodDefinitions contained fold
201
- syntax region jsFuncBlock matchgroup =jsFuncBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,@htmlPreproc,jsClassDefinition contained fold
200
+ syntax 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
202
202
syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =+ ?+ end =+ :+ contains =@jsExpression,jsTernaryIf
203
203
204
204
" " catch errors caused by wrong parenthesis
@@ -214,14 +214,20 @@ if main_syntax == "javascript"
214
214
endif
215
215
216
216
exe ' syntax match jsFunction /\<function\>/ nextgroup=jsGenerator,jsFuncName,jsFuncArgs skipwhite ' .(exists (' g:javascript_conceal_function' ) ? ' conceal cchar=' .g: javascript_conceal_function : ' ' )
217
+ exe ' syntax match jsArrowFunction /=>/ skipwhite nextgroup=jsFuncBlock contains=jsFuncBraces ' .(exists (' g:javascript_conceal_arrow_function' ) ? ' conceal cchar=' .g: javascript_conceal_arrow_function : ' ' )
217
218
218
- syntax match jsGenerator contained ' \* ' nextgroup =jsFuncName skipwhite
219
- syntax match jsFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup =jsFuncArgs skipwhite
220
- syntax region jsFuncArgs contained matchgroup =jsFuncParens start =' (' end =' )' contains =jsFuncArgCommas,jsFuncArgRest,jsAssignmentExpr,jsComment,jsLineComment nextgroup =jsFuncBlock keepend skipwhite skipempty
221
- syntax match jsFuncArgCommas contained ' ,'
222
- syntax match jsFuncArgRest contained / \% (\.\.\. [a-zA-Z_$][0-9a-zA-Z_$]*\) )/
219
+ syntax match jsGenerator contained ' \* ' nextgroup =jsFuncName,jsFuncArgs skipwhite
220
+ syntax 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,jsComment,jsLineComment,jsStringS,jsStringD,jsNumber,jsFuncArgDestructuring nextgroup =jsFuncBlock keepend skipwhite skipempty
222
+ syntax match jsFuncArgCommas contained ' ,'
223
+ syntax match jsFuncArgRest contained / \% (\.\.\. [a-zA-Z_$][0-9a-zA-Z_$]*\) )/ contains =jsFuncArgRestDots
224
+ syntax match jsFuncArgRestDots contained / \.\.\. /
225
+ syntax match jsFuncArgDestructuring contained / \( {\| }\| =\| :\| (\| )\) / extend
223
226
224
- exe ' syntax match jsArrowFunction /=>/ ' .(exists (' g:javascript_conceal_arrow_function' ) ? ' conceal cchar=' .g: javascript_conceal_arrow_function : ' ' )
227
+ " Matches a single keyword argument with no parens
228
+ syntax match jsArrowFuncArgs / \(\k\)\+\s *\( =>\)\@ =/ skipwhite contains =jsFuncArgs nextgroup =jsArrowFunction
229
+ " Matches a series of arguments surrounded in parens
230
+ syntax match jsArrowFuncArgs / (\% (.\) *)\s *\( =>\)\@ =/ skipempty skipwhite contains =jsFuncArgs nextgroup =jsArrowFunction
225
231
226
232
syntax keyword jsClassKeywords extends class contained
227
233
syntax match jsClassNoise / \. / contained
@@ -277,6 +283,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
277
283
HiLink jsArrowFunction Type
278
284
HiLink jsFunction Type
279
285
HiLink jsGenerator jsFunction
286
+ HiLink jsArrowFuncArgs jsFuncArgs
280
287
HiLink jsFuncName Function
281
288
HiLink jsArgsObj Special
282
289
HiLink jsError Error
@@ -308,13 +315,16 @@ if version >= 508 || !exists("did_javascript_syn_inits")
308
315
HiLink jsClassNoise Noise
309
316
HiLink jsSpecial Special
310
317
HiLink jsTemplateVar Special
318
+ HiLink jsTemplateBraces jsBraces
311
319
HiLink jsGlobalObjects Special
312
320
HiLink jsExceptions Special
313
321
HiLink jsFutureKeys Special
314
322
HiLink jsBuiltins Special
315
323
HiLink jsModules Include
316
324
HiLink jsModuleWords Include
317
325
HiLink jsDecorator Special
326
+ HiLink jsFuncArgRestDots Noise
327
+ HiLink jsFuncArgDestructuring Noise
318
328
319
329
HiLink jsDomErrNo Constant
320
330
HiLink jsDomNodeConsts Constant
0 commit comments