Skip to content

Commit b18c6b8

Browse files
committed
Basic improvement to jsClassDefinition
This improves things a bit to ensure that extends keyword can accept a jsExpression. I think this should work as everywhere as expected... Probably worth testing though.
1 parent f4245c4 commit b18c6b8

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

syntax/javascript.vim

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,11 @@ exe 'syntax match jsFunction /\<function\>/ skipwhite skipempty nextgroup=jsGene
175175
exe 'syntax match jsArrowFunction /=>/ skipwhite skipempty nextgroup=jsFuncBlock,jsCommentFunction '.(exists('g:javascript_conceal_arrow_function') ? 'conceal cchar='.g:javascript_conceal_arrow_function : '')
176176

177177
" Classes
178-
syntax keyword jsClassKeywords contained extends class
178+
syntax keyword jsClassKeyword contained class
179+
syntax keyword jsExtendsKeyword contained extends skipwhite skipempty nextgroup=@jsExpression
179180
syntax match jsClassNoise contained /\./
180181
syntax match jsClassMethodType contained /\%(get\|set\|static\|async\)\%( \k\+\)\@=/ skipwhite skipempty nextgroup=jsFuncName,jsClassProperty
181-
syntax match jsClassDefinition /\<class\>\%( [a-zA-Z_$][0-9a-zA-Z_$ \n.]*\)*/ contains=jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup=jsCommentClass,jsClassBlock,jsFlowClassGroup
182+
syntax region jsClassDefinition start=/\<class\>/ end=/\(\<extends\>\s\+\)\@<!{\@=/ contains=jsClassKeyword,jsExtendsKeyword,jsClassNoise,@jsExpression skipwhite skipempty nextgroup=jsCommentClass,jsClassBlock,jsFlowClassGroup
182183
syntax match jsClassProperty contained /\<[0-9a-zA-Z_$]*\>\(\s*=\)\@=/ skipwhite skipempty nextgroup=jsClassValue
183184
syntax region jsClassValue contained start=/=/ end=/\%(;\|}\|\n\)\@=/ contains=@jsExpression
184185
syntax region jsClassPropertyComputed contained matchgroup=jsBrackets start=/\[/ end=/]/ contains=@jsExpression skipwhite skipempty nextgroup=jsFuncArgs,jsClassValue extend
@@ -290,7 +291,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
290291
HiLink jsOperator Operator
291292
HiLink jsOf Operator
292293
HiLink jsStorageClass StorageClass
293-
HiLink jsClassKeywords Keyword
294+
HiLink jsClassKeyword Keyword
295+
HiLink jsExtendsKeyword Keyword
294296
HiLink jsThis Special
295297
HiLink jsSuper Constant
296298
HiLink jsNan Number

0 commit comments

Comments
 (0)