@@ -18,13 +18,13 @@ if !exists("main_syntax")
1818 let main_syntax = ' javascript'
1919endif
2020
21- " " Drop fold if it set but VIM doesn't support it.
21+ " " Drop fold if it is set but VIM doesn't support it.
2222let b: javascript_fold= ' true'
2323if version < 600 " Don't support the old version
2424 unlet ! b: javascript_fold
2525endif
2626
27- " " dollar sigh is permittd anywhere in an identifier
27+ " " dollar sign is permittd anywhere in an identifier
2828setlocal iskeyword += $
2929
3030syntax sync fromstart
@@ -74,16 +74,16 @@ syntax case match
7474syntax match javaScriptSpecial " \\\d\d\d\|\\ x\x\{ 2\}\|\\ u\x\{ 4\}\|\\ ."
7575syntax region javaScriptStringD start =+ "+ skip =+ \\\\\|\\ $"+ end =+ "+ contains =javaScriptSpecial,@htmlPreproc
7676syntax region javaScriptStringS start =+ '+ skip =+ \\\\\|\\ $'+ end =+ '+ contains =javaScriptSpecial,@htmlPreproc
77- syntax region javaScriptRegexpCharClass start =+ \[\]\|\[ ^ \]\|\[ + end =+ \] + contained
77+ 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
8585
86- " " Programm Keywords
86+ " " Program Keywords
8787syntax keyword javaScriptSource import export
8888syntax keyword javaScriptType const undefined var void yield
8989syntax keyword javaScriptOperator delete new in instanceof let typeof
@@ -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