@@ -21,12 +21,12 @@ setlocal iskeyword+=$
21
21
22
22
syntax sync fromstart
23
23
24
- syntax match jsNoise / \% (: \| , \|\;\|\.\) /
24
+ syntax match jsNoise / [:, \;\. ] \{ 1} /
25
25
26
26
" " Program Keywords
27
27
syntax keyword jsStorageClass const var let
28
28
syntax keyword jsOperator delete instanceof typeof void new in
29
- syntax match jsOperator / \( !\| | \| & \| + \| - \| < \| > \| = \| % \|\/\| * \|\~\|\^\) /
29
+ syntax match jsOperator / [ \ !\|\&\+\-\<\>\=\%\/\*\~\^ ] \{ 1} /
30
30
syntax keyword jsBooleanTrue true
31
31
syntax keyword jsBooleanFalse false
32
32
syntax keyword jsModules import export contained
@@ -36,7 +36,7 @@ syntax keyword jsArgsObj arguments
36
36
37
37
syntax region jsImportContainer start =" ^\s\? import \? " end =" ;\| $" contains =jsModules,jsModuleWords,jsLineComment,jsComment,jsStringS,jsStringD,jsTemplateString,jsNoise,jsBlock
38
38
39
- syntax region jsExportContainer start =" ^\s\? export \? " end =" $" contains =jsModules,jsModuleWords,jsComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsAssignmentExpr, jsArgsObj,jsBlock,jsClassDefinition
39
+ syntax region jsExportContainer start =" ^\s\? export \? " end =" $" contains =jsModules,jsModuleWords,jsComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsArgsObj,jsBlock,jsClassDefinition
40
40
41
41
" " JavaScript comments
42
42
syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
@@ -88,7 +88,7 @@ syntax region jsTemplateVar matchgroup=jsTemplateBraces start=+${+ end=+}+
88
88
syntax region jsStringD start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@htmlPreproc,@Spell
89
89
syntax region jsStringS start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@htmlPreproc,@Spell
90
90
syntax region jsTemplateString start =+ `+ skip =+ \\\( `\| $\) + end =+ `+ contains =jsTemplateVar,jsSpecial,@htmlPreproc
91
- syntax region jsTaggedTemplate start =/ \k\+\(\(\n\|\s\) \+\)\? `/ end =+ `+ contains =jsTemplateString keepend
91
+ syntax region jsTaggedTemplate start =/ \k\+\% ([ \n\s ] \+\)\? `/ end =+ `+ contains =jsTemplateString keepend
92
92
syntax region jsRegexpCharClass start =+ \[ + skip =+ \\ .+ end =+ \] + contained
93
93
syntax match jsRegexpBoundary " \v %(\< @![\^ $]|\\ [bB])" contained
94
94
syntax match jsRegexpBackRef " \v\\ [1-9][0-9]*" contained
@@ -97,7 +97,7 @@ syntax match jsRegexpOr "\v\<@!\|" contained
97
97
syntax match jsRegexpMod " \v\( @<=\? [:=!>]" contained
98
98
syntax cluster jsRegexpSpecial contains =jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
99
99
syntax region jsRegexpGroup start =" \\\@ <!(" skip =" \\ .\|\[\(\\ .\| [^]]\) *\] " end =" \\\@ <!)" contained contains =jsRegexpCharClass,@jsRegexpSpecial keepend
100
- syntax region jsRegexpString start =+ \(\(\ ( return\| case\)\s\+\)\@ <=\|\(\ ( [)\] "']\|\d\|\w\)\s *\)\@ <!\) /\(\*\| /\)\@ !+ skip =+ \\ .\|\[\(\\ .\| [^]]\) *\] + end =+ /[gimy]\{ ,4}+ contains =jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial,@htmlPreproc oneline keepend
100
+ syntax region jsRegexpString start =+ \% ( \% ( \% (return\| case\)\s\+\)\@ 50 <=\|\% ( \% ([)\] "']\|\d\|\w\)\s *\)\@ 50 <!\) /\(\*\| /\)\@ !+ skip =+ \\ .\|\[\% (\\ .\| [^]]\) *\] + end =+ /[gimy]\{ ,4}+ contains =jsRegexpCharClass,jsRegexpGroup,@jsRegexpSpecial,@htmlPreproc oneline keepend
101
101
syntax match jsNumber / \< -\=\d\+\( L\| [eE][+-]\=\d\+\)\=\>\|\< 0[xX]\x\+\> /
102
102
syntax keyword jsNumber Infinity
103
103
syntax match jsFloat / \< -\=\% (\d\+\.\d\+\|\d\+\.\|\.\d\+\)\% ([eE][+-]\=\d\+\)\=\> /
@@ -106,12 +106,6 @@ syntax match jsFunctionKey /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s*:\s*function
106
106
syntax match jsDecorator " @" display contains =jsDecoratorFunction nextgroup =jsDecoratorFunction skipwhite
107
107
syntax match jsDecoratorFunction " [a-zA-Z_][a-zA-Z0-9_.]*" display contained nextgroup =jsFunc skipwhite
108
108
109
- syntax match jsAssignmentExpr / \v %([a-zA-Z_$]\k *\. )*[a-zA-Z_$]\k *\s *\=\> @!/ contains =jsFuncAssignExpr,jsAssignExpIdent,jsPrototype,jsOperator,jsThis,jsNoise,jsArgsObj
110
- syntax match jsAssignExpIdent / \v [a-zA-Z_$]\k *\z e%(\s *\= )/ contained
111
- syntax match jsFuncAssignExpr / \v %(%([a-zA-Z_$]\k *\. )*[a-zA-Z_$]\k *\s *\=\s *){-1,}\z e%(function\s *\* ?\s *\( )/ contains =jsFuncAssignObjChain,jsFuncAssignIdent,jsFunction,jsPrototype,jsOperator,jsThis,jsArgsObj contained
112
- syntax match jsFuncAssignObjChain / \v %([a-zA-Z_$]\k *\. )+/ contains =jsPrototype,jsNoise contained
113
- syntax match jsFuncAssignIdent / \v [a-zA-Z_$]\k *\z e%(\s *\= )/ contained
114
-
115
109
exe ' syntax keyword jsNull null ' .(exists (' g:javascript_conceal_null' ) ? ' conceal cchar=' .g: javascript_conceal_null : ' ' )
116
110
exe ' syntax keyword jsReturn return ' .(exists (' g:javascript_conceal_return' ) ? ' conceal cchar=' .g: javascript_conceal_return : ' ' )
117
111
exe ' syntax keyword jsUndefined undefined ' .(exists (' g:javascript_conceal_undefined' ) ? ' conceal cchar=' .g: javascript_conceal_undefined : ' ' )
@@ -130,8 +124,7 @@ syntax keyword jsKeyword yield
130
124
syntax keyword jsException try catch throw finally
131
125
syntax keyword jsAsyncKeyword async await
132
126
133
- 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 Intl JSON Math console document window
134
- syntax match jsGlobalObjects / \% (Intl\.\)\@ <=\( Collator\| DateTimeFormat\| NumberFormat\) /
127
+ 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
135
128
136
129
syntax keyword jsExceptions Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError
137
130
@@ -188,7 +181,7 @@ endif "DOM/HTML/CSS
188
181
" " end DOM/HTML/CSS specified things
189
182
190
183
" " Code blocks
191
- syntax cluster jsExpression contains =jsComment,jsLineComment,jsBlockComment,jsTaggedTemplate,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsStatic,jsSuper,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsCommonJS,jsAssignmentExpr, jsImportContainer,jsExportContainer,jsArgsObj,jsDecorator,jsAsyncKeyword,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs
184
+ syntax cluster jsExpression contains =jsComment,jsLineComment,jsBlockComment,jsTaggedTemplate,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,jsStatic,jsSuper,jsOperator,jsBooleanTrue,jsBooleanFalse,jsNull,jsFunction,jsArrowFunction,jsGlobalObjects,jsExceptions,jsFutureKeys,jsDomErrNo,jsDomNodeConsts,jsHtmlEvents,jsDotNotation,jsBracket,jsParen,jsBlock,jsFuncCall,jsUndefined,jsNan,jsKeyword,jsStorageClass,jsPrototype,jsBuiltins,jsNoise,jsCommonJS,jsImportContainer,jsExportContainer,jsArgsObj,jsDecorator,jsAsyncKeyword,jsClassDefinition,jsArrowFunction,jsArrowFuncArgs
192
185
syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
193
186
syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
194
187
syntax region jsParen matchgroup =jsParens start =" (" end =" )" contains =@jsAll,jsOf,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold extend
@@ -203,12 +196,6 @@ syntax match jsParensErrA contained "\]"
203
196
syntax match jsParensErrB contained " )"
204
197
syntax match jsParensErrC contained " }"
205
198
206
- if main_syntax == " javascript"
207
- syntax sync clear
208
- syntax sync ccomment jsComment minlines =200
209
- syntax sync match jsHighlight grouphere jsBlock / {/
210
- endif
211
-
212
199
syntax match jsFuncArgDestructuring contained / \( {\| }\| =\| :\|\[\|\]\) / extend
213
200
exe ' syntax match jsFunction /\<function\>/ nextgroup=jsGenerator,jsFuncName,jsFuncArgs skipwhite ' .(exists (' g:javascript_conceal_function' ) ? ' conceal cchar=' .g: javascript_conceal_function : ' ' )
214
201
exe ' syntax match jsArrowFunction /=>/ skipwhite nextgroup=jsFuncBlock contains=jsFuncBraces ' .(exists (' g:javascript_conceal_arrow_function' ) ? ' conceal cchar=' .g: javascript_conceal_arrow_function : ' ' )
@@ -221,7 +208,7 @@ syntax match jsFuncArgRest contained /\%(\.\.\.[a-zA-Z_$][0-9a-zA-Z_$]*\))
221
208
syntax match jsFuncArgRestDots contained / \.\.\. /
222
209
223
210
" Matches a single keyword argument with no parens
224
- syntax match jsArrowFuncArgs / \(\k\)\ +\s *\( =>\)\@ =/ skipwhite contains =jsFuncArgs nextgroup =jsArrowFunction extend
211
+ syntax match jsArrowFuncArgs / \k\ +\s *\% (=>\)\@ =/ skipwhite contains =jsFuncArgs nextgroup =jsArrowFunction extend
225
212
" Matches a series of arguments surrounded in parens
226
213
syntax match jsArrowFuncArgs / ([^()]*)\s *\( =>\)\@ =/ skipempty skipwhite contains =jsFuncArgs nextgroup =jsArrowFunction extend
227
214
0 commit comments