Skip to content

Commit f11f948

Browse files
committed
Adding support for block statement labels
1 parent 4839870 commit f11f948

1 file changed

Lines changed: 16 additions & 11 deletions

File tree

syntax/javascript.vim

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -96,19 +96,22 @@ exe 'syntax keyword jsThis this '.(exists('g:javascript_conceal
9696
exe 'syntax keyword jsSuper super contained '.(exists('g:javascript_conceal_super') ? 'conceal cchar='.g:javascript_conceal_super : '')
9797

9898
" Statement Keywords
99-
syntax keyword jsStatement contained break continue with yield debugger
100-
syntax keyword jsConditional if skipwhite skipempty nextgroup=jsParenIfElse
101-
syntax keyword jsConditional else skipwhite skipempty nextgroup=jsCommentMisc,jsIfElseBlock
102-
syntax keyword jsConditional switch skipwhite skipempty nextgroup=jsParenSwitch
103-
syntax keyword jsRepeat while for skipwhite skipempty nextgroup=jsParenRepeat,jsForAwait
104-
syntax keyword jsDo do skipwhite skipempty nextgroup=jsRepeatBlock
99+
syntax keyword jsStatement contained with yield debugger
100+
syntax keyword jsStatement contained break continue skipwhite skipempty nextgroup=jsBlockLabelKey
101+
syntax keyword jsConditional if skipwhite skipempty nextgroup=jsParenIfElse
102+
syntax keyword jsConditional else skipwhite skipempty nextgroup=jsCommentMisc,jsIfElseBlock
103+
syntax keyword jsConditional switch skipwhite skipempty nextgroup=jsParenSwitch
104+
syntax keyword jsRepeat while for skipwhite skipempty nextgroup=jsParenRepeat,jsForAwait
105+
syntax keyword jsDo do skipwhite skipempty nextgroup=jsRepeatBlock
105106
syntax keyword jsLabel contained case default
106-
syntax keyword jsTry try skipwhite skipempty nextgroup=jsTryCatchBlock
107-
syntax keyword jsFinally contained finally skipwhite skipempty nextgroup=jsFinallyBlock
108-
syntax keyword jsCatch contained catch skipwhite skipempty nextgroup=jsParenCatch
107+
syntax keyword jsTry try skipwhite skipempty nextgroup=jsTryCatchBlock
108+
syntax keyword jsFinally contained finally skipwhite skipempty nextgroup=jsFinallyBlock
109+
syntax keyword jsCatch contained catch skipwhite skipempty nextgroup=jsParenCatch
109110
syntax keyword jsException throw
110111
syntax keyword jsAsyncKeyword async await
111-
syntax match jsSwitchColon contained /:/ skipwhite skipempty nextgroup=jsSwitchBlock
112+
syntax match jsSwitchColon contained /:/ skipwhite skipempty nextgroup=jsSwitchBlock
113+
syntax match jsBlockLabel /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\s*:/ contains=jsNoise skipwhite skipempty nextgroup=jsBlock
114+
syntax match jsBlockLabelKey contained /\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\%(\s*\%(;\|\n\)\)\@=/
112115

113116
" Keywords
114117
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 fetch
@@ -230,7 +233,7 @@ if exists("javascript_plugin_flow")
230233
endif
231234

232235
syntax cluster jsExpression contains=jsBracket,jsParen,jsObject,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
233-
syntax cluster jsAll contains=@jsExpression,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry,jsAsyncKeyword,jsNoise
236+
syntax cluster jsAll contains=@jsExpression,jsStorageClass,jsConditional,jsRepeat,jsReturn,jsStatement,jsException,jsTry,jsAsyncKeyword,jsNoise,,jsBlockLabel
234237

235238
" Define the default highlighting.
236239
" For version 5.7 and earlier: only when not done already
@@ -347,6 +350,8 @@ if version >= 508 || !exists("did_javascript_syn_inits")
347350
HiLink jsClassMethodType Type
348351
HiLink jsObjectMethodType Type
349352
HiLink jsClassDefinition jsFuncName
353+
HiLink jsBlockLabel Identifier
354+
HiLink jsBlockLabelKey jsBlockLabel
350355

351356
HiLink jsDestructuringBraces Noise
352357
HiLink jsDestructuringProperty jsFuncArgs

0 commit comments

Comments
 (0)