diff --git a/extras/flow.vim b/extras/flow.vim index b34d7101..e14f9a44 100644 --- a/extras/flow.vim +++ b/extras/flow.vim @@ -8,14 +8,17 @@ syntax match jsFlowNoise contained /[:;,<>]/ syntax keyword jsFlowType contained boolean number string null void any mixed JSON array Function object array bool class syntax keyword jsFlowTypeof contained typeof skipempty skipwhite nextgroup=jsFlowTypeCustom,jsFlowType syntax match jsFlowTypeCustom contained /[0-9a-zA-Z_.]*/ skipwhite skipempty nextgroup=jsFlowGeneric -syntax region jsFlowGeneric matchgroup=jsFlowNoise start=/\k\@<=/ contains=@jsFlowCluster containedin=@jsExpression,jsFlowDeclareBlock -syntax region jsFlowGeneric contained matchgroup=jsFlowNoise start=/(\@=/ oneline contains=@jsFlowCluster containedin=@jsExpression,jsFlowDeclareBlock -syntax region jsFlowObjectGeneric contained matchgroup=jsFlowNoise start=/\k\@<=/ contains=@jsFlowCluster nextgroup=jsFuncArgs +syntax region jsFlowGeneric matchgroup=jsFlowNoise start=/\k\@<=/ keepend extend contains=@jsFlowCluster containedin=jsFlowDeclareBlock +" syntax region jsFlowGeneric matchgroup=jsFlowNoise start=/\k\@<=/ keepend extend contains=@jsFlowCluster containedin=@jsExpression,jsFlowDeclareBlock +syntax region jsFlowFunctionGeneric contained matchgroup=jsFlowNoise start=/(\@=/ keepend extend oneline contains=@jsFlowCluster nextgroup=jsFuncArgs +" syntax region jsFlowFunctionGeneric contained matchgroup=jsFlowNoise start=// contains=@jsFlowCluster skipwhite skipempty nextgroup=jsFuncArgs +" syntax region jsFlowObjectGeneric contained matchgroup=jsFlowNoise start=/\k\@<=/ keepend extend contains=@jsFlowCluster nextgroup=jsFuncArgs syntax match jsFlowArrow contained /=>/ skipwhite skipempty nextgroup=jsFlowType,jsFlowTypeCustom,jsFlowParens syntax match jsFlowObjectKey contained /[0-9a-zA-Z_$?]*\(\s*:\)\@=/ contains=jsFunctionKey,jsFlowMaybe skipwhite skipempty nextgroup=jsObjectValue containedin=jsObject syntax match jsFlowOrOperator contained /|/ skipwhite skipempty nextgroup=@jsFlowCluster syntax keyword jsFlowImportType contained type typeof skipwhite skipempty nextgroup=jsModuleAsterisk,jsModuleKeyword,jsModuleGroup syntax match jsFlowWildcard contained /*/ +syntax region jsFlowString contained start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+ extend skipwhite skipempty nextgroup=jsFlowOrOperator syntax match jsFlowReturn contained /:\s*/ contains=jsFlowNoise skipwhite skipempty nextgroup=@jsFlowReturnCluster,jsFlowArrow,jsFlowReturnParens syntax region jsFlowReturnObject contained matchgroup=jsFlowNoise start=/{/ end=/}/ contains=@jsFlowCluster skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturnOrOp extend fold @@ -23,13 +26,13 @@ syntax region jsFlowReturnArray contained matchgroup=jsFlowNoise start=/\[/ syntax region jsFlowReturnParens contained matchgroup=jsFlowNoise start=/(/ end=/)/ contains=@jsFlowCluster skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturnOrOp,jsFlowReturnArrow fold syntax match jsFlowReturnArrow contained /=>/ skipwhite skipempty nextgroup=@jsFlowReturnCluster syntax match jsFlowReturnKeyword contained /\k\+/ contains=jsFlowType,jsFlowTypeCustom skipwhite skipempty nextgroup=jsFlowReturnGroup,jsFuncBlock,jsFlowReturnOrOp,jsFlowReturnArray -syntax match jsFlowReturnMaybe contained /?/ skipwhite skipempty nextgroup=jsFlowReturnKeyword,jsFlowReturnObject,jsFlowReturnParens +syntax match jsFlowReturnMaybe contained /?/ skipwhite skipempty nextgroup=@jsFlowReturnCluster,jsFlowReturnKeyword,jsFlowReturnObject,jsFlowReturnParens syntax region jsFlowReturnGroup contained matchgroup=jsFlowNoise start=// contains=@jsFlowCluster skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturnOrOp syntax match jsFlowReturnOrOp contained /\s*|\s*/ skipwhite skipempty nextgroup=@jsFlowReturnCluster syntax match jsFlowWildcardReturn contained /*/ skipwhite skipempty nextgroup=jsFuncBlock syntax keyword jsFlowTypeofReturn contained typeof skipempty skipwhite nextgroup=@jsFlowReturnCluster +syntax region jsFlowReturnString contained start=+\z(["']\)+ skip=+\\\%(\z1\|$\)+ end=+\z1+ end=+$+ extend skipwhite skipempty nextgroup=jsFuncBlock,jsFlowReturnOrOp -syntax region jsFlowFunctionGroup contained matchgroup=jsFlowNoise start=// contains=@jsFlowCluster skipwhite skipempty nextgroup=jsFuncArgs syntax region jsFlowClassGroup contained matchgroup=jsFlowNoise start=// contains=@jsFlowCluster skipwhite skipempty nextgroup=jsClassBlock syntax region jsFlowClassFunctionGroup contained matchgroup=jsFlowNoise start=// contains=@jsFlowCluster skipwhite skipempty nextgroup=jsFuncArgs syntax match jsFlowObjectFuncName contained /\<\K\k*<\@=/ skipwhite skipempty nextgroup=jsFlowObjectGeneric containedin=jsObject @@ -40,21 +43,24 @@ syntax match jsFlowTypeOperator contained /=/ containedin=jsFlowTypeValue syntax match jsFlowTypeOperator contained /=/ syntax keyword jsFlowTypeKeyword contained type -syntax keyword jsFlowDeclare declare skipwhite skipempty nextgroup=jsFlowTypeStatement,jsClassDefinition,jsStorageClass,jsFlowModule,jsFlowInterface +syntax keyword jsFlowDeclare declare skipwhite skipempty nextgroup=jsFlowTypeStatement,jsClassDefinition,jsStorageClass,jsFlowModule,jsFlowInterface,jsFlowExport +syntax keyword jsFlowInterface interface skipwhite skipempty nextgroup=jsFlowInterfaceName +syntax match jsFlowInterfaceName contained /\<[0-9a-zA-Z_$]*\>/ skipwhite skipempty nextgroup=jsClassBlock +syntax keyword jsFlowExport export skipwhite skipempty nextgroup=jsFlowTypeStatement,jsClassDefinition,jsStorageClass,jsFlowModule,jsFlowInterface,jsExportDefault syntax match jsFlowClassProperty contained /\<[0-9a-zA-Z_$]*\>:\@=/ skipwhite skipempty nextgroup=jsFlowClassDef containedin=jsClassBlock syntax region jsFlowClassDef contained start=/:/ end=/\%(\s*[,=;)\n]\)\@=/ contains=@jsFlowCluster skipwhite skipempty nextgroup=jsClassValue syntax region jsFlowModule contained start=/module/ end=/\%({\|:\)\@=/ skipempty skipwhite nextgroup=jsFlowDeclareBlock contains=jsString syntax region jsFlowInterface contained start=/interface/ end=/{\@=/ skipempty skipwhite nextgroup=jsFlowInterfaceBlock contains=@jsFlowCluster -syntax region jsFlowDeclareBlock contained matchgroup=jsFlowNoise start=/{/ end=/}/ contains=jsFlowDeclare,jsFlowNoise fold +syntax region jsFlowDeclareBlock contained matchgroup=jsFlowNoise start=/{/ end=/}/ contains=jsFlowDeclare,jsFlowNoise,jsComment fold syntax match jsFlowMaybe contained /?/ syntax region jsFlowInterfaceBlock contained matchgroup=jsFlowNoise start=/{/ end=/}/ contains=jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsFlowObjectFuncName,jsObjectMethodType,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression,jsFlowNoise,jsFlowParens,jsFlowGeneric keepend fold syntax region jsFlowParenAnnotation contained start=/:/ end=/[,=)]\@=/ containedin=jsParen contains=@jsFlowCluster -syntax cluster jsFlowReturnCluster contains=jsFlowNoise,jsFlowReturnObject,jsFlowReturnArray,jsFlowReturnKeyword,jsFlowReturnGroup,jsFlowReturnMaybe,jsFlowReturnOrOp,jsFlowWildcardReturn,jsFlowReturnArrow,jsFlowTypeofReturn -syntax cluster jsFlowCluster contains=jsFlowArray,jsFlowObject,jsFlowExactObject,jsFlowNoise,jsFlowTypeof,jsFlowType,jsFlowGeneric,jsFlowMaybe,jsFlowParens,jsFlowOrOperator,jsFlowWildcard +syntax cluster jsFlowReturnCluster contains=jsFlowNoise,jsFlowReturnObject,jsFlowReturnArray,jsFlowReturnKeyword,jsFlowReturnGroup,jsFlowReturnMaybe,jsFlowReturnOrOp,jsFlowWildcardReturn,jsFlowReturnArrow,jsFlowTypeofReturn,jsFlowGeneric,jsFlowReturnString +syntax cluster jsFlowCluster contains=jsFlowArray,jsFlowObject,jsFlowExactObject,jsFlowNoise,jsFlowTypeof,jsFlowType,jsFlowGeneric,jsFlowMaybe,jsFlowParens,jsFlowOrOperator,jsFlowWildcard,jsFlowString if version >= 508 || !exists("did_javascript_syn_inits") if version < 508 @@ -75,6 +81,9 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink jsFlowExactObject PreProc HiLink jsFlowParens PreProc HiLink jsFlowGeneric PreProc + HiLink jsFlowString PreProc + HiLink jsFlowReturnString PreProc + HiLink jsFlowFunctionGeneric jsFlowGeneric HiLink jsFlowObjectGeneric jsFlowGeneric HiLink jsFlowReturn PreProc HiLink jsFlowParenAnnotation PreProc @@ -82,7 +91,7 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink jsFlowReturnArray jsFlowArray HiLink jsFlowReturnParens jsFlowParens HiLink jsFlowReturnGroup jsFlowGeneric - HiLink jsFlowFunctionGroup PreProc + " HiLink jsFlowFunctionGroup PreProc HiLink jsFlowClassGroup PreProc HiLink jsFlowClassFunctionGroup PreProc HiLink jsFlowArrow PreProc @@ -94,6 +103,7 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink jsFlowReturnMaybe PreProc HiLink jsFlowClassProperty jsClassProperty HiLink jsFlowDeclare PreProc + HiLink jsFlowExport PreProc HiLink jsFlowModule PreProc HiLink jsFlowInterface PreProc HiLink jsFlowNoise Noise @@ -104,6 +114,7 @@ if version >= 508 || !exists("did_javascript_syn_inits") HiLink jsFlowWildcardReturn PreProc HiLink jsFlowImportType PreProc HiLink jsFlowTypeValue PreProc + HiLink jsFlowReturnKeyword PreProc HiLink jsFlowObjectFuncName jsObjectFuncName delcommand HiLink endif diff --git a/syntax/javascript.vim b/syntax/javascript.vim index 6a13434a..a32d5f1e 100644 --- a/syntax/javascript.vim +++ b/syntax/javascript.vim @@ -161,7 +161,7 @@ syntax match jsOperator /?\.\ze\_D/ syntax match jsOperator /??/ skipwhite skipempty nextgroup=@jsExpression syntax match jsGenerator contained /\*/ skipwhite skipempty nextgroup=jsFuncName,jsFuncArgs,jsFlowFunctionGroup -syntax match jsFuncName contained /\<\K\k*/ skipwhite skipempty nextgroup=jsFuncArgs,jsFlowFunctionGroup +syntax match jsFuncName contained /\<\K\k*/ skipwhite skipempty nextgroup=jsFuncArgs,jsFlowFunctionGeneric syntax region jsFuncArgExpression contained matchgroup=jsFuncArgOperator start=/=/ end=/[,)]\@=/ contains=@jsExpression extend syntax match jsFuncArgCommas contained ',' syntax keyword jsArguments contained arguments @@ -195,7 +195,7 @@ syntax match jsDestructuringProperty contained /\k\+\ze\s*=/ skipwhit syntax match jsDestructuringAssignment contained /\k\+\ze\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 skipwhite skipempty nextgroup=jsDestructuringValue extend -syntax match jsDestructuringNoise contained /[,[\]]/ +syntax match jsDestructuringNoise contained /[,]/ syntax region jsDestructuringPropertyComputed contained matchgroup=jsDestructuringBraces start=/\[/ end=/]/ contains=@jsExpression skipwhite skipempty nextgroup=jsDestructuringValue,jsDestructuringValueAssignment,jsDestructuringNoise extend fold " Comments pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy