@@ -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,11 @@ 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 match jsClassNoise / \. / contained
228+ syntax keyword jsClassMethodDefinitions get set static contained nextgroup =jsFuncName skipwhite skipempty
229+ syntax match jsClassDefinition / class [a-zA-Z_$][0-9a-zA-Z_$ \n .]*/ contains =jsClassKeywords,jsClassNoise nextgroup =jsClassBlock skipwhite skipempty
230+
226231" Define the default highlighting.
227232" For version 5.7 and earlier: only when not done already
228233" For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -282,7 +287,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
282287 HiLink jsOperator Operator
283288 HiLink jsOf Operator
284289 HiLink jsStorageClass StorageClass
285- HiLink jsClass Structure
290+ HiLink jsClassKeywords Structure
286291 HiLink jsThis Special
287292 HiLink jsStatic Special
288293 HiLink jsSuper Special
@@ -299,6 +304,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
299304 HiLink jsBraces Noise
300305 HiLink jsFuncBraces Noise
301306 HiLink jsFuncParens Noise
307+ HiLink jsClassBraces Noise
308+ HiLink jsClassNoise Noise
302309 HiLink jsSpecial Special
303310 HiLink jsTemplateVar Special
304311 HiLink jsGlobalObjects Special
@@ -320,6 +327,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
320327
321328 HiLink jsCssStyles Label
322329
330+ HiLink jsClassMethodDefinitions Type
331+
323332 delcommand HiLink
324333endif
325334
0 commit comments