|
223 | 223 | "name": "punctuation.definition.keyword.css"
|
224 | 224 | }
|
225 | 225 | },
|
226 |
| - "end": "(?=\\s*($|[:{;]))", |
| 226 | + "end": "(?=\\s?(?=$|[:{;]))", |
227 | 227 | "name": "meta.at-rule.page.css",
|
228 | 228 | "patterns": [
|
229 | 229 | {
|
|
784 | 784 | },
|
785 | 785 | "color-keywords": {
|
786 | 786 | "patterns": [
|
| 787 | + { |
| 788 | + "match": "(?xi)\n(?<=\n (transition|transition-property)\n \\:[\\w\\s\\-,]*\n)\nbackground", |
| 789 | + "name": "support.constant.property-value.css" |
| 790 | + }, |
787 | 791 | {
|
788 | 792 | "match": "(?i)(?<![\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w-])",
|
789 | 793 | "name": "support.constant.color.w3c-standard-color-name.css"
|
|
797 | 801 | "name": "support.constant.color.current.css"
|
798 | 802 | },
|
799 | 803 | {
|
800 |
| - "match": "(?xi) (?<![\\w-])\n(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow\n|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption\n|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow\n|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\n(?![\\w-])", |
| 804 | + "match": "(?xi) (?<![\\w-])\n(accentcolor|accentcolortext|activetext|buttonborder|buttonface|buttontext|canvas|canvastext|field|fieldtext\n|graytext|highlight|highlighttext|linktext|mark|marktext|selecteditem|selecteditemtext|visitedtext)\n(?![\\w-])", |
| 805 | + "name": "support.constant.color.system.css" |
| 806 | + }, |
| 807 | + { |
| 808 | + "match": "(?xi) (?<![\\w-])\n(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonHighlight|ButtonShadow|CaptionText\n|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar\n|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\n(?![\\w-])", |
801 | 809 | "name": "invalid.deprecated.color.system.css"
|
802 | 810 | }
|
803 | 811 | ]
|
|
901 | 909 | {
|
902 | 910 | "include": "#container-query-features"
|
903 | 911 | },
|
904 |
| - { |
905 |
| - "match": "(?xi)\n# Match a slash as a property value delimiter if it's not enclosed by parentheses\n(?:\n (?<!\\(:[^\\)]*)\n /\n)", |
906 |
| - "name": "meta.property-value.delimiter.css" |
907 |
| - }, |
908 | 912 | {
|
909 | 913 | "match": "(?xi)\n# Match must be preceded by one of the following:\n(?<=\n ^ # Start of line\n | \\s # Whitespace\n | \\( # Opening parenthesis\n | \\*/ # Comment closing\n)\n\n(?:\n # Standardised features\n (\n (?:\n min-\n | max-\n )?\n\n # Range features\n (?:\n aspect-ratio\n | block-size\n | height\n | inline-size\n | width\n )\n | orientation\n )\n)\n\n# Match must be followed by one of the following:\n(?=\n \\s # Whitespace\n | $ # End of line\n | [><:=] # Comparison operator\n | \\) # Closing parenthesis\n | /\\* # Comment opening\n)",
|
910 | 914 | "name": "support.type.property-name.container.css"
|
911 | 915 | },
|
912 | 916 | {
|
913 | 917 | "match": "(?xi)\n# Match must be preceded by one of the following:\n(?<=\n ^ # Start of line\n | \\s # Whitespace\n | : # Colon\n | \\*/ # Comment closing\n)\n\n# Orientation\n(?:\n portrait\n | landscape\n)\n\n# Match must be followed by one of the following:\n(?=\n \\s # Whitespace\n | \\) # Closing parenthesis\n | /\\* # Comment opening\n | $ # End of line\n)",
|
914 | 918 | "name": "support.constant.property-value.container.css"
|
915 |
| - }, |
916 |
| - { |
917 |
| - "include": "#functions" |
918 | 919 | }
|
919 | 920 | ]
|
920 | 921 | },
|
|
984 | 985 | "match": "(true|false)",
|
985 | 986 | "name": "support.constant.boolean.container.css"
|
986 | 987 | },
|
987 |
| - { |
988 |
| - "include": "#functions" |
989 |
| - }, |
990 | 988 | {
|
991 | 989 | "include": "#property-keywords"
|
992 | 990 | },
|
|
1017 | 1015 | },
|
1018 | 1016 | {
|
1019 | 1017 | "include": "#comment-block"
|
| 1018 | + }, |
| 1019 | + { |
| 1020 | + "include": "#functions" |
1020 | 1021 | }
|
1021 | 1022 | ]
|
1022 | 1023 | },
|
|
1027 | 1028 | "name": "constant.character.escape.codepoint.css"
|
1028 | 1029 | },
|
1029 | 1030 | {
|
1030 |
| - "begin": "\\\\$\\s*", |
| 1031 | + "begin": "\\\\$\\s*?", |
1031 | 1032 | "end": "^(?<!\\G)",
|
1032 | 1033 | "name": "constant.character.escape.newline.css"
|
1033 | 1034 | },
|
|
1578 | 1579 | {
|
1579 | 1580 | "match": "(?i)even|odd",
|
1580 | 1581 | "name": "support.constant.parity.css"
|
| 1582 | + }, |
| 1583 | + { |
| 1584 | + "begin": "(?xi)\n(?<=\n \\:nth-(?:last-)?child\\(\n (?:even|odd|[+-]?(\\d+n?|n)(\\s*[+-]\\s*\\d+)?)\\s*\n)\n(?:of)", |
| 1585 | + "beginCaptures": { |
| 1586 | + "0": { |
| 1587 | + "name": "keyword.operator.nth.of.css" |
| 1588 | + } |
| 1589 | + }, |
| 1590 | + "end": "(?=\\))", |
| 1591 | + "patterns": [ |
| 1592 | + { |
| 1593 | + "include": "#selector-innards" |
| 1594 | + } |
| 1595 | + ] |
1581 | 1596 | }
|
1582 | 1597 | ]
|
1583 | 1598 | }
|
|
1657 | 1672 | "match": ">=|<=|=|<|>",
|
1658 | 1673 | "name": "keyword.operator.comparison.css"
|
1659 | 1674 | },
|
1660 |
| - { |
1661 |
| - "captures": { |
1662 |
| - "1": { |
1663 |
| - "name": "constant.numeric.css" |
1664 |
| - }, |
1665 |
| - "2": { |
1666 |
| - "name": "keyword.operator.arithmetic.css" |
1667 |
| - }, |
1668 |
| - "3": { |
1669 |
| - "name": "constant.numeric.css" |
1670 |
| - } |
1671 |
| - }, |
1672 |
| - "match": "(\\d+)\\s*(/)\\s*(\\d+)", |
1673 |
| - "name": "meta.ratio.css" |
1674 |
| - }, |
1675 | 1675 | {
|
1676 | 1676 | "include": "#numeric-values"
|
1677 | 1677 | },
|
|
1707 | 1707 | },
|
1708 | 1708 | "numeric-values": {
|
1709 | 1709 | "patterns": [
|
| 1710 | + { |
| 1711 | + "captures": { |
| 1712 | + "1": { |
| 1713 | + "name": "constant.numeric.css" |
| 1714 | + }, |
| 1715 | + "2": { |
| 1716 | + "name": "keyword.operator.arithmetic.css" |
| 1717 | + }, |
| 1718 | + "3": { |
| 1719 | + "name": "constant.numeric.css" |
| 1720 | + } |
| 1721 | + }, |
| 1722 | + "match": "(?<=aspect-ratio:.*)(\\d+)\\s*(/)\\s*(\\d+)", |
| 1723 | + "name": "meta.ratio.css" |
| 1724 | + }, |
1710 | 1725 | {
|
1711 | 1726 | "captures": {
|
1712 | 1727 | "1": {
|
|
1725 | 1740 | "name": "keyword.other.unit.${2:/downcase}.css"
|
1726 | 1741 | }
|
1727 | 1742 | },
|
1728 |
| - "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|rch|rex|rlh|\n ic|ric|rcap|vh|vw|vb|vi|svh|\n svw|svb|svi|dvh|dvw|dvb|dvi|\n lvh|lvw|lvb|lvi|vmax|vmin|\n cqw|cqi|cqh|cqb|cqmin|cqmax\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars", |
| 1743 | + "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|rch|rex|rlh|\n ic|ric|rcap|vh|vw|vb|vi|svh|\n svw|svb|svi|dvh|dvw|dvb|dvi|\n lvh|lvw|lvb|lvi|vmax|vmin|\n dvmax|lvmax|svmax|\n dvmin|lvmin|svmin|\n cqw|cqi|cqh|cqb|cqmin|cqmax\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars", |
1729 | 1744 | "name": "constant.numeric.css"
|
1730 | 1745 | }
|
1731 | 1746 | ]
|
|
1794 | 1809 | {
|
1795 | 1810 | "match": "!\\s*important(?![\\w-])",
|
1796 | 1811 | "name": "keyword.other.important.css"
|
1797 |
| - }, |
1798 |
| - { |
1799 |
| - "match": "(?xi)\n# Match a slash as a property value delimiter if it's not enclosed by parentheses\n(?:\n (?<!\\([^\\)]*)\n /\n)", |
1800 |
| - "name": "meta.property-value.delimiter.css" |
1801 | 1812 | }
|
1802 | 1813 | ]
|
1803 | 1814 | },
|
| 1815 | + "property-value-delimiter": { |
| 1816 | + "match": "(?xi)\n# Match a slash as a property value delimiter if it's not enclosed by parentheses\n# Must be preceded by a colon and optionally other characters\n(?<= \\:.*\n)\n# Must not preceded by an opening parenthesis, after the colon, before a closing parenthesis\n(?<! \\:.*\\([^\\)]* )\n(?: / ) # Match a slash\n(?!= [^\\(]* \\) ) # Not followed by a closing parenthesis before an opening parenthesis", |
| 1817 | + "name": "punctuation.separator.delimiter.slash.css" |
| 1818 | + }, |
1804 | 1819 | "pseudo-classes": {
|
1805 | 1820 | "captures": {
|
1806 | 1821 | "1": {
|
|
0 commit comments