@@ -83,6 +83,8 @@ syntax region jsObjectValue contained start=/:/ end=/\%(,\|}\)\@=/ contai
83
83
syntax match jsObjectFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\> [\r\n\t ]*(\@ =/ skipwhite skipempty nextgroup =jsFuncArgs
84
84
syntax match jsFunctionKey contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\s *function\s *\)\@ =/
85
85
syntax match jsObjectGetSet contained / \% (get\| set\| static\)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsObjectFuncName
86
+ syntax region jsObjectStringKey contained start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell extend skipwhite skipempty nextgroup =jsFuncArgs,jsObjectValue
87
+ syntax region jsObjectStringKey contained start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@Spell extend skipwhite skipempty nextgroup =jsFuncArgs,jsObjectValue
86
88
87
89
exe ' syntax keyword jsNull null ' .(exists (' g:javascript_conceal_null' ) ? ' conceal cchar=' .g: javascript_conceal_null : ' ' )
88
90
exe ' syntax keyword jsReturn return contained ' .(exists (' g:javascript_conceal_return' ) ? ' conceal cchar=' .g: javascript_conceal_return : ' ' )
@@ -99,8 +101,9 @@ syntax keyword jsConditional switch skipwhite skipempty nextgro
99
101
syntax keyword jsRepeat while for skipwhite skipempty nextgroup =jsParenRepeat
100
102
syntax keyword jsRepeat do skipwhite skipempty nextgroup =jsBlock
101
103
syntax keyword jsLabel contained case default
102
- syntax keyword jsException try finally skipwhite skipempty nextgroup =jsBlock
103
- syntax keyword jsException catch skipwhite skipempty nextgroup =jsParenCatch
104
+ syntax keyword jsTry try skipwhite skipempty nextgroup =jsTryCatchBlock
105
+ syntax keyword jsFinally contained finally skipwhite skipempty nextgroup =jsBlock
106
+ syntax keyword jsCatch contained catch skipwhite skipempty nextgroup =jsParenCatch
104
107
syntax keyword jsException throw
105
108
syntax keyword jsAsyncKeyword async await
106
109
@@ -126,18 +129,19 @@ syntax keyword jsDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECT
126
129
syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
127
130
128
131
" " Code blocks
129
- syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsExpression extend fold
130
- syntax region jsParen matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll extend fold
131
- syntax region jsParenIfElse contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
132
- syntax region jsParenRepeat contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
133
- syntax region jsParenSwitch contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
134
- syntax region jsParenCatch contained matchgroup =jsParens start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsBlock extend fold
135
- syntax region jsClassBlock contained matchgroup =jsClassBraces start =/ {/ end =/ }/ contains =jsClassFuncName,jsClassMethodDefinitions,jsOperator,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsNoise extend fold
136
- syntax region jsFuncBlock contained matchgroup =jsFuncBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
137
- syntax region jsBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
138
- syntax region jsSwitchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel extend fold
139
- syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectGetSet,jsGenerator,jsComment,jsSpreadOperator extend fold
140
- syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
132
+ syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsExpression extend fold
133
+ syntax region jsParen matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll extend fold
134
+ syntax region jsParenIfElse contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
135
+ syntax region jsParenRepeat contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsBlock extend fold
136
+ syntax region jsParenSwitch contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
137
+ syntax region jsParenCatch contained matchgroup =jsParens start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsTryCatchBlock 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
139
+ syntax region jsFuncBlock contained matchgroup =jsFuncBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
140
+ syntax region jsBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
141
+ syntax region jsTryCatchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll skipwhite skipempty nextgroup =jsCatch,jsFinally extend fold
142
+ syntax region jsSwitchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel extend fold
143
+ syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectGetSet,jsGenerator,jsComment,jsSpreadOperator,jsObjectStringKey extend fold
144
+ syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
141
145
142
146
syntax match jsGenerator contained / \* / skipwhite skipempty nextgroup =jsFuncName,jsFuncArgs
143
147
syntax match jsFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\> / skipwhite skipempty nextgroup =jsFuncArgs
@@ -166,6 +170,8 @@ syntax match jsClassProperty contained /\<[0-9a-zA-Z_$]*\>\(\s*=\)\@=
166
170
syntax region jsClassValue contained start =/ =/ end =/ \% (;\| }\|\n\)\@ =/ contains =@jsExpression
167
171
syntax region jsClassPropertyComputed contained matchgroup =jsBrackets start =/ \[ / end =/ ]/ contains =@jsExpression skipwhite skipempty nextgroup =jsFuncArgs,jsClassValue extend
168
172
syntax match jsClassFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\% (\s *(\)\@ =/ skipwhite skipempty nextgroup =jsFuncArgs
173
+ syntax region jsClassStringKey contained start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell extend skipwhite skipempty nextgroup =jsFuncArgs
174
+ syntax region jsClassStringKey contained start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@Spell extend skipwhite skipempty nextgroup =jsFuncArgs
169
175
170
176
" Comments
171
177
syntax keyword jsCommentTodo contained TODO FIXME XXX TBD
@@ -202,7 +208,7 @@ if !exists("javascript_ignore_javaScriptdoc")
202
208
endif " " JSDoc end
203
209
204
210
syntax 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,jsSpreadOperator
205
- syntax cluster jsAll contains =@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsAsyncKeyword
211
+ syntax cluster jsAll contains =@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry, jsAsyncKeyword
206
212
207
213
" Define the default highlighting.
208
214
" For version 5.7 and earlier: only when not done already
@@ -229,6 +235,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
229
235
HiLink jsString String
230
236
HiLink jsObjectKeyString String
231
237
HiLink jsTemplateString String
238
+ HiLink jsObjectStringKey String
239
+ HiLink jsClassStringKey String
232
240
HiLink jsTaggedTemplate StorageClass
233
241
HiLink jsTernaryIfOperator Operator
234
242
HiLink jsRegexpString String
@@ -248,6 +256,9 @@ if version >= 508 || !exists("did_javascript_syn_inits")
248
256
HiLink jsRepeat Repeat
249
257
HiLink jsStatement Statement
250
258
HiLink jsException Exception
259
+ HiLink jsTry Exception
260
+ HiLink jsFinally Exception
261
+ HiLink jsCatch Exception
251
262
HiLink jsAsyncKeyword Keyword
252
263
HiLink jsArrowFunction Type
253
264
HiLink jsFunction Type
0 commit comments