From: DuckAfire <155199080+duckafire@users.noreply.github.com> Date: Fri, 13 Feb 2026 08:02:28 +0000 (+0100) Subject: runtime(css): Add missing numeric units X-Git-Tag: v9.1.2148~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1cf38bfebeeb322a8437a7c1fd12506661bbfa82;p=thirdparty%2Fvim.git runtime(css): Add missing numeric units - Add missing numeric units to css syntax script (baseline 2015, 2020, 2022, 2023, 2026): dvb, dvh, dvi, dvmax, dvmin, dvw ic, lvb, lvh, lvi, lvmax, lvmin, lvw, svb, svh, svi, svmax, svmin, svw, vb, vi, x, cap, lh, rlh, rcap, rch, rex, ric closes: #19325 Signed-off-by: DuckAfire <155199080+duckafire@users.noreply.github.com> Signed-off-by: Christian Brabandt --- diff --git a/runtime/syntax/css.vim b/runtime/syntax/css.vim index da3f3c73f1..3f28717959 100644 --- a/runtime/syntax/css.vim +++ b/runtime/syntax/css.vim @@ -8,7 +8,9 @@ " URL: https://github.com/vim-language-dept/css-syntax.vim " Maintainer: Jay Sitter " Last Change: 2024 Mar 2 +" Changelog: " 2025 Nov 11: improve support for cssBoxProperties #18717 +" 2026 Feb 13: add missing numeric units (baseline 2015, 2020, 2022, 2023, 2026) #19325 " quit when a syntax file was already loaded if !exists("main_syntax") @@ -71,12 +73,14 @@ endtry " digits syn match cssValueInteger contained "[-+]\=\d\+" contains=cssUnitDecorators -syn match cssValueNumber contained "[-+]\=\d\+\(\.\d*\)\=" contains=cssUnitDecorators -syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(mm\|cm\|in\|pt\|pc\|em\|ex\|px\|rem\|dpi\|dppx\|dpcm\|fr\|vw\|vh\|vmin\|vmax\|ch\)\>" contains=cssUnitDecorators -syn match cssValueLength contained "[-+]\=\d\+\(\.\d*\)\=%" contains=cssUnitDecorators -syn match cssValueAngle contained "[-+]\=\d\+\(\.\d*\)\=\(deg\|grad\|rad\)\>" contains=cssUnitDecorators -syn match cssValueTime contained "+\=\d\+\(\.\d*\)\=\(ms\|s\)\>" contains=cssUnitDecorators -syn match cssValueFrequency contained "+\=\d\+\(\.\d*\)\=\(Hz\|kHz\)\>" contains=cssUnitDecorators +syn match cssValueNumber contained "[-+]\=\d\+\%(\.\d*\)\=" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\%(\.\d*\)\=\%(mm\|cm\|in\|pt\|pc\|px\|dpi\|dppx\|dpcm\|fr\|Q\|x\)\>" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\%(\.\d*\)\=r\=\%(em\|ex\|cap\|lh\|ch\|ic\)\>" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\%(\.\d*\)\=[dls]\=\%(vb\|vh\|vi\|vmax\|vmin\|vw\)\>" contains=cssUnitDecorators +syn match cssValueLength contained "[-+]\=\d\+\%(\.\d*\)\=%" contains=cssUnitDecorators +syn match cssValueAngle contained "[-+]\=\d\+\%(\.\d*\)\=\%(deg\|grad\|rad\|turn\)\>" contains=cssUnitDecorators +syn match cssValueTime contained "+\=\d\+\%(\.\d*\)\=\%(ms\|s\)\>" contains=cssUnitDecorators +syn match cssValueFrequency contained "+\=\d\+\%(\.\d*\)\=\%(Hz\|kHz\)\>" contains=cssUnitDecorators " The 16 basic color names syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon navy olive purple red silver teal yellow @@ -85,23 +89,23 @@ syn keyword cssColor contained aqua black blue fuchsia gray green lime maroon na syn keyword cssColor contained aliceblue antiquewhite aquamarine azure syn keyword cssColor contained beige bisque blanchedalmond blueviolet brown burlywood syn keyword cssColor contained cadetblue chartreuse chocolate coral cornflowerblue cornsilk crimson cyan -syn match cssColor contained /\/ -syn match cssColor contained /\/ -syn match cssColor contained /\/ -syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ syn keyword cssColor contained deeppink deepskyblue dimgray dimgrey dodgerblue firebrick syn keyword cssColor contained floralwhite forestgreen gainsboro ghostwhite gold syn keyword cssColor contained goldenrod greenyellow grey honeydew hotpink syn keyword cssColor contained indianred indigo ivory khaki lavender lavenderblush lawngreen syn keyword cssColor contained lemonchiffon limegreen linen magenta -syn match cssColor contained /\/ -syn match cssColor contained /\/ -syn match cssColor contained /\/ -syn match cssColor contained /\/ -syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ +syn match cssColor contained /\/ syn keyword cssColor contained midnightblue mintcream mistyrose moccasin navajowhite syn keyword cssColor contained oldlace olivedrab orange orangered orchid -syn match cssColor contained /\/ +syn match cssColor contained /\/ syn keyword cssColor contained papayawhip peachpuff peru pink plum powderblue syn keyword cssColor contained rosybrown royalblue rebeccapurple saddlebrown salmon syn keyword cssColor contained sandybrown seagreen seashell sienna skyblue slateblue @@ -126,25 +130,25 @@ syn match cssColor contained "#\x\{3,4\}\>" contains=cssUnitDecorators syn match cssColor contained "#\x\{6\}\>" contains=cssUnitDecorators syn match cssColor contained "#\x\{8\}\>" contains=cssUnitDecorators -syn region cssURL contained matchgroup=cssFunctionName start="\<\(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline +syn region cssURL contained matchgroup=cssFunctionName start="\<\%(uri\|url\|local\|format\)\s*(" end=")" contains=cssStringQ,cssStringQQ oneline syn region cssMathGroup contained matchgroup=cssMathParens start="(" end=")" containedin=cssFunction,cssMathGroup contains=cssCustomProp,cssValue.*,cssFunction,cssColor,cssStringQ,cssStringQQ oneline -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssURL,cssColor,cssStringQ,cssStringQQ oneline -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(linear-\|radial-\|conic-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(matrix\(3d\)\=\|scale\(3d\|X\|Y\|Z\)\=\|translate\(3d\|X\|Y\|Z\)\=\|skew\(X\|Y\)\=\|rotate\(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma -syn region cssFunction contained matchgroup=cssFunctionName start="\<\(blur\|brightness\|contrast\|drop-shadow\|grayscale\|hue-rotate\|invert\|opacity\|saturate\|sepia\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\%(var\|calc\)\s*(" end=")" contains=cssCustomProp,cssValue.*,cssFunction,cssURL,cssColor,cssStringQ,cssStringQQ oneline +syn region cssFunction contained matchgroup=cssFunctionName start="\<\%(rgb\|clip\|attr\|counter\|rect\|cubic-bezier\|steps\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\%(rgba\|hsl\|hsla\|color-stop\|from\|to\)\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunctionComma,cssFunction +syn region cssFunction contained matchgroup=cssFunctionName start="\<\%(linear-\|radial-\|conic-\)\=\gradient\s*(" end=")" oneline contains=cssColor,cssValueInteger,cssValueNumber,cssValueLength,cssFunction,cssGradientAttr,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\%(matrix\%(3d\)\=\|scale\%(3d\|X\|Y\|Z\)\=\|translate\%(3d\|X\|Y\|Z\)\=\|skew\%(X\|Y\)\=\|rotate\%(3d\|X\|Y\|Z\)\=\|perspective\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma +syn region cssFunction contained matchgroup=cssFunctionName start="\<\%(blur\|brightness\|contrast\|drop-shadow\|grayscale\|hue-rotate\|invert\|opacity\|saturate\|sepia\)\s*(" end=")" oneline contains=cssValueInteger,cssValueNumber,cssValueLength,cssValueAngle,cssFunctionComma syn keyword cssGradientAttr contained top bottom left right cover center middle ellipse at syn match cssFunctionComma contained "," " Common Prop and Attr syn keyword cssCommonAttr contained auto none inherit all default normal syn keyword cssCommonAttr contained top bottom center stretch hidden visible -syn match cssCommonAttr contained "\<\(max-\|min-\|fit-\)content\>" +syn match cssCommonAttr contained "\<\%(max-\|min-\|fit-\)content\>" "------------------------------------------------ " CSS Animations " http://www.w3.org/TR/css3-animations/ -syn match cssAnimationProp contained "\" +syn match cssAnimationProp contained "\" " animation-direction attributes syn keyword cssAnimationAttr contained alternate reverse @@ -161,7 +165,7 @@ syn keyword cssAnimationAttr contained infinite "------------------------------------------------ " CSS Backgrounds and Borders Module Level 3 " http://www.w3.org/TR/css3-background/ -syn match cssBackgroundProp contained "\" +syn match cssBackgroundProp contained "\" " background-attachment attributes syn keyword cssBackgroundAttr contained scroll fixed local @@ -170,16 +174,16 @@ syn keyword cssBackgroundAttr contained left center right top bottom " background-repeat attributes syn match cssBackgroundAttr contained "\" -syn match cssBackgroundAttr contained "\" +syn match cssBackgroundAttr contained "\" " background-size attributes syn keyword cssBackgroundAttr contained cover contain -syn match cssBorderProp contained "\" -syn match cssBorderProp contained "\" -syn match cssBorderProp contained "\" -syn match cssBorderProp contained "\" -syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" +syn match cssBorderProp contained "\" syn match cssBorderProp contained "\" syn match cssBorderProp contained "\" @@ -196,13 +200,13 @@ syn keyword cssBorderAttr contained thin thick medium syn keyword cssBorderAttr contained clone slice "------------------------------------------------ -syn match cssBoxProp contained "\" -syn match cssBoxProp contained "\" -syn match cssBoxProp contained "\<\(margin\|padding\)\(-\(inline\|block\)\(-\(start\|end\)\)\=\)\=\>" -syn match cssBoxProp contained "\" -syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\<\%(margin\|padding\)\%(-\%(inline\|block\)\%(-\%(start\|end\)\)\=\)\=\>" +syn match cssBoxProp contained "\" +syn match cssBoxProp contained "\" syn keyword cssBoxAttr contained visible hidden scroll auto -syn match cssBoxAttr contained "\" +syn match cssBoxAttr contained "\" syn keyword cssCascadeProp contained all syn keyword cssCascadeAttr contained initial unset revert @@ -212,7 +216,7 @@ syn match cssColorProp contained "\" syn match cssColorProp contained "\" -syn match cssDimensionProp contained "\<\(min\|max\)-\(width\|height\)\>" +syn match cssDimensionProp contained "\<\%(min\|max\)-\%(width\|height\)\>" syn keyword cssDimensionProp contained height syn keyword cssDimensionProp contained width @@ -220,32 +224,32 @@ syn keyword cssDimensionProp contained width " http://www.w3.org/TR/css3-flexbox/ " CSS Box Alignment Module Level 3 " http://www.w3.org/TR/css-align-3/ -syn match cssFlexibleBoxProp contained "\" -syn match cssFlexibleBoxProp contained "\<\(align\|justify\)\(-\(items\|self\|content\)\)\=\>" +syn match cssFlexibleBoxProp contained "\" +syn match cssFlexibleBoxProp contained "\<\%(align\|justify\)\%(-\%(items\|self\|content\)\)\=\>" syn keyword cssFlexibleBoxProp contained order -syn match cssFlexibleBoxAttr contained "\<\(row\|column\|wrap\)\(-reverse\)\=\>" +syn match cssFlexibleBoxAttr contained "\<\%(row\|column\|wrap\)\%(-reverse\)\=\>" syn keyword cssFlexibleBoxAttr contained nowrap stretch baseline center -syn match cssFlexibleBoxAttr contained "\" -syn match cssFlexibleBoxAttr contained "\" +syn match cssFlexibleBoxAttr contained "\" +syn match cssFlexibleBoxAttr contained "\" " CSS Fonts Module Level 3 " http://www.w3.org/TR/css-fonts-3/ -syn match cssFontProp contained "\" +syn match cssFontProp contained "\" " font attributes syn keyword cssFontAttr contained icon menu caption syn match cssFontAttr contained "\" syn match cssFontAttr contained "\" syn keyword cssFontAttr contained larger smaller -syn match cssFontAttr contained "\<\(x\{1,2\}-\)\=\(large\|small\)\>" -syn match cssFontAttr contained "\" +syn match cssFontAttr contained "\<\%(x\{1,2\}-\)\=\%(large\|small\)\>" +syn match cssFontAttr contained "\" " font-family attributes syn keyword cssFontAttr contained sans-serif serif cursive fantasy monospace " font-feature-settings attributes syn keyword cssFontAttr contained on off " font-stretch attributes -syn match cssFontAttr contained "\<\(\(ultra\|extra\|semi\)-\)\=\(condensed\|expanded\)\>" +syn match cssFontAttr contained "\<\%(\%(ultra\|extra\|semi\)-\)\=\%(condensed\|expanded\)\>" " font-style attributes syn keyword cssFontAttr contained italic oblique " font-synthesis attributes @@ -259,89 +263,89 @@ syn keyword cssFontAttr contained auto block swap fallback optional " Webkit specific property/attributes syn match cssFontProp contained "\" -syn match cssFontAttr contained "\<\(subpixel-\)\=\antialiased\>" +syn match cssFontAttr contained "\<\%(subpixel-\)\=\antialiased\>" " CSS Multi-column Layout Module " http://www.w3.org/TR/css3-multicol/ -syn match cssMultiColumnProp contained "\" -syn match cssMultiColumnProp contained "\" +syn match cssMultiColumnProp contained "\" +syn match cssMultiColumnProp contained "\" syn keyword cssMultiColumnProp contained columns syn keyword cssMultiColumnAttr contained balance medium syn keyword cssMultiColumnAttr contained always left right page column -syn match cssMultiColumnAttr contained "\" +syn match cssMultiColumnAttr contained "\" " http://www.w3.org/TR/css3-break/#page-break -syn match cssMultiColumnProp contained "\" +syn match cssMultiColumnProp contained "\" " http://www.w3.org/TR/SVG11/interact.html syn match cssInteractProp contained "\" -syn match cssInteractAttr contained "\<\(visible\)\=\(Painted\|Fill\|Stroke\)\=\>" +syn match cssInteractAttr contained "\<\%(visible\)\=\%(Painted\|Fill\|Stroke\)\=\>" " TODO find following items in w3c docs. syn keyword cssGeneratedContentProp contained quotes crop -syn match cssGeneratedContentProp contained "\" +syn match cssGeneratedContentProp contained "\" syn match cssGeneratedContentProp contained "\" syn match cssGeneratedContentProp contained "\" -syn match cssGeneratedContentAttr contained "\<\(no-\)\=\(open\|close\)-quote\>" +syn match cssGeneratedContentAttr contained "\<\%(no-\)\=\%(open\|close\)-quote\>" " https://www.w3.org/TR/css-grid-1/ syn match cssGridProp contained "\" -syn match cssGridProp contained "\" -syn match cssGridProp contained "\<\(grid-\)\=\(column\|row\)\(-\(start\|end\|gap\)\)\=\>" -syn match cssGridProp contained "\" +syn match cssGridProp contained "\" +syn match cssGridProp contained "\<\%(grid-\)\=\%(column\|row\)\%(-\%(start\|end\|gap\)\)\=\>" +syn match cssGridProp contained "\" syn match cssGridProp contained "\" -syn match cssGridProp contained "\" +syn match cssGridProp contained "\" -syn match cssHyerlinkProp contained "\" +syn match cssHyerlinkProp contained "\" -syn match cssListProp contained "\" -syn match cssListAttr contained "\<\(lower\|upper\)-\(roman\|alpha\|greek\|latin\)\>" -syn match cssListAttr contained "\<\(hiragana\|katakana\)\(-iroha\)\=\>" -syn match cssListAttr contained "\<\(decimal\(-leading-zero\)\=\|cjk-ideographic\)\>" +syn match cssListProp contained "\" +syn match cssListAttr contained "\<\%(lower\|upper\)-\%(roman\|alpha\|greek\|latin\)\>" +syn match cssListAttr contained "\<\%(hiragana\|katakana\)\%(-iroha\)\=\>" +syn match cssListAttr contained "\<\%(decimal\%(-leading-zero\)\=\|cjk-ideographic\)\>" syn keyword cssListAttr contained disc circle square hebrew armenian georgian syn keyword cssListAttr contained inside outside " object-fit https://www.w3.org/TR/css-images-3/#the-object-fit -syn match cssObjectProp contained "\" +syn match cssObjectProp contained "\" syn keyword cssObjectAttr contained fill contain cover scale-down syn keyword cssPositioningProp contained bottom clear clip display float left syn keyword cssPositioningProp contained position right top visibility syn match cssPositioningProp contained "\" syn keyword cssPositioningAttr contained block compact grid -syn match cssPositioningAttr contained "\" +syn match cssPositioningAttr contained "\" syn keyword cssPositioningAttr contained left right both syn match cssPositioningAttr contained "\" -syn match cssPositioningAttr contained "\" -syn match cssPositioningAttr contained "\" +syn match cssPositioningAttr contained "\" +syn match cssPositioningAttr contained "\" syn keyword cssPositioningAttr contained static relative absolute fixed subgrid sticky syn keyword cssPrintAttr contained landscape portrait crop cross always -syn match cssTableProp contained "\<\(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" +syn match cssTableProp contained "\<\%(caption-side\|table-layout\|border-collapse\|border-spacing\|empty-cells\)\>" syn keyword cssTableAttr contained fixed collapse separate show hide once always syn keyword cssTextProp contained color direction hyphens -syn match cssTextProp "\<\(\(word\|letter\)-spacing\|text\(-\(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" -syn match cssTextProp contained "\" -syn match cssTextProp contained "\<\(word\|line\)-break\|\(overflow\|word\)-wrap\>" +syn match cssTextProp "\<\%(\%(word\|letter\)-spacing\|text\%(-\%(decoration\|transform\|align\|index\|shadow\)\)\=\|vertical-align\|unicode-bidi\|line-height\)\>" +syn match cssTextProp contained "\" +syn match cssTextProp contained "\<\%(word\|line\)-break\|\%(overflow\|word\)-wrap\>" syn match cssTextProp contained "\" syn match cssTextProp contained "\" syn match cssTextProp contained "\" syn match cssTextProp contained "\" syn match cssTextAttr contained "\" -syn match cssTextAttr contained "\<\(text-\)\=\(top\|bottom\)\>" +syn match cssTextAttr contained "\<\%(text-\)\=\%(top\|bottom\)\>" syn keyword cssTextAttr contained ltr rtl embed nowrap syn keyword cssTextAttr contained underline overline blink sub super middle syn keyword cssTextAttr contained capitalize uppercase lowercase syn keyword cssTextAttr contained justify baseline sub super syn keyword cssTextAttr contained optimizeLegibility optimizeSpeed geometricPrecision -syn match cssTextAttr contained "\" -syn match cssTextAttr contained "\<\(allow\|force\)-end\>" +syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\<\%(allow\|force\)-end\>" syn keyword cssTextAttr contained start end adjacent -syn match cssTextAttr contained "\" +syn match cssTextAttr contained "\" syn keyword cssTextAttr contained distribute kashida first last syn keyword cssTextAttr contained clip ellipsis unrestricted suppress syn match cssTextAttr contained "\" @@ -349,40 +353,40 @@ syn match cssTextAttr contained "\" syn keyword cssTextAttr contained manual syn match cssTextAttr contained "\" -syn match cssTransformProp contained "\" -syn match cssTransformProp contained "\" +syn match cssTransformProp contained "\" +syn match cssTransformProp contained "\" syn match cssTransformProp contained "\" " CSS Transitions " http://www.w3.org/TR/css3-transitions/ -syn match cssTransitionProp contained "\" +syn match cssTransitionProp contained "\" " transition-time-function attributes -syn match cssTransitionAttr contained "\" -syn match cssTransitionAttr contained "\" -syn match cssTransitionAttr contained "\" +syn match cssTransitionAttr contained "\" +syn match cssTransitionAttr contained "\" +syn match cssTransitionAttr contained "\" "------------------------------------------------ " CSS Basic User Interface Module Level 3 (CSS3 UI) " http://www.w3.org/TR/css3-ui/ syn match cssUIProp contained "\" -syn match cssUIAttr contained "\<\(content\|padding\|border\)\(-box\)\=\>" +syn match cssUIAttr contained "\<\%(content\|padding\|border\)\%(-box\)\=\>" syn keyword cssUIProp contained cursor -syn match cssUIAttr contained "\<\(\([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>" +syn match cssUIAttr contained "\<\%(\%([ns]\=[ew]\=\)\|col\|row\|nesw\|nwse\)-resize\>" syn keyword cssUIAttr contained crosshair help move pointer alias copy syn keyword cssUIAttr contained progress wait text cell move syn match cssUIAttr contained "\" syn match cssUIAttr contained "\" syn match cssUIAttr contained "\" syn match cssUIAttr contained "\" -syn match cssUIAttr contained "\<\(vertical-\)\=text\>" -syn match cssUIAttr contained "\" +syn match cssUIAttr contained "\<\%(vertical-\)\=text\>" +syn match cssUIAttr contained "\" syn match cssUIProp contained "\" syn keyword cssUIAttr contained active inactive disabled -syn match cssUIProp contained "\" -syn match cssUIProp contained "\" +syn match cssUIProp contained "\" +syn match cssUIProp contained "\" syn keyword cssUIAttr contained invert syn keyword cssUIProp contained icon resize @@ -402,27 +406,27 @@ syn match cssUIAttr contained '\' syn match cssIEUIAttr contained '\' " Webkit/iOS specific properties -syn match cssUIProp contained '\<\(tap-highlight-color\|user-select\|touch-callout\)\>' +syn match cssUIProp contained '\<\%(tap-highlight-color\|user-select\|touch-callout\)\>' " IE specific properties -syn match cssIEUIProp contained '\<\(interpolation-mode\|zoom\|filter\)\>' +syn match cssIEUIProp contained '\<\%(interpolation-mode\|zoom\|filter\)\>' " Webkit/Firebox specific properties/attributes syn keyword cssUIProp contained appearance syn keyword cssUIAttr contained window button field icon document menu -syn match cssAuralProp contained "\<\(pause\|cue\)\(-\(before\|after\)\)\=\>" -syn match cssAuralProp contained "\<\(play-during\|speech-rate\|voice-family\|pitch\(-range\)\=\|speak\(-\(punctuation\|numeral\|header\)\)\=\)\>" +syn match cssAuralProp contained "\<\%(pause\|cue\)\%(-\%(before\|after\)\)\=\>" +syn match cssAuralProp contained "\<\%(play-during\|speech-rate\|voice-family\|pitch\%(-range\)\=\|speak\%(-\%(punctuation\|numeral\|header\)\)\=\)\>" syn keyword cssAuralProp contained volume during azimuth elevation stress richness -syn match cssAuralAttr contained "\<\(x-\)\=\(soft\|loud\)\>" +syn match cssAuralAttr contained "\<\%(x-\)\=\%(soft\|loud\)\>" syn keyword cssAuralAttr contained silent syn match cssAuralAttr contained "\" syn keyword cssAuralAttr contained non mix -syn match cssAuralAttr contained "\<\(left\|right\)-side\>" -syn match cssAuralAttr contained "\<\(far\|center\)-\(left\|center\|right\)\>" +syn match cssAuralAttr contained "\<\%(left\|right\)-side\>" +syn match cssAuralAttr contained "\<\%(far\|center\)-\%(left\|center\|right\)\>" syn keyword cssAuralAttr contained leftwards rightwards behind syn keyword cssAuralAttr contained below level above lower higher -syn match cssAuralAttr contained "\<\(x-\)\=\(slow\|fast\|low\|high\)\>" +syn match cssAuralAttr contained "\<\%(x-\)\=\%(slow\|fast\|low\|high\)\>" syn keyword cssAuralAttr contained faster slower syn keyword cssAuralAttr contained male female child code digits continuous @@ -432,15 +436,15 @@ syn match cssMobileTextProp contained "\" syn keyword cssMediaProp contained width height orientation scan syn keyword cssMediaProp contained any-hover any-pointer color-gamut grid hover syn keyword cssMediaProp contained overflow-block overflow-inline pointer update -syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(\(device\)-\)\=aspect-ratio\>/ -syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-pixel-ratio\>/ -syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=device-\(height\|width\)\>/ -syn match cssMediaProp contained /\<\(\(max\|min\)-\)\=\(height\|width\|resolution\|monochrome\|color\(-index\)\=\)\>/ +syn match cssMediaProp contained /\<\%(\%(max\|min\)-\)\=\%(\%(device\)-\)\=aspect-ratio\>/ +syn match cssMediaProp contained /\<\%(\%(max\|min\)-\)\=device-pixel-ratio\>/ +syn match cssMediaProp contained /\<\%(\%(max\|min\)-\)\=device-\%(height\|width\)\>/ +syn match cssMediaProp contained /\<\%(\%(max\|min\)-\)\=\%(height\|width\|resolution\|monochrome\|color\%(-index\)\=\)\>/ syn keyword cssMediaAttr contained portrait landscape progressive interlace syn keyword cssMediaAttr contained coarse fast fine hover infinite p3 paged syn keyword cssMediaAttr contained rec2020 scroll slow srgb -syn match cssKeyFrameProp contained /\(\d\+\(\.\d\+\)\?%\|\(\\)\)/ nextgroup=cssDefinition -syn match cssPageMarginProp /@\(\(top\|left\|right\|bottom\)-\(left\|center\|right\|middle\|bottom\)\)\(-corner\)\=/ contained nextgroup=cssDefinition +syn match cssKeyFrameProp contained /\%(\d\+\%(\.\d\+\)\?%\|\%(\\)\)/ nextgroup=cssDefinition +syn match cssPageMarginProp /@\%(\%(top\|left\|right\|bottom\)-\%(left\|center\|right\|middle\|bottom\)\)\%(-corner\)\=/ contained nextgroup=cssDefinition syn keyword cssPageProp contained content size syn keyword cssPageProp contained orphans widows syn keyword cssFontDescriptorProp contained src @@ -460,18 +464,18 @@ syn match cssAttrComma "," syn match cssPseudoClass ":[A-Za-z0-9_-]*" contains=cssNoise,cssPseudoClassId,cssUnicodeEscape,cssVendor,cssPseudoClassFn syn keyword cssPseudoClassId contained link visited active hover before after left right syn keyword cssPseudoClassId contained root empty target enabled disabled checked invalid -syn match cssPseudoClassId contained "\" -syn match cssPseudoClassId contained "\<\(first\|last\|only\)-\(of-type\|child\)\>" -syn match cssPseudoClassId contained "\" -syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\(not\|is\|lang\|\(nth\|nth-last\)-\(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier +syn match cssPseudoClassId contained "\" +syn match cssPseudoClassId contained "\<\%(first\|last\|only\)-\%(of-type\|child\)\>" +syn match cssPseudoClassId contained "\" +syn region cssPseudoClassFn contained matchgroup=cssFunctionName start="\<\%(not\|is\|lang\|\%(nth\|nth-last\)-\%(of-type\|child\)\)(" end=")" contains=cssStringQ,cssStringQQ,cssTagName,cssAttributeSelector,cssClassName,cssIdentifier " ------------------------------------ " Vendor specific properties syn match cssPseudoClassId contained "\" -syn match cssPseudoClassId contained "\<\(input-\)\=placeholder\>" +syn match cssPseudoClassId contained "\<\%(input-\)\=placeholder\>" " Misc highlight groups -syntax match cssUnitDecorators /\(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained -syntax match cssNoise contained /\(:\|;\|\/\)/ +syntax match cssUnitDecorators /\%(#\|-\|+\|%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\|ch\|rem\|vh\|vw\|vmin\|vmax\|dpi\|dppx\|dpcm\|Hz\|kHz\|s\|ms\|deg\|grad\|rad\)/ contained +syntax match cssNoise contained /\%(:\|;\|\/\)/ " Comment syn region cssComment start="/\*" end="\*/" contains=@Spell fold @@ -483,7 +487,7 @@ syn region cssStringQQ start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=cssUnicodeEsc syn region cssStringQ start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=cssUnicodeEscape,cssSpecialCharQ " Vendor Prefix -syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-" +syn match cssVendor contained "-\%(webkit\|moz\|o\|ms\)-" " Various CSS Hack characters " In earlier versions of IE (6 and 7), one can prefix property names @@ -491,18 +495,18 @@ syn match cssVendor contained "-\(webkit\|moz\|o\|ms\)-" " This is purely decorative and therefore we assign to the same highlight " group to cssVendor, for more information: " http://www.paulirish.com/2009/browser-specific-css-hacks/ -syn match cssHacks contained /\(_\|*\)/ +syn match cssHacks contained /\%(_\|*\)/ " Attr Enhance " Some keywords are both Prop and Attr, so we have to handle them " cssPseudoClassId is hidden by cssAttrRegion, so we add it here. see #69 -syn region cssAttrRegion start=/:/ end=/\ze\(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise +syn region cssAttrRegion start=/:/ end=/\ze\%(;\|)\|}\|{\)/ contained contains=cssPseudoClassId,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise " Hack for transition " 'transition' has Props after ':'. -syn region cssAttrRegion start=/transition\s*:/ end=/\ze\(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise +syn region cssAttrRegion start=/transition\s*:/ end=/\ze\%(;\|)\|}\)/ contained contains=css.*Prop,css.*Attr,cssColor,cssImportant,cssValue.*,cssFunction,cssString.*,cssURL,cssComment,cssUnicodeEscape,cssVendor,cssError,cssAttrComma,cssNoise -syn match cssAtKeyword /@\(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ +syn match cssAtKeyword /@\%(font-face\|media\|keyframes\|import\|charset\|namespace\|page\|supports\)/ syn keyword cssAtRuleLogical only not and contained @@ -514,10 +518,10 @@ syn keyword cssMediaType contained screen print aural braille embossed handheld " @page " http://www.w3.org/TR/css3-page/ syn region cssAtRule start=/@page\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssPagePseudo,cssComment nextgroup=cssDefinition -syn match cssPagePseudo /:\(left\|right\|first\|blank\)/ contained skipwhite skipnl +syn match cssPagePseudo /:\%(left\|right\|first\|blank\)/ contained skipwhite skipnl " @keyframe " http://www.w3.org/TR/css3-animations/#keyframes -syn region cssAtRule start=/@\(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition +syn region cssAtRule start=/@\%(-[a-z]\+-\)\=keyframes\>/ end=/\ze{/ skipwhite skipnl matchgroup=cssAtKeyword contains=cssVendor,cssComment nextgroup=cssDefinition syn region cssAtRule start=/@import\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword,cssURL,cssMediaProp,cssValueLength,cssAtRuleLogical,cssValueInteger,cssMediaAttr,cssMediaType syn region cssAtRule start=/@charset\>/ end=/\ze;/ contains=cssStringQ,cssStringQQ,cssUnicodeEscape,cssComment,cssAtKeyword