From 81d91e2abdfabd187d44f710c652c1c379ec5f41 Mon Sep 17 00:00:00 2001 From: Brandon Mathis Date: Mon, 7 Jun 2021 15:29:21 -0400 Subject: [PATCH 1/2] Highlight arrow functions that don't have their bodies wrapped by {} or () See Issue: https://github.com/pangloss/vim-javascript/issues/1231 --- syntax/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 76c575ee..cbfc7874 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -141,7 +141,7 @@ syntax region jsParenRepeat contained matchgroup=jsParensRepeat s syntax region jsParenSwitch contained matchgroup=jsParensSwitch start=/(/ end=/)/ contains=@jsAll skipwhite skipempty nextgroup=jsSwitchBlock extend fold syntax region jsParenCatch contained matchgroup=jsParensCatch start=/(/ end=/)/ skipwhite skipempty nextgroup=jsTryCatchBlock extend fold syntax region jsFuncArgs contained matchgroup=jsFuncParens start=/(/ end=/)/ contains=jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsDestructuringArray,jsRestExpression,jsFlowArgumentDef skipwhite skipempty nextgroup=jsCommentFunction,jsFuncBlock,jsFlowReturn extend fold -syntax region jsClassBlock contained matchgroup=jsClassBraces start=/{/ end=/}/ contains=jsClassFuncName,jsClassMethodType,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsAsyncKeyword,jsNoise extend fold +syntax region jsClassBlock contained matchgroup=jsClassBraces start=/{/ end=/}/ contains=@jsExpression,jsClassFuncName,jsClassMethodType,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsAsyncKeyword,jsNoise extend fold syntax region jsFuncBlock contained matchgroup=jsFuncBraces start=/{/ end=/}/ contains=@jsAll,jsBlock extend fold syntax region jsIfElseBlock contained matchgroup=jsIfElseBraces start=/{/ end=/}/ contains=@jsAll,jsBlock extend fold syntax region jsTryCatchBlock contained matchgroup=jsTryCatchBraces start=/{/ end=/}/ contains=@jsAll,jsBlock skipwhite skipempty nextgroup=jsCatch,jsFinally extend fold From 9d73c4a0d021990b412dce48c363ff09fd57ea2c Mon Sep 17 00:00:00 2001 From: Brandon Mathis Date: Mon, 7 Jun 2021 15:30:19 -0400 Subject: [PATCH 2/2] Dro the semi-colon from the jsClassProperty detection regex so that the last line of every function (usually ending with a ;) isn't highlighted as a jsClassProperty --- syntax/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index cbfc7874..069af4f0 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -184,7 +184,7 @@ syntax match jsClassNoise contained /\./ syntax match jsClassFuncName contained /\<\K\k*\ze\s*[(<]/ skipwhite skipempty nextgroup=jsFuncArgs,jsFlowClassFunctionGroup syntax match jsClassMethodType contained /\<\%([gs]et\|static\)\ze\s\+\K\k*/ skipwhite skipempty nextgroup=jsAsyncKeyword,jsClassFuncName,jsClassProperty syntax region jsClassDefinition start=/\/ end=/\(\\s\+\)\@