Skip to content

Commit 854d431

Browse files
authored
Merge pull request pangloss#635 from pangloss/async-await
First pass at improved async/await support
2 parents a50df5f + a59f5cb commit 854d431

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

syntax/javascript.vim

+7-5
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ syntax match jsObjectSeparator contained /,/
8484
syntax region jsObjectValue contained start=/:/ end=/\%(,\|}\)\@=/ contains=jsObjectColon,@jsExpression extend
8585
syntax match jsObjectFuncName contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>[\r\n\t ]*(\@=/ skipwhite skipempty nextgroup=jsFuncArgs
8686
syntax match jsFunctionKey contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s*:\s*function\s*\)\@=/
87-
syntax match jsObjectMethodType contained /\%(get\|set\|static\|async\)\%( \k\+\)\@=/ skipwhite skipempty nextgroup=jsObjectFuncName
87+
syntax match jsObjectMethodType contained /\%(get\|set\|static\|async\)\%( \k\+\)\@=/ contains=jsAsyncKeyword skipwhite skipempty nextgroup=jsObjectFuncName
8888
syntax region jsObjectStringKey contained start=+"+ skip=+\\\("\|$\)+ end=+"\|$+ contains=jsSpecial,@Spell extend skipwhite skipempty nextgroup=jsFuncArgs,jsObjectValue
8989
syntax region jsObjectStringKey contained start=+'+ skip=+\\\('\|$\)+ end=+'\|$+ contains=jsSpecial,@Spell extend skipwhite skipempty nextgroup=jsFuncArgs,jsObjectValue
9090

@@ -108,7 +108,8 @@ syntax keyword jsTry try skipwhite skipempty nextgro
108108
syntax keyword jsFinally contained finally skipwhite skipempty nextgroup=jsFinallyBlock
109109
syntax keyword jsCatch contained catch skipwhite skipempty nextgroup=jsParenCatch
110110
syntax keyword jsException throw
111-
syntax keyword jsAsyncKeyword async await
111+
syntax keyword jsAsyncKeyword async skipwhite skipempty nextgroup=jsFunction,jsFuncName
112+
syntax keyword jsAwaitKeyword await
112113
syntax match jsSwitchColon contained /:/ skipwhite skipempty nextgroup=jsSwitchBlock
113114

114115
" Keywords
@@ -176,7 +177,7 @@ exe 'syntax match jsArrowFunction /=>/ skipwhite skipempty nextgroup=jsFunc
176177
" Classes
177178
syntax keyword jsClassKeywords contained extends class
178179
syntax match jsClassNoise contained /\./
179-
syntax match jsClassMethodType contained /\%(get\|set\|static\|async\)\%( \k\+\)\@=/ skipwhite skipempty nextgroup=jsFuncName,jsClassProperty
180+
syntax match jsClassMethodType contained /\%(get\|set\|static\|async\)\%( \k\+\)\@=/ contains=jsAsyncKeyword skipwhite skipempty nextgroup=jsFuncName,jsClassProperty
180181
syntax match jsClassDefinition /\<class\>\%( [a-zA-Z_$][0-9a-zA-Z_$ \n.]*\)*/ contains=jsClassKeywords,jsClassNoise skipwhite skipempty nextgroup=jsCommentClass,jsClassBlock,jsFlowClassGroup
181182
syntax match jsClassProperty contained /\<[0-9a-zA-Z_$]*\>\(\s*=\)\@=/ skipwhite skipempty nextgroup=jsClassValue
182183
syntax region jsClassValue contained start=/=/ end=/\%(;\|}\|\n\)\@=/ contains=@jsExpression
@@ -226,8 +227,8 @@ if exists("javascript_plugin_flow")
226227
runtime extras/flow.vim
227228
endif
228229

229-
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,jsDo
230-
syntax cluster jsAll contains=@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry,jsAsyncKeyword
230+
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,jsDo,jsAsyncKeyword,jsAwaitKeyword
231+
syntax cluster jsAll contains=@jsExpression,jsExportContainer,jsImportContainer,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry
231232

232233
" Define the default highlighting.
233234
" For version 5.7 and earlier: only when not done already
@@ -275,6 +276,7 @@ if version >= 508 || !exists("did_javascript_syn_inits")
275276
HiLink jsFinally Exception
276277
HiLink jsCatch Exception
277278
HiLink jsAsyncKeyword Keyword
279+
HiLink jsAwaitKeyword Keyword
278280
HiLink jsArrowFunction Type
279281
HiLink jsFunction Type
280282
HiLink jsGenerator jsFunction

0 commit comments

Comments
 (0)