Skip to content

Commit 615f837

Browse files
committed
Add more specialized groups for the various braces
Similar to the parens from the previous commit, this will allow users to customize the look of various types of braces rather than having to go all-in on non-function braces. ------------------------------------------------------------------------------ Actions: * Fix #589
1 parent 355d665 commit 615f837

File tree

1 file changed

+20
-10
lines changed

1 file changed

+20
-10
lines changed

syntax/javascript.vim

+20-10
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,12 @@ syntax keyword jsModuleKeywords contained import
4141
syntax keyword jsModuleKeywords contained export skipwhite skipempty nextgroup=jsExportBlock,jsModuleDefault
4242
syntax keyword jsModuleOperators contained from
4343
syntax keyword jsModuleOperators contained as
44-
syntax region jsModuleGroup contained matchgroup=jsBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise,jsComment
44+
syntax region jsModuleGroup contained matchgroup=jsModuleBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise,jsComment
4545
syntax match jsModuleAsterisk contained /*/
4646
syntax keyword jsModuleDefault contained default skipwhite skipempty nextgroup=@jsExpression
4747
syntax region jsImportContainer start=/\<import\> / end="\%(;\|$\)" contains=jsModuleKeywords,jsModuleOperators,jsComment,jsString,jsTemplateString,jsNoise,jsModuleGroup,jsModuleAsterisk
4848
syntax region jsExportContainer start=/\<export\> / end="\%(;\|$\)" contains=jsModuleKeywords,jsModuleOperators,jsStorageClass,jsModuleDefault,@jsExpression
49-
syntax region jsExportBlock contained matchgroup=jsBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise,jsComment
49+
syntax region jsExportBlock contained matchgroup=jsExportBraces start=/{/ end=/}/ contains=jsModuleOperators,jsNoise,jsComment
5050

5151
" Strings, Templates, Numbers
5252
syntax region jsString start=+"+ skip=+\\\("\|$\)+ end=+"\|$+ contains=jsSpecial,@Spell extend
@@ -98,17 +98,17 @@ exe 'syntax keyword jsSuper super contained '.(exists('g:javascript_conceal
9898
" Statement Keywords
9999
syntax keyword jsStatement contained break continue with yield debugger
100100
syntax keyword jsConditional if skipwhite skipempty nextgroup=jsParenIfElse
101-
syntax keyword jsConditional else skipwhite skipempty nextgroup=jsCommentMisc,jsBlock
101+
syntax keyword jsConditional else skipwhite skipempty nextgroup=jsCommentMisc,jsIfElseBlock
102102
syntax keyword jsConditional switch skipwhite skipempty nextgroup=jsParenSwitch
103103
syntax keyword jsRepeat while for skipwhite skipempty nextgroup=jsParenRepeat
104-
syntax keyword jsDo do skipwhite skipempty nextgroup=jsBlock
104+
syntax keyword jsDo do skipwhite skipempty nextgroup=jsRepeatBlock
105105
syntax keyword jsLabel contained case default
106106
syntax keyword jsTry try skipwhite skipempty nextgroup=jsTryCatchBlock
107-
syntax keyword jsFinally contained finally skipwhite skipempty nextgroup=jsBlock
107+
syntax keyword jsFinally contained finally skipwhite skipempty nextgroup=jsFinallyBlock
108108
syntax keyword jsCatch contained catch skipwhite skipempty nextgroup=jsParenCatch
109109
syntax keyword jsException throw
110110
syntax keyword jsAsyncKeyword async await
111-
syntax match jsSwitchColon contained /:/ skipwhite skipempty nextgroup=jsBlock
111+
syntax match jsSwitchColon contained /:/ skipwhite skipempty nextgroup=jsSwitchBlock
112112

113113
" Keywords
114114
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
@@ -136,16 +136,19 @@ syntax keyword jsHtmlEvents onblur onclick oncontextmenu ondblclick onfocus
136136
"" Code blocks
137137
syntax region jsBracket matchgroup=jsBrackets start=/\[/ end=/\]/ contains=@jsExpression extend fold
138138
syntax region jsParen matchgroup=jsParens start=/(/ end=/)/ contains=@jsAll extend fold
139-
syntax region jsParenIfElse contained matchgroup=jsParensIfElse start=/(/ end=/)/ contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsBlock extend fold
140-
syntax region jsParenRepeat contained matchgroup=jsParensRepeat start=/(/ end=/)/ contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsBlock extend fold
139+
syntax region jsParenIfElse contained matchgroup=jsParensIfElse start=/(/ end=/)/ contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsIfElseBlock extend fold
140+
syntax region jsParenRepeat contained matchgroup=jsParensRepeat start=/(/ end=/)/ contains=@jsAll skipwhite skipempty nextgroup=jsCommentMisc,jsRepeatBlock extend fold
141141
syntax region jsParenSwitch contained matchgroup=jsParensSwitch start=/(/ end=/)/ contains=@jsAll skipwhite skipempty nextgroup=jsSwitchBlock extend fold
142142
syntax region jsParenCatch contained matchgroup=jsParensCatch start=/(/ end=/)/ skipwhite skipempty nextgroup=jsTryCatchBlock extend fold
143143
syntax region jsFuncArgs contained matchgroup=jsFuncParens start=/(/ end=/)/ contains=jsFuncArgCommas,jsComment,jsFuncArgExpression,jsDestructuringBlock,jsRestExpression,jsFlowArgumentDef skipwhite skipempty nextgroup=jsCommentFunction,jsFuncBlock,jsFlowReturn extend fold
144144
syntax region jsClassBlock contained matchgroup=jsClassBraces start=/{/ end=/}/ contains=jsClassFuncName,jsClassMethodType,jsArrowFunction,jsArrowFuncArgs,jsComment,jsGenerator,jsDecorator,jsClassProperty,jsClassPropertyComputed,jsClassStringKey,jsNoise extend fold
145145
syntax region jsFuncBlock contained matchgroup=jsFuncBraces start=/{/ end=/}/ contains=@jsAll extend fold
146+
syntax region jsIfElseBlock contained matchgroup=jsIfElseBraces start=/{/ end=/}/ contains=@jsAll extend fold
146147
syntax region jsBlock contained matchgroup=jsBraces start=/{/ end=/}/ contains=@jsAll extend fold
147-
syntax region jsTryCatchBlock contained matchgroup=jsBraces start=/{/ end=/}/ contains=@jsAll skipwhite skipempty nextgroup=jsCatch,jsFinally extend fold
148-
syntax region jsSwitchBlock contained matchgroup=jsBraces start=/{/ end=/}/ contains=@jsAll,jsLabel,jsSwitchColon extend fold
148+
syntax region jsTryCatchBlock contained matchgroup=jsTryCatchBraces start=/{/ end=/}/ contains=@jsAll skipwhite skipempty nextgroup=jsCatch,jsFinally extend fold
149+
syntax region jsFinallyBlock contained matchgroup=jsFinallyBraces start=/{/ end=/}/ contains=@jsAll extend fold
150+
syntax region jsSwitchBlock contained matchgroup=jsSwitchBraces start=/{/ end=/}/ contains=@jsAll,jsLabel,jsSwitchColon extend fold
151+
syntax region jsRepeatBlock contained matchgroup=jsRepeatBraces start=/{/ end=/}/ contains=@jsAll extend fold
149152
syntax region jsDestructuringBlock contained matchgroup=jsDestructuringBraces start=/{/ end=/}/ contains=jsDestructuringProperty,jsDestructuringAssignment,jsDestructuringNoise,jsDestructuringPropertyComputed,jsSpreadExpression extend fold
150153
syntax region jsDestructuringArray contained matchgroup=jsDestructuringBraces start=/\[/ end=/\]/ contains=jsDestructuringPropertyValue,jsNoise,jsDestructuringProperty,jsSpreadExpression extend fold
151154
syntax region jsObject matchgroup=jsObjectBraces start=/{/ end=/}/ contains=jsObjectKey,jsObjectKeyString,jsObjectKeyComputed,jsObjectSeparator,jsObjectFuncName,jsObjectMethodType,jsGenerator,jsComment,jsObjectStringKey,jsSpreadExpression extend fold
@@ -299,8 +302,15 @@ if version >= 508 || !exists("did_javascript_syn_inits")
299302
HiLink jsFuncParens Noise
300303
HiLink jsClassBraces Noise
301304
HiLink jsClassNoise Noise
305+
HiLink jsIfElseBraces jsBraces
306+
HiLink jsTryCatchBraces jsBraces
307+
HiLink jsModuleBraces jsBraces
302308
HiLink jsObjectBraces Noise
303309
HiLink jsObjectSeparator Noise
310+
HiLink jsFinallyBraces jsBraces
311+
HiLink jsRepeatBraces jsBraces
312+
HiLink jsSwitchBraces jsBraces
313+
HiLink jsExportBraces jsBraces
304314
HiLink jsSpecial Special
305315
HiLink jsTemplateVar Special
306316
HiLink jsTemplateBraces jsBraces

0 commit comments

Comments
 (0)