@@ -42,7 +42,7 @@ syntax keyword jsArgsObj arguments
4242
4343syntax region jsImportContainer start =" ^\s\? import \? " end =" ;\| $" contains =jsModules,jsModuleWords,jsLineComment,jsComment,jsStringS,jsStringD,jsTemplateString,jsNoise,jsBlock
4444
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+ 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,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsAssignmentExpr,jsArgsObj,jsBlock,jsClassDefinition
4646
4747" " JavaScript comments
4848syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
@@ -131,7 +131,6 @@ syntax keyword jsConditional if else switch
131131syntax keyword jsRepeat do while for
132132syntax keyword jsLabel case default
133133syntax keyword jsKeyword yield
134- syntax keyword jsClass extends class
135134syntax keyword jsException try catch throw finally
136135syntax keyword jsAsyncKeyword async await
137136
@@ -193,12 +192,13 @@ endif "DOM/HTML/CSS
193192" " end DOM/HTML/CSS specified things
194193
195194" " Code blocks
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
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
197196syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
198197syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
199198syntax region jsParen matchgroup =jsParens start =" (" end =" )" contains =@jsAll,jsOf,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
200- syntax region jsBlock matchgroup =jsBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,jsObjectKey,@htmlPreproc fold
201- syntax region jsFuncBlock matchgroup =jsFuncBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,@htmlPreproc contained fold
199+ syntax region jsBlock matchgroup =jsBraces start =" {" end =" }" contains =@jsAll,jsParensErrA,jsParensErrB,jsParen,jsBracket,jsBlock,jsObjectKey,@htmlPreproc,jsClassDefinition fold
200+ 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
202202syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =+ ?+ end =+ :+ contains =@jsExpression,jsTernaryIf
203203
204204" " catch errors caused by wrong parenthesis
@@ -223,6 +223,10 @@ syntax match jsFuncArgRest contained /\%(\.\.\.[a-zA-Z_$][0-9a-zA-Z_$]*\))/
223223
224224exe ' syntax match jsArrowFunction /=>/ ' .(exists (' g:javascript_conceal_arrow_function' ) ? ' conceal cchar=' .g: javascript_conceal_arrow_function : ' ' )
225225
226+ syntax keyword jsClassKeywords extends class contained
227+ syntax keyword jsClassMethodDefinitions get set static contained nextgroup =jsFuncName skipwhite skipempty
228+ syntax match jsClassDefinition / class [a-zA-Z_$][0-9a-zA-Z_$ \n ]*/ contains =jsClassKeywords nextgroup =jsClassBlock skipwhite skipempty
229+
226230" Define the default highlighting.
227231" For version 5.7 and earlier: only when not done already
228232" For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -282,7 +286,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
282286 HiLink jsOperator Operator
283287 HiLink jsOf Operator
284288 HiLink jsStorageClass StorageClass
285- HiLink jsClass Structure
289+ HiLink jsClassKeywords Structure
286290 HiLink jsThis Special
287291 HiLink jsStatic Special
288292 HiLink jsSuper Special
@@ -299,6 +303,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
299303 HiLink jsBraces Noise
300304 HiLink jsFuncBraces Noise
301305 HiLink jsFuncParens Noise
306+ HiLink jsClassBraces Noise
302307 HiLink jsSpecial Special
303308 HiLink jsTemplateVar Special
304309 HiLink jsGlobalObjects Special
@@ -320,6 +325,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
320325
321326 HiLink jsCssStyles Label
322327
328+ HiLink jsClassMethodDefinitions Type
329+
323330 delcommand HiLink
324331endif
325332
0 commit comments