@@ -21,12 +21,12 @@ setlocal iskeyword+=$
2121
2222syntax sync fromstart
2323
24- syntax match jsNoise / \% (: \| , \|\;\|\.\) /
24+ syntax match jsNoise / [:, \;\. ] \{ 1} /
2525
2626" " Program Keywords
2727syntax keyword jsStorageClass const var let
2828syntax keyword jsOperator delete instanceof typeof void new in
29- syntax match jsOperator / \( !\| | \| & \| + \| - \| < \| > \| = \| % \|\/\| * \|\~\|\^\) /
29+ syntax match jsOperator / [ \ !\|\&\+\-\<\>\=\%\/\*\~\^ ] \{ 1} /
3030syntax keyword jsBooleanTrue true
3131syntax keyword jsBooleanFalse false
3232syntax keyword jsModules import export contained
@@ -36,7 +36,7 @@ syntax keyword jsArgsObj arguments
3636
3737syntax region jsImportContainer start =" ^\s\? import \? " end =" ;\| $" contains =jsModules,jsModuleWords,jsLineComment,jsComment,jsStringS,jsStringD,jsTemplateString,jsNoise,jsBlock
3838
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
4040
4141" " JavaScript comments
4242syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
@@ -88,7 +88,7 @@ syntax region jsTemplateVar matchgroup=jsTemplateBraces start=+${+ end=+}+
8888syntax region jsStringD start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@htmlPreproc,@Spell
8989syntax region jsStringS start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@htmlPreproc,@Spell
9090syntax 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
9292syntax region jsRegexpCharClass start =+ \[ + skip =+ \\ .+ end =+ \] + contained
9393syntax match jsRegexpBoundary " \v %(\< @![\^ $]|\\ [bB])" contained
9494syntax match jsRegexpBackRef " \v\\ [1-9][0-9]*" contained
@@ -97,7 +97,7 @@ syntax match jsRegexpOr "\v\<@!\|" contained
9797syntax match jsRegexpMod " \v\( @<=\? [:=!>]" contained
9898syntax cluster jsRegexpSpecial contains =jsSpecial,jsRegexpBoundary,jsRegexpBackRef,jsRegexpQuantifier,jsRegexpOr,jsRegexpMod
9999syntax 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
101101syntax match jsNumber / \< -\=\d\+\( L\| [eE][+-]\=\d\+\)\=\>\|\< 0[xX]\x\+\> /
102102syntax keyword jsNumber Infinity
103103syntax 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
106106syntax match jsDecorator " @" display contains =jsDecoratorFunction nextgroup =jsDecoratorFunction skipwhite
107107syntax match jsDecoratorFunction " [a-zA-Z_][a-zA-Z0-9_.]*" display contained nextgroup =jsFunc skipwhite
108108
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-
115109exe ' syntax keyword jsNull null ' .(exists (' g:javascript_conceal_null' ) ? ' conceal cchar=' .g: javascript_conceal_null : ' ' )
116110exe ' syntax keyword jsReturn return ' .(exists (' g:javascript_conceal_return' ) ? ' conceal cchar=' .g: javascript_conceal_return : ' ' )
117111exe ' syntax keyword jsUndefined undefined ' .(exists (' g:javascript_conceal_undefined' ) ? ' conceal cchar=' .g: javascript_conceal_undefined : ' ' )
@@ -130,8 +124,7 @@ syntax keyword jsKeyword yield
130124syntax keyword jsException try catch throw finally
131125syntax keyword jsAsyncKeyword async await
132126
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
135128
136129syntax keyword jsExceptions Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError
137130
@@ -188,7 +181,7 @@ endif "DOM/HTML/CSS
188181" " end DOM/HTML/CSS specified things
189182
190183" " 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
192185syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
193186syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
194187syntax 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 "\]"
203196syntax match jsParensErrB contained " )"
204197syntax match jsParensErrC contained " }"
205198
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-
212199syntax match jsFuncArgDestructuring contained / \( {\| }\| =\| :\|\[\|\]\) / extend
213200exe ' syntax match jsFunction /\<function\>/ nextgroup=jsGenerator,jsFuncName,jsFuncArgs skipwhite ' .(exists (' g:javascript_conceal_function' ) ? ' conceal cchar=' .g: javascript_conceal_function : ' ' )
214201exe ' 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_$]*\))
221208syntax match jsFuncArgRestDots contained / \.\.\. /
222209
223210" 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
225212" Matches a series of arguments surrounded in parens
226213syntax match jsArrowFuncArgs / ([^()]*)\s *\( =>\)\@ =/ skipempty skipwhite contains =jsFuncArgs nextgroup =jsArrowFunction extend
227214
0 commit comments