@@ -40,12 +40,12 @@ syntax keyword jsModuleKeywords contained import
4040syntax keyword jsModuleKeywords contained export skipwhite skipempty nextgroup =jsExportBlock,jsModuleDefault
4141syntax keyword jsModuleOperators contained from
4242syntax keyword jsModuleOperators contained as
43- syntax region jsModuleGroup contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise
43+ syntax region jsModuleGroup contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise,jsComment
4444syntax match jsModuleAsterisk contained / */
4545syntax keyword jsModuleDefault contained default skipwhite kipempty nextgroup =@jsExpression
4646syntax region jsImportContainer start =/ \< import\> / end =" \% (;\| $\) " contains =jsModuleKeywords,jsModuleOperators,jsComment,jsString,jsTemplateString,jsNoise,jsModuleGroup,jsModuleAsterisk
4747syntax region jsExportContainer start =/ \< export\> / end =" \% (;\| $\) " contains =jsModuleKeywords,jsModuleOperators,jsStorageClass,jsModuleDefault,@jsExpression
48- syntax region jsExportBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise
48+ syntax region jsExportBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise,jsComment
4949
5050" Strings, Templates, Numbers
5151syntax region jsString start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell extend
@@ -81,7 +81,7 @@ syntax match jsObjectSeparator contained /,/
8181syntax region jsObjectValue contained start =/ :/ end =/ \% (,\| }\)\@ =/ contains =@jsExpression extend
8282syntax match jsObjectFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\> [\r\n\t ]*(\@ =/ skipwhite skipempty nextgroup =jsFuncArgs
8383syntax match jsFunctionKey contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\s *function\s *\)\@ =/
84- syntax match jsObjectGetSet contained / \% (get\| set\| static\)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsObjectFuncName
84+ syntax match jsObjectMethodType contained / \% (get\| set\| static\| async \)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsObjectFuncName
8585syntax region jsObjectStringKey contained start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell extend skipwhite skipempty nextgroup =jsFuncArgs,jsObjectValue
8686syntax region jsObjectStringKey contained start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@Spell extend skipwhite skipempty nextgroup =jsFuncArgs,jsObjectValue
8787
@@ -105,6 +105,7 @@ syntax keyword jsFinally contained finally skipwhite skipempty nextgro
105105syntax keyword jsCatch contained catch skipwhite skipempty nextgroup =jsParenCatch
106106syntax keyword jsException throw
107107syntax keyword jsAsyncKeyword async await
108+ syntax match jsSwitchColon contained / :/ skipwhite skipempty nextgroup =jsBlock
108109
109110" Keywords
110111syntax keyword jsGlobalObjects Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set RegExp String Proxy Promise Buffer ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray JSON Math console document window Intl Collator DateTimeFormat NumberFormat
@@ -135,14 +136,14 @@ syntax region jsParenRepeat contained matchgroup=jsParens s
135136syntax region jsParenSwitch contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
136137syntax region jsParenCatch contained matchgroup =jsParens start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsTryCatchBlock extend fold
137138syntax region jsFuncArgs contained matchgroup =jsFuncParens start =/ (/ end =/ )/ contains =jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression,jsFlow skipwhite skipempty nextgroup =jsFuncBlock,jsFlowReturn extend fold
138- syntax region jsClassBlock contained matchgroup =jsClassBraces start =/ {/ end =/ }/ contains =jsClassFuncName,jsClassMethodDefinitions ,jsOperator,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise,jsFlowClassProperty extend fold
139+ syntax region jsClassBlock contained matchgroup =jsClassBraces start =/ {/ end =/ }/ contains =jsClassFuncName,jsClassMethodType ,jsOperator,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise,jsFlowClassProperty extend fold
139140syntax region jsFuncBlock contained matchgroup =jsFuncBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
140141syntax region jsBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
141142syntax region jsTryCatchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll skipwhite skipempty nextgroup =jsCatch,jsFinally extend fold
142- syntax region jsSwitchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel extend fold
143+ syntax region jsSwitchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel,jsSwitchColon extend fold
143144syntax region jsDestructuringBlock contained matchgroup =jsDestructuringBraces start =/ {/ end =/ }/ contains =jsDestructuringProperty,jsDestructuringAssignment,jsDestructuringNoise,jsDestructuringPropertyComputed,jsSpreadExpression extend fold
144145syntax region jsDestructuringArray contained matchgroup =jsDestructuringBraces start =/ \[ / end =/ \] / contains =jsDestructuringPropertyValue,jsNoise,jsDestructuringProperty,jsSpreadExpression extend fold
145- syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectGetSet ,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression extend fold
146+ syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectMethodType ,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression extend fold
146147syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
147148syntax region jsSpreadExpression contained matchgroup =jsSpreadOperator start =/ \.\.\. / end =/ [,}\] ]\@ =/ contains =@jsExpression
148149syntax region jsRestExpression contained matchgroup =jsRestOperator start =/ \.\.\. / end =/ [,)]\@ =/
@@ -164,7 +165,7 @@ exe 'syntax match jsArrowFunction /=>/ skipwhite skipempty nextgroup=jsFunc
164165
165166syntax keyword jsClassKeywords contained extends class
166167syntax match jsClassNoise contained / \. /
167- syntax match jsClassMethodDefinitions contained / \% (get\| set\| static\)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsFuncName,jsClassProperty
168+ syntax match jsClassMethodType contained / \% (get\| set\| static\| async \)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsFuncName,jsClassProperty
168169syntax match jsClassDefinition / \< class\>\% ( [a-zA-Z_$][0-9a-zA-Z_$ \n .]*\) */ contains =jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup =jsClassBlock,jsFlowClass
169170syntax match jsDecorator contained " @" nextgroup =jsDecoratorFunction
170171syntax match jsDecoratorFunction contained " [a-zA-Z_][a-zA-Z0-9_.]*"
@@ -296,6 +297,9 @@ if version >= 508 || !exists("did_javascript_syn_inits")
296297 HiLink jsSpreadOperator Operator
297298 HiLink jsRestOperator Operator
298299 HiLink jsRestExpression jsFuncArgs
300+ HiLink jsSwitchColon Noise
301+ HiLink jsClassMethodType Type
302+ HiLink jsObjectMethodType Type
299303
300304 HiLink jsDestructuringBraces Noise
301305 HiLink jsDestructuringProperty jsFuncArgs
@@ -313,9 +317,6 @@ if version >= 508 || !exists("did_javascript_syn_inits")
313317
314318 HiLink jsCssStyles Label
315319
316- HiLink jsClassMethodDefinitions Type
317- HiLink jsObjectGetSet Type
318-
319320 delcommand HiLink
320321endif
321322
0 commit comments