@@ -35,7 +35,11 @@ syntax keyword jsOperator delete instanceof typeof void new in
3535syntax match jsOperator / \( !\| |\| &\| +\| -\| <\| >\| =\| %\|\/\| *\|\~\|\^\) /
3636syntax keyword jsBooleanTrue true
3737syntax keyword jsBooleanFalse false
38- syntax keyword jsModules import export default from as
38+ syntax match jsModules / import\| export/
39+ syntax keyword jsModuleWords default from as contained
40+
41+ syntax region jsModuleContainer start =" \( import\| export\) \? " end =" $" contains =jsModuleWords,jsStringS,jsStringD,jsTemplateString,jsModules,jsArrowFunction,jsClass,jsFunction,jsStorageClass,jsOperator
42+
3943
4044" " JavaScript comments
4145syntax keyword jsCommentTodo TODO FIXME XXX TBD contained
@@ -84,7 +88,7 @@ syntax match jsSpecial "\v\\%(0|\\x\x\{2\}\|\\u\x\{4\}\|\c[A-Z]|.)" c
8488syntax match jsTemplateVar " \$ {.\{ -}}" contained
8589syntax region jsStringD start =+ "+ skip =+ \\\( "\| $\) + end =+ "\| $+ contains =jsSpecial,@htmlPreproc,@Spell
8690syntax region jsStringS start =+ '+ skip =+ \\\( '\| $\) + end =+ '\| $+ contains =jsSpecial,@htmlPreproc,@Spell
87- syntax region jsTemplateString start =+ `+ skip =+ \\\( `\| $\) + end =+ `\| $ + contains =jsTemplateVar,jsSpecial,@htmlPreproc
91+ syntax region jsTemplateString start =+ `+ skip =+ \\\( `\| $\) + end =+ `+ contains =jsTemplateVar,jsSpecial,@htmlPreproc
8892syntax region jsRegexpCharClass start =+ \[ + skip =+ \\ .+ end =+ \] + contained
8993syntax match jsRegexpBoundary " \v %(\< @![\^ $]|\\ [bB])" contained
9094syntax match jsRegexpBackRef " \v\\ [1-9][0-9]*" contained
@@ -179,9 +183,8 @@ endif "DOM/HTML/CSS
179183
180184" " end DOM/HTML/CSS specified things
181185
182-
183186" " Code blocks
184- syntax cluster jsExpression contains =jsComment,jsLineComment,jsBlockComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,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,jsModules
187+ syntax cluster jsExpression contains =jsComment,jsLineComment,jsBlockComment,jsTemplateString,jsStringD,jsStringS,jsRegexpString,jsNumber,jsFloat,jsThis,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,jsModuleContainer
185188syntax cluster jsAll contains =@jsExpression,jsLabel,jsConditional,jsRepeat,jsReturn,jsStatement,jsTernaryIf,jsException
186189syntax region jsBracket matchgroup =jsBrackets start =" \[ " end =" \] " contains =@jsAll,jsParensErrB,jsParensErrC,jsBracket,jsParen,jsBlock,@htmlPreproc fold
187190syntax region jsParen matchgroup =jsParens start =" (" end =" )" contains =@jsAll,jsParensErrA,jsParensErrC,jsParen,jsBracket,jsBlock,@htmlPreproc fold
@@ -290,6 +293,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
290293 HiLink jsFutureKeys Special
291294 HiLink jsBuiltins Special
292295 HiLink jsModules Include
296+ HiLink jsModuleWords Include
293297
294298 HiLink jsDomErrNo Constant
295299 HiLink jsDomNodeConsts Constant
0 commit comments