@@ -78,7 +78,7 @@ syntax region javaScriptRegexpCharClass start=+\[+ end=+\]+ contained
7878syntax region javaScriptRegexpString start =+ \(\(\( return\| case\)\s\+\)\@ <=\|\(\( [)\] "']\|\d\|\w\)\s *\)\@ <!\) /\(\*\| /\)\@ !+ skip =+ \\\\\|\\ /+ end =+ /[gim]\{ ,3}+ contains =javaScriptSpecial,javaScriptRegexpCharClass,@htmlPreproc oneline
7979syntax match javaScriptNumber / \< -\=\d\+ L\=\>\|\< 0[xX]\x\+\> /
8080syntax match javaScriptFloat / \< -\=\% (\d\+\.\d\+\|\d\+\.\|\.\d\+\)\% ([eE][+-]\=\d\+\)\=\> /
81- syntax match javaScriptLabel / \( ? \s * \)\@ <! \ <\w\+\(\s *:\)\@ =/
81+ syntax match javaScriptLabel / \<\w\+\(\s *:\)\@ =/
8282
8383" " JavaScript Prototype
8484syntax keyword javaScriptPrototype prototype
@@ -153,10 +153,13 @@ endif "DOM/HTML/CSS
153153
154154
155155" " Code blocks
156- syntax cluster javaScriptAll contains =javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptLabel,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation
156+ " there is a name collision with javaScriptExpression in html.vim, hence the use of the '2' here
157+ syntax cluster javaScriptExpression2 contains =javaScriptComment,javaScriptLineComment,javaScriptDocComment,javaScriptStringD,javaScriptStringS,javaScriptRegexpString,javaScriptNumber,javaScriptFloat,javaScriptSource,javaScriptThis,javaScriptType,javaScriptOperator,javaScriptBoolean,javaScriptNull,javaScriptFunction,javaScriptGlobalObjects,javaScriptExceptions,javaScriptFutureKeys,javaScriptDomErrNo,javaScriptDomNodeConsts,javaScriptHtmlEvents,javaScriptDotNotation,javaScriptBracket,javaScriptParen,javaScriptBlock,javaScriptParenError
158+ syntax cluster javaScriptAll contains =@javaScriptExpression2,javaScriptLabel,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptStatement,javaScriptTernaryIf
157159syntax region javaScriptBracket matchgroup =javaScriptBracket transparent start =" \[ " end =" \] " contains =@javaScriptAll,javaScriptParensErrB,javaScriptParensErrC,javaScriptBracket,javaScriptParen,javaScriptBlock,@htmlPreproc
158160syntax region javaScriptParen matchgroup =javaScriptParen transparent start =" (" end =" )" contains =@javaScriptAll,javaScriptParensErrA,javaScriptParensErrC,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc
159161syntax region javaScriptBlock matchgroup =javaScriptBlock transparent start =" {" end =" }" contains =@javaScriptAll,javaScriptParensErrA,javaScriptParensErrB,javaScriptParen,javaScriptBracket,javaScriptBlock,@htmlPreproc
162+ syntax region javaScriptTernaryIf matchgroup =javaScriptTernaryIfOperator start =+ ?+ end =+ :+ contains =@javaScriptExpression2
160163
161164" " catch errors caused by wrong parenthesis
162165syntax match javaScriptParensError " )\| }\|\] "
@@ -203,6 +206,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
203206 HiLink javaScriptDocParam Label
204207 HiLink javaScriptStringS String
205208 HiLink javaScriptStringD String
209+ HiLink javaScriptTernaryIfOperator Conditional
206210 HiLink javaScriptRegexpString String
207211 HiLink javaScriptRegexpCharClass Character
208212 HiLink javaScriptCharacter Character
0 commit comments