From fb1c662ccb6b4665828471a336749605416c57c4 Mon Sep 17 00:00:00 2001 From: Amadeus Demarzi Date: Mon, 20 Jun 2016 10:56:28 -0700 Subject: [PATCH 1/3] Support destructuring values following assignment --- syntax/javascript.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 54c72096..ed94846c 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -180,9 +180,9 @@ syntax match jsDestructuringPropertyValue contained /\<[0-9a-zA-Z_$]*\>/ syntax match jsDestructuringProperty contained /\<[0-9a-zA-Z_$]*\>\(\s*=\)\@=/ skipwhite skipempty nextgroup=jsDestructuringValue syntax match jsDestructuringAssignment contained /\<[0-9a-zA-Z_$]*\>\(\s*:\)\@=/ skipwhite skipempty nextgroup=jsDestructuringValueAssignment syntax region jsDestructuringValue contained start=/=/ end=/[,}\]]\@=/ contains=@jsExpression extend -syntax region jsDestructuringValueAssignment contained start=/:/ end=/[,}]\@=/ contains=jsDestructuringPropertyValue,jsDestructuringBlock,jsNoise,jsDestructuringNoise extend +syntax region jsDestructuringValueAssignment contained start=/:/ end=/[,}=]\@=/ contains=jsDestructuringPropertyValue,jsDestructuringBlock,jsNoise,jsDestructuringNoise skipwhite skipempty nextgroup=jsDestructuringValue extend syntax match jsDestructuringNoise contained /[,\[\]]/ -syntax region jsDestructuringPropertyComputed contained matchgroup=jsBrackets start=/\[/ end=/]/ contains=@jsExpresslon skipwhite skipempty nextgroup=jsDestructuringValue,jsDestructuringNoise extend fold +syntax region jsDestructuringPropertyComputed contained matchgroup=jsBrackets start=/\[/ end=/]/ contains=@jsExpression skipwhite skipempty nextgroup=jsDestructuringValue,jsDestructuringNoise extend fold " Comments syntax keyword jsCommentTodo contained TODO FIXME XXX TBD From 8a972d317965d2f1364d155c5b53b67dfccea099 Mon Sep 17 00:00:00 2001 From: Amadeus Demarzi Date: Mon, 20 Jun 2016 10:56:38 -0700 Subject: [PATCH 2/3] Whitespace --- syntax/javascript.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/javascript.vim b/syntax/javascript.vim index ed94846c..d8fb2067 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -45,7 +45,7 @@ syntax match jsModuleAsterisk contained /*/ syntax keyword jsModuleDefault contained default skipwhite kipempty nextgroup=@jsExpression syntax region jsImportContainer start=/\ / end="\%(;\|$\)" contains=jsModuleKeywords,jsModuleOperators,jsComment,jsString,jsTemplateString,jsNoise,jsModuleGroup,jsModuleAsterisk syntax region jsExportContainer start=/\ / end="\%(;\|$\)" contains=jsModuleKeywords,jsModuleOperators,jsStorageClass,jsModuleDefault,@jsExpression -syntax region jsExportBlock contained matchgroup=jsBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise +syntax region jsExportBlock contained matchgroup=jsBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise " Strings, Templates, Numbers syntax region jsString start=+"+ skip=+\\\("\|$\)+ end=+"\|$+ contains=jsSpecial,@Spell extend From 5b4233850328eba5f866726e0b0893a6d36cef11 Mon Sep 17 00:00:00 2001 From: Amadeus Demarzi Date: Mon, 20 Jun 2016 13:52:00 -0700 Subject: [PATCH 3/3] Fixes for Flow on Classes --- extras/flow.vim | 3 +++ syntax/javascript.vim | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/extras/flow.vim b/extras/flow.vim index 7d981a80..6ae9b901 100644 --- a/extras/flow.vim +++ b/extras/flow.vim @@ -12,6 +12,7 @@ syntax match jsFlowNoise contained /[:;,<>]/ syntax cluster jsFlowCluster contains=jsFlowType,jsFlowArray,jsFlowObject,jsFlowNoise syntax keyword jsFlowStorageClass contained const var let syntax region jsFlowParenRegion contained start=/:\s*(/ end=/)\%(\s*:\)\@=/ oneline contains=@jsFlowCluster skipwhite skipempty nextgroup=jsObjectValue +syntax region jsFlowClass contained matchgroup=jsFlowNoise start=// oneline contains=@jsFlowCluster skipwhite skipempty nextgroup=jsClassBlock if version >= 508 || !exists("did_javascript_syn_inits") if version < 508 @@ -26,6 +27,8 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink jsFlowDeclareBlock PreProc HiLink jsFlowObject PreProc HiLink jsFlowParenRegion PreProc + HiLink jsFlowClass PreProc + HiLink jsFlowClassProperty jsClassProperty HiLink jsFlowType Type HiLink jsFlowDeclareKeyword Type HiLink jsFlowNoise Noise diff --git a/syntax/javascript.vim b/syntax/javascript.vim index d8fb2067..8486cce0 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -165,7 +165,7 @@ exe 'syntax match jsArrowFunction /=>/ skipwhite skipempty nextgroup=jsFunc syntax keyword jsClassKeywords contained extends class syntax match jsClassNoise contained /\./ syntax match jsClassMethodDefinitions contained /\%(get\|set\|static\)\%( \k\+\)\@=/ skipwhite skipempty nextgroup=jsFuncName,jsClassProperty -syntax match jsClassDefinition /\\%( [a-zA-Z_$][0-9a-zA-Z_$ \n.]*\)*/ contains=jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup=jsClassBlock +syntax match jsClassDefinition /\\%( [a-zA-Z_$][0-9a-zA-Z_$ \n.]*\)*/ contains=jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup=jsClassBlock,jsFlowClass syntax match jsDecorator contained "@" nextgroup=jsDecoratorFunction syntax match jsDecoratorFunction contained "[a-zA-Z_][a-zA-Z0-9_.]*" syntax match jsClassProperty contained /\<[0-9a-zA-Z_$]*\>\(\s*=\)\@=/ skipwhite skipempty nextgroup=jsClassValue