7373endif
7474syntax cluster jsRegexpSpecial contains =jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
7575
76- syntax match jsObjectKey contained / \< [0-9a-zA-Z_$]*\>\(\s *:\)\@ =/ contains =jsFunctionKey skipwhite skipempty nextgroup =jsObjectValue
76+ syntax match jsObjectKey contained / \< [0-9a-zA-Z_$]*\>\(\s *:\)\@ =/ contains =jsFunctionKey skipwhite skipempty nextgroup =jsObjectValue,jsFlowParenRegion
7777syntax region jsObjectKeyString contained start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell skipwhite skipempty nextgroup =jsObjectValue
7878syntax region jsObjectKeyString contained start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@Spell skipwhite skipempty nextgroup =jsObjectValue
7979syntax region jsObjectKeyComputed contained matchgroup =jsBrackets start =/ \[ / end =/ ]/ contains =@jsExpression skipwhite skipempty nextgroup =jsObjectValue,jsFuncArgs extend
@@ -134,8 +134,8 @@ syntax region jsParenIfElse contained matchgroup=jsParens s
134134syntax region jsParenRepeat contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
135135syntax region jsParenSwitch contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
136136syntax region jsParenCatch contained matchgroup =jsParens start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsTryCatchBlock extend fold
137- syntax region jsFuncArgs contained matchgroup =jsFuncParens start =/ (/ end =/ )/ contains =jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression skipwhite skipempty nextgroup =jsFuncBlock extend fold
138- syntax region jsClassBlock contained matchgroup =jsClassBraces start =/ {/ end =/ }/ contains =jsClassFuncName,jsClassMethodDefinitions,jsOperator,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise extend fold
137+ syntax 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
139139syntax region jsFuncBlock contained matchgroup =jsFuncBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
140140syntax region jsBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
141141syntax region jsTryCatchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll skipwhite skipempty nextgroup =jsCatch,jsFinally extend fold
@@ -146,6 +146,7 @@ syntax region jsObject matchgroup=jsObjectBraces s
146146syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
147147syntax region jsSpreadExpression contained matchgroup =jsSpreadOperator start =/ \.\.\. / end =/ [,}\] ]\@ =/ contains =@jsExpression
148148syntax region jsRestExpression contained matchgroup =jsRestOperator start =/ \.\.\. / end =/ [,)]\@ =/
149+ syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
149150
150151syntax match jsGenerator contained / \* / skipwhite skipempty nextgroup =jsFuncName,jsFuncArgs
151152syntax match jsFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\> / skipwhite skipempty nextgroup =jsFuncArgs
@@ -191,31 +192,17 @@ syntax region jsComment start="/\*" end="\*/" contains=jsCommentTodo,js
191192syntax region jsEnvComment start =" \% ^#!" end =" $" display
192193syntax region jsCvsTag contained start =" \$\c id:" end =" \$ " oneline
193194
194- " " JSDoc / JSDoc Toolkit
195- if ! exists (" javascript_ignore_javaScriptdoc" )
196- " " syntax coloring for javadoc comments (HTML)
197- syntax region jsComment matchgroup =jsComment start =" /\*\s *" end =" \* /" contains =jsDocTags,jsCommentTodo,jsCvsTag,@jsHtml,@Spell fold
198-
199- " tags containing a param
200- syntax match jsDocTags contained " @\( alias\| api\| augments\| borrows\| class\| constructs\| default\| defaultvalue\| emits\| exception\| exports\| extends\| fires\| kind\| link\| listens\| member\| member[oO]f\| mixes\| module\| name\| namespace\| requires\| template\| throws\| var\| variation\| version\)\> " skipwhite nextgroup =jsDocParam
201- " tags containing type and param
202- syntax match jsDocTags contained " @\( arg\| argument\| cfg\| param\| property\| prop\)\> " skipwhite nextgroup =jsDocType
203- " tags containing type but no param
204- syntax match jsDocTags contained " @\( callback\| define\| enum\| external\| implements\| this\| type\| typedef\| return\| returns\)\> " skipwhite nextgroup =jsDocTypeNoParam
205- " tags containing references
206- syntax match jsDocTags contained " @\( lends\| see\| tutorial\)\> " skipwhite nextgroup =jsDocSeeTag
207- " other tags (no extra syntax)
208- syntax match jsDocTags contained " @\( abstract\| access\| accessor\| author\| classdesc\| constant\| const\| constructor\| copyright\| deprecated\| desc\| description\| dict\| event\| example\| file\| file[oO]verview\| final\| function\| global\| ignore\| inheritDoc\| inner\| instance\| interface\| license\| localdoc\| method\| mixin\| nosideeffects\| override\| overview\| preserve\| private\| protected\| public\| readonly\| since\| static\| struct\| todo\| summary\| undocumented\| virtual\)\> "
209-
210- syntax region jsDocType contained matchgroup =jsDocTypeBrackets start =" {" end =" }" contains =jsDocTypeRecord oneline skipwhite nextgroup =jsDocParam
211- syntax match jsDocType contained " \% (#\|\"\|\w\|\.\| :\|\/\)\+ " skipwhite nextgroup =jsDocParam
212- syntax region jsDocTypeRecord contained start =/ {/ end =/ }/ contains =jsDocTypeRecord extend
213- syntax region jsDocTypeRecord contained start =/ \[ / end =/ \] / contains =jsDocTypeRecord extend
214- syntax region jsDocTypeNoParam contained start =" {" end =" }" oneline
215- syntax match jsDocTypeNoParam contained " \% (#\|\"\|\w\|\.\| :\|\/\)\+ "
216- syntax match jsDocParam contained " \% (#\|\$\| -\| '\|\"\| {.\{ -}}\|\w\|\.\| :\|\/\|\[ .{-}]\| =\)\+ "
217- syntax region jsDocSeeTag contained matchgroup =jsDocSeeTag start =" {" end =" }" contains =jsDocTags
218- endif " " JSDoc end
195+ if exists (" javascript_plugin_jsdoc" )
196+ runtime extras/jsdoc.vim
197+ " NGDoc requires JSDoc
198+ if exists (" javascript_plugin_ngdoc" )
199+ runtime extras/ngdoc.vim
200+ endif
201+ endif
202+
203+ if exists (" javascript_plugin_flow" )
204+ runtime extras/flow.vim
205+ endif
219206
220207syntax cluster jsExpression contains =jsBracket,jsParen,jsObject,jsBlock,jsTernaryIf,jsTaggedTemplate,jsTemplateString,jsString,jsRegexpString,jsNumber,jsFloat,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsFuncCall,jsUndefined,jsNan,jsPrototype,jsBuiltins,jsNoise,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs,jsParensError,jsComment,jsArguments,jsThis,jsSuper
221208syntax cluster jsAll contains =@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry,jsAsyncKeyword
@@ -234,13 +221,6 @@ if version >= 508 || !exists("did_javascript_syn_inits")
234221 HiLink jsEnvComment PreProc
235222 HiLink jsCommentTodo Todo
236223 HiLink jsCvsTag Function
237- HiLink jsDocTags Special
238- HiLink jsDocSeeTag Function
239- HiLink jsDocType Type
240- HiLink jsDocTypeBrackets jsDocType
241- HiLink jsDocTypeRecord jsDocType
242- HiLink jsDocTypeNoParam Type
243- HiLink jsDocParam Label
244224 HiLink jsString String
245225 HiLink jsObjectKeyString String
246226 HiLink jsTemplateString String
0 commit comments