@@ -11,10 +11,6 @@ if exists('b:current_syntax') && b:current_syntax ==# 'css'
1111 finish
1212endif
1313
14- if ! exists (' b:embedded_rules' ) && main_syntax !=# ' css'
15- syntax clear
16- endif
17-
1814let s: cpo_save = &cpoptions
1915set cpoptions &vim
2016
@@ -32,7 +28,8 @@ syntax match cssBracketError /}\|]/ containedin=ALLBUT,cssComment,cssGridNamedCo
3228syntax match cssBrowserPrefix contained / \% (-webkit-\| -moz-\| -ms-\| -o-\) / nextgroup =cssProp
3329syntax match cssValueNoise contained / ,/
3430
35- syntax match cssAtRule / @\( media\| page\| import\| charset\| namespace\) / skipwhite skipempty nextgroup =cssAtRuleString
31+ syntax match cssAtRule / @\( media\|\| page\| import\| charset\| namespace\) / skipwhite skipempty nextgroup =cssAtRuleString
32+
3633syntax region cssAtRuleString contained start =/ "/ skip =/ \\\\\|\\ "/ end =/ "/ contained skipwhite skipempty oneline nextgroup =cssAtRuleNoise
3734syntax region cssAtRuleString contained start =/ '/ skip =/ \\\\\|\\ '/ end =/ '/ contained skipwhite skipempty oneline nextgroup =cssAtRuleNoise
3835syntax match cssAtRuleNoise / ;/ contained
@@ -52,7 +49,7 @@ syntax match cssClassSelectorDot /\./ contained
5249syntax match cssClassSelectorEscapeChar / \\ / contained
5350
5451syntax match cssPseudoSelector / :\{ 1,2\} / nextgroup =cssPseudoKeyword,cssPseudoFunction,cssPseudoFunctionType
55- syntax match cssPseudoKeyword contained / \< active\| after\| before\| checked\| disabled\| empty\| first-child\| first-letter\| first-line\| first-of-type\| focus-within\| focus\| hover\| input-placeholder\| last-child\| last-line\| last-of-type\| left\| link\| only-child\| only-of-type\| placeholder\| right\| selection\| visited\| scrollbar-track-piece\| scrollbar-button\| scrollbar-corner\| scrollbar\> / nextgroup =@cssSelectors,cssDefinitionBlock skipwhite skipempty
52+ syntax match cssPseudoKeyword contained / \< active\| after\| before\| checked\| disabled\| empty\| first-child\| first-letter\| first-line\| first-of-type\| focus-within\| focus\| hover\| input-placeholder\| last-child\| last-line\| last-of-type\| left\| link\| only-child\| only-of-type\| placeholder\| right\| selection\| visited\| scrollbar-track-piece\| scrollbar-button\| scrollbar-corner\| scrollbar\| root \ >/ nextgroup =@cssSelectors,cssDefinitionBlock skipwhite skipempty
5653
5754syntax region cssPseudoFunction contained start =/ [a-zA-Z0-9-_]\+ (/ end =/ )/ keepend extend nextgroup =@cssSelectors,cssDefinitionBlock skipwhite skipempty contains =cssPseudoFunctionNot,cssPseudoFunctionDir,cssPseudoFunctionLang,cssPseudoFunctionType
5855syntax region cssPseudoFunctionNot contained matchgroup =cssFunctionDelimiters start =/ not(/ end =/ )/ contains =@cssSelectors
@@ -67,11 +64,7 @@ syntax match cssPseudoFunctionTypeOperators contained /\%(+\|-\|n\)/
6764
6865syntax match cssPseudoKeyword contained / \% (-webkit-\| -moz-\| -ms-\| -o-\)\% (input-placeholder\| search-cancel-button\| search-decoration\| focus-inner\| resizer\| placeholder\| inner-spin-button\| outer-spin-button\| expand\| scrollbar-track-piece\| scrollbar-track\| scrollbar-thumb\| scrollbar-button\| scrollbar-corner\| scrollbar\| full-screen\| media-controls-enclosure\| file-upload-button\) / contains =cssBrowserPrefix nextgroup =@cssSelectors,cssDefinitionBlock skipwhite skipempty
6966
70- if exists (' b:embedded_rules' )
71- syntax region cssDefinitionBlock contained matchgroup =cssDefinitionBraces start =/ {/ end =/ }/ extend contains =cssPropDefinition,@cssSelectors,cssMediaDefinition keepend extend fold
72- else
73- syntax region cssDefinitionBlock matchgroup =cssDefinitionBraces start =/ {/ end =/ }/ extend contains =cssPropDefinition keepend fold
74- endif
67+ syntax region cssDefinitionBlock contained matchgroup =cssDefinitionBraces start =/ {/ end =/ }/ extend contains =cssPropDefinition,@cssSelectors,cssMediaDefinition keepend extend fold
7568
7669syntax region cssAttributeSelector matchgroup =cssAttributeSelectorBraces start =/ \[ / end =/ \] / nextgroup =@cssSelectors,cssDefinitionBlock skipwhite skipempty
7770if exists (' b:current_syntax' )
@@ -218,6 +211,10 @@ syntax region cssCalcPrens contained start=/(/ end=/)/ matchgroup=cssFuncDelimit
218211syntax region cssGridNamedColumns matchgroup =cssGridNamedColumnBrackets contained start =/ \[ / end =/ \] / contains =cssColumnName extend keepend
219212syntax match cssColumnName contained / \< [a-zA-Z0-9-]\+\> / extend
220213
214+ syntax match cssLayerComma contained / ,/ skipwhite skipempty nextgroup =cssLayerName
215+ syntax match cssLayerName contained / \k\+ / skipwhite skipempty nextgroup =cssAttrTypes,cssLayerComma,cssAtRuleNoise,cssDefinitionBlock
216+ syntax match cssLayer / @layer/ skipwhite skipempty nextgroup =cssLayerName,cssLayerComma,cssDefinitionBlock
217+
221218" syntax region cssFunction contained start=/\<[a-zA-Z0-9-]\+\>\+(/ end=/)/ contains=cssFuncName keepend
222219syntax match cssFuncName / \< [a-zA-Z0-9-]\+\> (\@ =/ nextgroup =cssFuncArgs,cssFuncUrlArgs,cssFuncVar,cssFuncAttrArgs,cssFuncEffectArgs,cssFuncCalcArgs
223220syntax region cssFuncArgs contained matchgroup =cssFuncDelimiters start =/ (/ end =/ )/ contains =cssFunction,cssString,cssNumber,cssHexColor,cssColor,cssOperators,cssValueNoise,cssFuncCalcArgs,cssFuncName,cssSafeAreaInsets,cssFuncArgs extend keepend
@@ -234,7 +231,7 @@ syntax match cssAttrTypes contained /\%(string\|integer\|color\|url\|integer
234231syntax match cssAttrComma contained / ,/ skipwhite skipempty nextgroup =cssString,cssNumber
235232syntax match cssOperators contained / \% (+\| -\| *\|\/\) /
236233
237- syntax cluster cssSelectors contains =cssTagSelector,cssIDSelector,cssSelectorOperator,cssSelectorSeparator,cssStarSelector,cssClassSelector,cssPseudoSelector,cssAttributeSelector,cssPseudoFunction
234+ syntax cluster cssSelectors contains =cssTagSelector,cssIDSelector,cssSelectorOperator,cssSelectorSeparator,cssStarSelector,cssClassSelector,cssPseudoSelector,cssAttributeSelector,cssPseudoFunction,cssPseudoSelector
238235syntax cluster cssRules contains =cssPropDefinition
239236syntax cluster cssValues contains =cssFunction,cssString,cssNumber,cssHexColor,cssImportant,cssColor,cssValueKeyword,cssValueNoise,cssFuncName,cssGridNamedColumns
240237
@@ -259,13 +256,15 @@ highlight default link cssAtRulePage PreProc
259256highlight default link cssKeyframesDefinition PreProc
260257highlight default link cssFontFaceDefinition PreProc
261258highlight default link cssAtRule PreProc
259+ highlight default link cssLayer PreProc
262260highlight default link cssBrowserPrefix Comment
263261highlight default link cssNumber Number
264262highlight default link cssHexColor Number
265263highlight default link cssTagSelector Statement
266264highlight default link cssPseudoKeyword Special
267265highlight default link cssPagePseudos Special
268266highlight default link cssValueKeyword Constant
267+ highlight default link cssLayerName Constant
269268highlight default link cssColor Constant
270269highlight default link cssUnits Operator
271270highlight default link cssNumberNoise Number
@@ -281,6 +280,7 @@ highlight default link cssFontBlock Constant
281280highlight default link cssFontOperator Operator
282281highlight default link cssValueNoise Noise
283282highlight default link cssKeyframeComma Noise
283+ highlight default link cssLayerComma Noise
284284highlight default link cssAnimationBlock Constant
285285highlight default link cssPageDefinition Constant
286286highlight default link cssKeyframe Constant
0 commit comments