@@ -41,12 +41,12 @@ syntax keyword jsModuleKeywords contained import
41
41
syntax keyword jsModuleKeywords contained export skipwhite skipempty nextgroup =jsExportBlock,jsModuleDefault
42
42
syntax keyword jsModuleOperators contained from
43
43
syntax keyword jsModuleOperators contained as
44
- syntax region jsModuleGroup contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise,jsComment
44
+ syntax region jsModuleGroup contained matchgroup =jsModuleBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise,jsComment
45
45
syntax match jsModuleAsterisk contained / */
46
46
syntax keyword jsModuleDefault contained default skipwhite skipempty nextgroup =@jsExpression
47
47
syntax region jsImportContainer start =/ \< import\> / end =" \% (;\| $\) " contains =jsModuleKeywords,jsModuleOperators,jsComment,jsString,jsTemplateString,jsNoise,jsModuleGroup,jsModuleAsterisk
48
48
syntax region jsExportContainer start =/ \< export\> / end =" \% (;\| $\) " contains =jsModuleKeywords,jsModuleOperators,jsStorageClass,jsModuleDefault,@jsExpression
49
- syntax region jsExportBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise,jsComment
49
+ syntax region jsExportBlock contained matchgroup =jsExportBraces start =/ {/ end =/ }/ contains =jsModuleOperators,jsNoise,jsComment
50
50
51
51
" Strings, Templates, Numbers
52
52
syntax region jsString start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell extend
74
74
endif
75
75
syntax cluster jsRegexpSpecial contains =jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
76
76
77
+ " Objects
77
78
syntax match jsObjectKey contained / \< [0-9a-zA-Z_$]*\>\(\s *:\)\@ =/ contains =jsFunctionKey skipwhite skipempty nextgroup =jsObjectValue
79
+ syntax match jsObjectColon contained / :/ skipwhite skipempty
78
80
syntax region jsObjectKeyString contained start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@Spell skipwhite skipempty nextgroup =jsObjectValue
79
81
syntax region jsObjectKeyString contained start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@Spell skipwhite skipempty nextgroup =jsObjectValue
80
82
syntax region jsObjectKeyComputed contained matchgroup =jsBrackets start =/ \[ / end =/ ]/ contains =@jsExpression skipwhite skipempty nextgroup =jsObjectValue,jsFuncArgs extend
81
83
syntax match jsObjectSeparator contained / ,/
82
- syntax region jsObjectValue contained start =/ :/ end =/ \% (,\| }\)\@ =/ contains =@jsExpression extend
84
+ syntax region jsObjectValue contained start =/ :/ end =/ \% (,\| }\)\@ =/ contains =jsObjectColon, @jsExpression extend
83
85
syntax match jsObjectFuncName contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\> [\r\n\t ]*(\@ =/ skipwhite skipempty nextgroup =jsFuncArgs
84
86
syntax match jsFunctionKey contained / \< [a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s *:\s *function\s *\)\@ =/
85
87
syntax match jsObjectMethodType contained / \% (get\| set\| static\| async\)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsObjectFuncName
@@ -91,32 +93,32 @@ exe 'syntax keyword jsReturn return contained '.(exists('g:javascript_conceal
91
93
exe ' syntax keyword jsUndefined undefined ' .(exists (' g:javascript_conceal_undefined' ) ? ' conceal cchar=' .g: javascript_conceal_undefined : ' ' )
92
94
exe ' syntax keyword jsNan NaN ' .(exists (' g:javascript_conceal_NaN' ) ? ' conceal cchar=' .g: javascript_conceal_NaN : ' ' )
93
95
exe ' syntax keyword jsPrototype prototype ' .(exists (' g:javascript_conceal_prototype' ) ? ' conceal cchar=' .g: javascript_conceal_prototype : ' ' )
94
- exe ' syntax keyword jsThis this contained ' .(exists (' g:javascript_conceal_this' ) ? ' conceal cchar=' .g: javascript_conceal_this : ' ' )
96
+ exe ' syntax keyword jsThis this ' .(exists (' g:javascript_conceal_this' ) ? ' conceal cchar=' .g: javascript_conceal_this : ' ' )
95
97
exe ' syntax keyword jsSuper super contained ' .(exists (' g:javascript_conceal_super' ) ? ' conceal cchar=' .g: javascript_conceal_super : ' ' )
96
98
97
99
" Statement Keywords
98
100
syntax keyword jsStatement contained break continue with yield debugger
99
101
syntax keyword jsConditional if skipwhite skipempty nextgroup =jsParenIfElse
100
- syntax keyword jsConditional else skipwhite skipempty nextgroup =jsCommentMisc,jsBlock
102
+ syntax keyword jsConditional else skipwhite skipempty nextgroup =jsCommentMisc,jsIfElseBlock
101
103
syntax keyword jsConditional switch skipwhite skipempty nextgroup =jsParenSwitch
102
104
syntax keyword jsRepeat while for skipwhite skipempty nextgroup =jsParenRepeat
103
- syntax keyword jsDo do skipwhite skipempty nextgroup =jsBlock
105
+ syntax keyword jsDo do skipwhite skipempty nextgroup =jsRepeatBlock
104
106
syntax keyword jsLabel contained case default
105
107
syntax keyword jsTry try skipwhite skipempty nextgroup =jsTryCatchBlock
106
- syntax keyword jsFinally contained finally skipwhite skipempty nextgroup =jsBlock
108
+ syntax keyword jsFinally contained finally skipwhite skipempty nextgroup =jsFinallyBlock
107
109
syntax keyword jsCatch contained catch skipwhite skipempty nextgroup =jsParenCatch
108
110
syntax keyword jsException throw
109
111
syntax keyword jsAsyncKeyword async await
110
- syntax match jsSwitchColon contained / :/ skipwhite skipempty nextgroup =jsBlock
112
+ syntax match jsSwitchColon contained / :/ skipwhite skipempty nextgroup =jsSwitchBlock
111
113
112
114
" Keywords
113
- syntax keyword jsGlobalObjects Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set RegExp String Proxy Promise Buffer ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray JSON Math console document window Intl Collator DateTimeFormat NumberFormat
114
- syntax keyword jsGlobalNodeObjects module exports global process
115
- syntax match jsGlobalNodeObjects / require/ contains =jsFuncCall
116
- syntax keyword jsExceptions Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError
117
- syntax keyword jsBuiltins decodeURI decodeURIComponent encodeURI encodeURIComponent eval isFinite isNaN parseFloat parseInt uneval
115
+ syntax keyword jsGlobalObjects Array Boolean Date Function Iterator Number Object Symbol Map WeakMap Set RegExp String Proxy Promise Buffer ParallelArray ArrayBuffer DataView Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray JSON Math console document window Intl Collator DateTimeFormat NumberFormat
116
+ syntax keyword jsGlobalNodeObjects module exports global process
117
+ syntax match jsGlobalNodeObjects / require/ contains =jsFuncCall
118
+ syntax keyword jsExceptions Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError
119
+ syntax keyword jsBuiltins decodeURI decodeURIComponent encodeURI encodeURIComponent eval isFinite isNaN parseFloat parseInt uneval
118
120
" DISCUSS: How imporant is this, really? Perhaps it should be linked to an error because I assume the keywords are reserved?
119
- syntax keyword jsFutureKeys abstract enum int short boolean interface byte long char final native synchronized float package throws goto private transient implements protected volatile double public
121
+ syntax keyword jsFutureKeys abstract enum int short boolean interface byte long char final native synchronized float package throws goto private transient implements protected volatile double public
120
122
121
123
" DISCUSS: Should we really be matching stuff like this?
122
124
" DOM2 Objects
@@ -132,22 +134,26 @@ syntax keyword jsDomNodeConsts ELEMENT_NODE ATTRIBUTE_NODE TEXT_NODE CDATA_SECT
132
134
" HTML events and internal variables
133
135
syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus onkeydown onkeypress onkeyup onmousedown onmousemove onmouseout onmouseover onmouseup onresize
134
136
135
- " " Code blocks
137
+ " Code blocks
136
138
syntax region jsBracket matchgroup =jsBrackets start =/ \[ / end =/ \] / contains =@jsExpression extend fold
137
139
syntax region jsParen matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll extend fold
138
- syntax region jsParenIfElse contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsCommentMisc,jsBlock extend fold
139
- syntax region jsParenRepeat contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsCommentMisc,jsBlock extend fold
140
- syntax region jsParenSwitch contained matchgroup =jsParens start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
141
- syntax region jsParenCatch contained matchgroup =jsParens start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsTryCatchBlock extend fold
140
+ syntax region jsParenDecorator contained matchgroup =jsParensDecorator start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsCommentMisc extend fold
141
+ syntax region jsParenIfElse contained matchgroup =jsParensIfElse start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsCommentMisc,jsIfElseBlock extend fold
142
+ syntax region jsParenRepeat contained matchgroup =jsParensRepeat start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsCommentMisc,jsRepeatBlock extend fold
143
+ syntax region jsParenSwitch contained matchgroup =jsParensSwitch start =/ (/ end =/ )/ contains =@jsAll skipwhite skipempty nextgroup =jsSwitchBlock extend fold
144
+ syntax region jsParenCatch contained matchgroup =jsParensCatch start =/ (/ end =/ )/ skipwhite skipempty nextgroup =jsTryCatchBlock extend fold
142
145
syntax region jsFuncArgs contained matchgroup =jsFuncParens start =/ (/ end =/ )/ contains =jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression,jsFlowArgumentDef skipwhite skipempty nextgroup =jsCommentFunction,jsFuncBlock,jsFlowReturn extend fold
143
146
syntax region jsClassBlock contained matchgroup =jsClassBraces start =/ {/ end =/ }/ contains =jsClassFuncName,jsClassMethodType,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise extend fold
144
147
syntax region jsFuncBlock contained matchgroup =jsFuncBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
148
+ syntax region jsIfElseBlock contained matchgroup =jsIfElseBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
145
149
syntax region jsBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
146
- syntax region jsTryCatchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll skipwhite skipempty nextgroup =jsCatch,jsFinally extend fold
147
- syntax region jsSwitchBlock contained matchgroup =jsBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel,jsSwitchColon extend fold
150
+ syntax region jsTryCatchBlock contained matchgroup =jsTryCatchBraces start =/ {/ end =/ }/ contains =@jsAll skipwhite skipempty nextgroup =jsCatch,jsFinally extend fold
151
+ syntax region jsFinallyBlock contained matchgroup =jsFinallyBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
152
+ syntax region jsSwitchBlock contained matchgroup =jsSwitchBraces start =/ {/ end =/ }/ contains =@jsAll,jsLabel,jsSwitchColon extend fold
153
+ syntax region jsRepeatBlock contained matchgroup =jsRepeatBraces start =/ {/ end =/ }/ contains =@jsAll extend fold
148
154
syntax region jsDestructuringBlock contained matchgroup =jsDestructuringBraces start =/ {/ end =/ }/ contains =jsDestructuringProperty,jsDestructuringAssignment,jsDestructuringNoise,jsDestructuringPropertyComputed,jsSpreadExpression extend fold
149
155
syntax region jsDestructuringArray contained matchgroup =jsDestructuringBraces start =/ \[ / end =/ \] / contains =jsDestructuringPropertyValue,jsNoise,jsDestructuringProperty,jsSpreadExpression extend fold
150
- syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectMethodType,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression extend fold
156
+ syntax region jsObject matchgroup =jsObjectBraces start =/ {/ end =/ }/ contains =jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectMethodType,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression,jsDecorator extend fold
151
157
syntax region jsTernaryIf matchgroup =jsTernaryIfOperator start =/ ?/ end =/ \% (:\| [\} ]\@ =\) / contains =@jsExpression
152
158
syntax region jsSpreadExpression contained matchgroup =jsSpreadOperator start =/ \.\.\. / end =/ [,}\] ]\@ =/ contains =@jsExpression
153
159
syntax region jsRestExpression contained matchgroup =jsRestOperator start =/ \.\.\. / end =/ [,)]\@ =/
@@ -167,12 +173,11 @@ syntax match jsArrowFuncArgs /([^()]*)\s*\(=>\)\@=/ contains=jsFuncArgs skipe
167
173
exe ' syntax match jsFunction /\<function\>/ skipwhite skipempty nextgroup=jsGenerator,jsFuncName,jsFuncArgs skipwhite ' .(exists (' g:javascript_conceal_function' ) ? ' conceal cchar=' .g: javascript_conceal_function : ' ' )
168
174
exe ' syntax match jsArrowFunction /=>/ skipwhite skipempty nextgroup=jsFuncBlock contains=jsFuncBraces ' .(exists (' g:javascript_conceal_arrow_function' ) ? ' conceal cchar=' .g: javascript_conceal_arrow_function : ' ' )
169
175
176
+ " Classes
170
177
syntax keyword jsClassKeywords contained extends class
171
178
syntax match jsClassNoise contained / \. /
172
179
syntax match jsClassMethodType contained / \% (get\| set\| static\| async\)\% ( \k\+\)\@ =/ skipwhite skipempty nextgroup =jsFuncName,jsClassProperty
173
180
syntax match jsClassDefinition / \< class\>\% ( [a-zA-Z_$][0-9a-zA-Z_$ \n .]*\) */ contains =jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup =jsCommentClass,jsClassBlock,jsFlowClassGroup
174
- syntax match jsDecorator contained " @" nextgroup =jsDecoratorFunction
175
- syntax match jsDecoratorFunction contained " [a-zA-Z_][a-zA-Z0-9_.]*"
176
181
syntax match jsClassProperty contained / \< [0-9a-zA-Z_$]*\>\(\s *=\)\@ =/ skipwhite skipempty nextgroup =jsClassValue
177
182
syntax region jsClassValue contained start =/ =/ end =/ \% (;\| }\|\n\)\@ =/ contains =@jsExpression
178
183
syntax region jsClassPropertyComputed contained matchgroup =jsBrackets start =/ \[ / end =/ ]/ contains =@jsExpression skipwhite skipempty nextgroup =jsFuncArgs,jsClassValue extend
@@ -205,6 +210,10 @@ syntax region jsCommentClass contained start=/\/\*/ end=/\*\// contains=j
205
210
syntax region jsCommentMisc contained start =/ \/\/ / end =/ $/ contains =jsCommentTodo,@Spell skipwhite skipempty nextgroup =jsBlock extend keepend
206
211
syntax region jsCommentMisc contained start =/ \/\* / end =/ \*\/ / contains =jsCommentTodo,@Spell skipwhite skipempty nextgroup =jsBlock fold extend keepend
207
212
213
+ " Decorators
214
+ syntax match jsDecorator / ^\s *@/ nextgroup =jsDecoratorFunction
215
+ syntax match jsDecoratorFunction contained / [a-zA-Z_][a-zA-Z0-9_.]*/ nextgroup =jsParenDecorator
216
+
208
217
if exists (" javascript_plugin_jsdoc" )
209
218
runtime extras/jsdoc.vim
210
219
" NGDoc requires JSDoc
@@ -232,6 +241,10 @@ if version >= 508 || !exists("did_javascript_syn_inits")
232
241
endif
233
242
HiLink jsComment Comment
234
243
HiLink jsEnvComment PreProc
244
+ HiLink jsParensIfElse jsParens
245
+ HiLink jsParensRepeat jsParens
246
+ HiLink jsParensSwitch jsParens
247
+ HiLink jsParensCatch jsParens
235
248
HiLink jsCommentTodo Todo
236
249
HiLink jsString String
237
250
HiLink jsObjectKeyString String
@@ -275,7 +288,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
275
288
HiLink jsOperator Operator
276
289
HiLink jsOf Operator
277
290
HiLink jsStorageClass StorageClass
278
- HiLink jsClassKeywords Structure
291
+ HiLink jsClassKeywords Keyword
279
292
HiLink jsThis Special
280
293
HiLink jsSuper Constant
281
294
HiLink jsNan Number
@@ -285,6 +298,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
285
298
HiLink jsFloat Float
286
299
HiLink jsBooleanTrue Boolean
287
300
HiLink jsBooleanFalse Boolean
301
+ HiLink jsObjectColon jsNoise
288
302
HiLink jsNoise Noise
289
303
HiLink jsBrackets Noise
290
304
HiLink jsParens Noise
@@ -293,8 +307,15 @@ if version >= 508 || !exists("did_javascript_syn_inits")
293
307
HiLink jsFuncParens Noise
294
308
HiLink jsClassBraces Noise
295
309
HiLink jsClassNoise Noise
310
+ HiLink jsIfElseBraces jsBraces
311
+ HiLink jsTryCatchBraces jsBraces
312
+ HiLink jsModuleBraces jsBraces
296
313
HiLink jsObjectBraces Noise
297
314
HiLink jsObjectSeparator Noise
315
+ HiLink jsFinallyBraces jsBraces
316
+ HiLink jsRepeatBraces jsBraces
317
+ HiLink jsSwitchBraces jsBraces
318
+ HiLink jsExportBraces jsBraces
298
319
HiLink jsSpecial Special
299
320
HiLink jsTemplateVar Special
300
321
HiLink jsTemplateBraces jsBraces
@@ -305,8 +326,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
305
326
HiLink jsModuleKeywords Include
306
327
HiLink jsModuleOperators Include
307
328
HiLink jsModuleDefault Include
308
- HiLink jsDecorator Special
309
- HiLink jsDecoratorFunction Special
329
+ HiLink jsDecorator Tag
330
+ HiLink jsDecoratorFunction Tag
310
331
HiLink jsFuncArgOperator jsFuncArgs
311
332
HiLink jsModuleAsterisk Noise
312
333
HiLink jsClassProperty jsObjectKey
0 commit comments