@@ -38,10 +38,11 @@ syntax keyword jsBooleanFalse false
38
38
syntax keyword jsModules import export contained
39
39
syntax keyword jsModuleWords default from as contained
40
40
syntax keyword jsOf of contained
41
+ syntax keyword jsArgsObj arguments
41
42
42
- syntax region jsImportContainer start =" ^\s\? import \? " end =" $" contains =jsModules,jsModuleWords,jsComment,jsStringS,jsStringD,jsTemplateString
43
+ syntax region jsImportContainer start =" ^\s\? import \? " end =" ; \| $" contains =jsModules,jsModuleWords,jsLineComment, jsComment,jsStringS,jsStringD,jsTemplateString,jsNoise,jsBlock
43
44
44
- syntax region jsExportContainer start =" ^\s\? export \? " end =" $" contains =jsModules,jsModuleWords,jsComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsClass,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsAssignmentExpr
45
+ syntax region jsExportContainer start =" ^\s\? export \? " end =" $" contains =jsModules,jsModuleWords,jsComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsClass,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsAssignmentExpr,jsArgsObj,jsBlock
45
46
46
47
" " JavaScript comments
47
48
syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
@@ -64,7 +65,7 @@ if !exists("javascript_ignore_javaScriptdoc")
64
65
" tags containing a param
65
66
syntax match jsDocTags contained " @\( alias\| api\| augments\| borrows\| class\| constructs\| default\| defaultvalue\| emits\| exception\| exports\| extends\| file\| fires\| kind\| listens\| member\| member[oO]f\| mixes\| module\| name\| namespace\| requires\| template\| throws\| var\| variation\| version\)\> " nextgroup =jsDocParam skipwhite
66
67
" tags containing type and param
67
- syntax match jsDocTags contained " @\( arg\| argument\| param\| property\)\> " nextgroup =jsDocType skipwhite
68
+ syntax match jsDocTags contained " @\( arg\| argument\| param\| property\| prop \ )\>" nextgroup =jsDocType skipwhite
68
69
" tags containing type but no param
69
70
syntax match jsDocTags contained " @\( callback\| define\| enum\| external\| implements\| this\| type\| typedef\| return\| returns\)\> " nextgroup =jsDocTypeNoParam skipwhite
70
71
" tags containing references
@@ -91,7 +92,7 @@ syntax match jsTemplateVar "\${.\{-}}" contained
91
92
syntax region jsStringD start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@htmlPreproc,@Spell
92
93
syntax region jsStringS start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@htmlPreproc,@Spell
93
94
syntax region jsTemplateString start =+ `+ skip =+ \\\( `\| $\) + end =+ `+ contains =jsTemplateVar,jsSpecial,@htmlPreproc
94
- syntax region jsTaggedTemplate start =/ \k\+\(\(\n\|\s\)\+\)\? `/ end =+ `\| $ + contains =jsTemplateString
95
+ syntax region jsTaggedTemplate start =/ \k\+\(\(\n\|\s\)\+\)\? `/ end =+ `+ contains =jsTemplateString keepend
95
96
syntax region jsRegexpCharClass start =+ \[ + skip =+ \\ .+ end =+ \] + contained
96
97
syntax match jsRegexpBoundary " \v %(\< @![\^ $]|\\ [bB])" contained
97
98
syntax match jsRegexpBackRef " \v\\ [1-9][0-9]*" contained
@@ -106,10 +107,12 @@ syntax keyword jsNumber Infinity
106
107
syntax match jsFloat / \< -\=\% (\d\+\.\d\+\|\d\+\.\|\.\d\+\)\% ([eE][+-]\=\d\+\)\=\> /
107
108
syntax match jsObjectKey / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\)\@ =/ contains =jsFunctionKey contained
108
109
syntax match jsFunctionKey / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\s *function\s *\)\@ =/ contained
110
+ syntax match jsDecorator " @" display contains =jsDecoratorFunction nextgroup =jsDecoratorFunction skipwhite
111
+ syntax match jsDecoratorFunction " [a-zA-Z_][a-zA-Z0-9_.]*" display contained nextgroup =jsFunc skipwhite
109
112
110
- syntax match jsAssignmentExpr / \v %([a-zA-Z_$]\k *\. )*[a-zA-Z_$]\k *\s *\= / contains =jsFuncAssignExpr,jsAssignExpIdent,jsPrototype,jsOperator,jsThis,jsNoise
113
+ syntax match jsAssignmentExpr / \v %([a-zA-Z_$]\k *\. )*[a-zA-Z_$]\k *\s *\=\( > \)\@ ! / contains =jsFuncAssignExpr,jsAssignExpIdent,jsPrototype,jsOperator,jsThis,jsNoise,jsArgsObj
111
114
syntax match jsAssignExpIdent / \v [a-zA-Z_$]\k *\z e%(\s *\= )/ contained
112
- 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
115
+ 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,jsArgsObj contained
113
116
syntax match jsFuncAssignObjChain / \v %([a-zA-Z_$]\k *\. )+/ contains =jsPrototype,jsNoise contained
114
117
syntax match jsFuncAssignIdent / \v [a-zA-Z_$]\k *\z e%(\s *\= )/ contained
115
118
@@ -130,6 +133,7 @@ syntax keyword jsLabel case default
130
133
syntax keyword jsKeyword yield
131
134
syntax keyword jsClass extends class
132
135
syntax keyword jsException try catch throw finally
136
+ syntax keyword jsAsyncKeyword async await
133
137
134
138
syntax keyword jsGlobalObjects Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set RegExp String Proxy Promise ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray Intl JSON Math console document window
135
139
syntax match jsGlobalObjects / \% (Intl\.\)\@ <=\( Collator\| DateTimeFormat\| NumberFormat\) /
@@ -189,7 +193,7 @@ endif "DOM/HTML/CSS
189
193
" " end DOM/HTML/CSS specified things
190
194
191
195
" " Code blocks
192
- 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,jsClass
196
+ 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,jsClass,jsArgsObj,jsDecorator,jsAsyncKeyword
193
197
syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
194
198
syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
195
199
syntax region jsParen matchgroup =jsParens start =" (" end =" )" contains =@jsAll,jsOf,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
@@ -216,7 +220,6 @@ syntax match jsFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*/ nextgroup
216
220
syntax region jsFuncArgs contained matchgroup =jsFuncParens start =' (' end =' )' contains =jsFuncArgCommas,jsFuncArgRest,jsAssignmentExpr nextgroup =jsFuncBlock keepend skipwhite skipempty
217
221
syntax match jsFuncArgCommas contained ' ,'
218
222
syntax match jsFuncArgRest contained / \% (\.\.\. [a-zA-Z_$][0-9a-zA-Z_$]*\) )/
219
- syntax keyword jsArgsObj arguments contained containedin =jsFuncBlock
220
223
221
224
syntax match jsArrowFunction / =>/
222
225
@@ -265,6 +268,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
265
268
HiLink jsStatement Statement
266
269
HiLink jsException Exception
267
270
HiLink jsKeyword Keyword
271
+ HiLink jsAsyncKeyword Keyword
268
272
HiLink jsArrowFunction Type
269
273
HiLink jsFunction Type
270
274
HiLink jsGenerator jsFunction
@@ -303,6 +307,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
303
307
HiLink jsBuiltins Special
304
308
HiLink jsModules Include
305
309
HiLink jsModuleWords Include
310
+ HiLink jsDecorator Special
306
311
307
312
HiLink jsDomErrNo Constant
308
313
HiLink jsDomNodeConsts Constant
0 commit comments