diff options
Diffstat (limited to 'src/share/3rdparty/generic-highlighter/css.xml')
-rw-r--r-- | src/share/3rdparty/generic-highlighter/css.xml | 1173 |
1 files changed, 926 insertions, 247 deletions
diff --git a/src/share/3rdparty/generic-highlighter/css.xml b/src/share/3rdparty/generic-highlighter/css.xml index 3300222e17..25a614e826 100644 --- a/src/share/3rdparty/generic-highlighter/css.xml +++ b/src/share/3rdparty/generic-highlighter/css.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [ - <!-- http://www.w3.org/TR/CSS21/syndata.html#tokenization --> + <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization --> <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])"> <!ENTITY nmchar "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])"> ]> @@ -12,6 +12,15 @@ Kate CSS syntax highlighting definition Changelog: +- Version 8, by Jonathan Poelen +- fix some Operator and Selector Tag highlighting + +- Version 7, by Jonathan Poelen +- fix tag followed by a pseudo-class in a nested rule (@media, ...) +- fix constraint in a rule +- fix Kate auto-completion for properties and rules +- New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Variable, Value Keyword, Color, Number, Unit, Selector Tag + - Version 4, by Guo Yunhe guoyunhebrave@gmail.com - Remake for complex CSS syntax, avoid errors @@ -29,105 +38,128 @@ Changelog: --> -<language name="CSS" version="6" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10"> +<language name="CSS" version="8" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10"> <highlighting> <list name="properties"> <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties --> - <item>azimuth</item> <item>align-content</item> <item>align-items</item> - <item>align-self</item> <item>alignment-baseline</item> + <item>align-self</item> <item>all</item> - <item>animation-name</item> + <item>animation</item> + <item>animation-delay</item> + <item>animation-direction</item> <item>animation-duration</item> + <item>animation-fill-mode</item> <item>animation-iteration-count</item> - <item>animation-direction</item> - <item>animation-delay</item> + <item>animation-name</item> <item>animation-play-state</item> - <item>animation-fill-mode</item> <item>animation-timing-function</item> + <item>appearance</item> + <item>azimuth</item> <item>backface-visibility</item> <item>background</item> <item>background-attachment</item> <item>background-blend-mode</item> - <item>background-break</item> <item>background-clip</item> <item>background-color</item> <item>background-image</item> + <item>background-image-transform</item> <item>background-origin</item> <item>background-position</item> <item>background-repeat</item> <item>background-size</item> <item>baseline-shift</item> + <item>block-size</item> + <item>block-step</item> + <item>block-step-align</item> + <item>block-step-insert</item> + <item>block-step-round</item> + <item>block-step-size</item> <item>bookmark-label</item> <item>bookmark-level</item> - <item>bookmark-level</item> + <item>bookmark-state</item> <item>border</item> + <item>border-block</item> + <item>border-block-color</item> + <item>border-block-end</item> + <item>border-block-end-color</item> + <item>border-block-end-style</item> + <item>border-block-end-width</item> + <item>border-block-start</item> + <item>border-block-start-color</item> + <item>border-block-start-style</item> + <item>border-block-start-width</item> + <item>border-block-style</item> + <item>border-block-width</item> <item>border-bottom</item> <item>border-bottom-color</item> - <item>border-bottom-image</item> - <item>border-bottom-style</item> - <item>border-bottom-width</item> - <item>border-bottom-left-image</item> <item>border-bottom-left-radius</item> - <item>border-bottom-right-image</item> <item>border-bottom-right-radius</item> + <item>border-bottom-style</item> + <item>border-bottom-width</item> <item>border-boundary</item> <item>border-collapse</item> <item>border-color</item> - <item>border-corner-image</item> <item>border-image</item> <item>border-image-outset</item> <item>border-image-repeat</item> <item>border-image-slice</item> <item>border-image-source</item> + <item>border-image-transform</item> <item>border-image-width</item> + <item>border-inline</item> + <item>border-inline-color</item> + <item>border-inline-end</item> + <item>border-inline-end-color</item> + <item>border-inline-end-style</item> + <item>border-inline-end-width</item> + <item>border-inline-start</item> + <item>border-inline-start-color</item> + <item>border-inline-start-style</item> + <item>border-inline-start-width</item> + <item>border-inline-style</item> + <item>border-inline-width</item> <item>border-left</item> <item>border-left-color</item> - <item>border-left-image</item> <item>border-left-style</item> <item>border-left-width</item> <item>border-radius</item> <item>border-right</item> <item>border-right-color</item> - <item>border-right-image</item> <item>border-right-style</item> <item>border-right-width</item> <item>border-spacing</item> <item>border-style</item> <item>border-top</item> <item>border-top-color</item> - <item>border-top-image</item> - <item>border-top-style</item> - <item>border-top-width</item> - <item>border-top-left-image</item> <item>border-top-left-radius</item> - <item>border-top-right-image</item> <item>border-top-right-radius</item> + <item>border-top-style</item> + <item>border-top-width</item> <item>border-width</item> <item>bottom</item> - <item>box-align</item> <item>box-decoration-break</item> - <item>box-direction</item> - <item>box-flex</item> <item>box-shadow</item> <item>box-sizing</item> <item>box-snap</item> - <item>box-suppress</item> <item>break-after</item> <item>break-before</item> <item>break-inside</item> - <item>caret-color</item> <item>caption-side</item> - <item>chains</item> + <item>caret</item> + <item>caret-color</item> + <item>caret-shape</item> <item>clear</item> <item>clip</item> <item>clip-path</item> <item>clip-rule</item> <item>color</item> + <item>color-adjust</item> <item>color-interpolation-filters</item> + <item>columns</item> <item>column-count</item> <item>column-fill</item> <item>column-gap</item> @@ -137,8 +169,9 @@ Changelog: <item>column-rule-width</item> <item>column-span</item> <item>column-width</item> - <item>columns</item> + <item>contain</item> <item>content</item> + <item>continue</item> <item>counter-increment</item> <item>counter-reset</item> <item>counter-set</item> @@ -151,6 +184,16 @@ Changelog: <item>dominant-baseline</item> <item>elevation</item> <item>empty-cells</item> + <item>fill</item> + <item>fill-break</item> + <item>fill-color</item> + <item>fill-image</item> + <item>fill-opacity</item> + <item>fill-origin</item> + <item>fill-position</item> + <item>fill-repeat</item> + <item>fill-rule</item> + <item>fill-size</item> <item>filter</item> <item>flex</item> <item>flex-basis</item> @@ -160,32 +203,40 @@ Changelog: <item>flex-shrink</item> <item>flex-wrap</item> <item>float</item> + <item>float-defer</item> + <item>float-offset</item> + <item>float-reference</item> <item>flood-color</item> <item>flood-opacity</item> - <item>flow</item> <item>flow-from</item> <item>flow-into</item> <item>font</item> <item>font-family</item> + <item>font-feature-settings</item> + <item>font-kerning</item> + <item>font-language-override</item> + <item>font-max-size</item> + <item>font-min-size</item> + <item>font-optical-sizing</item> + <item>font-palette</item> <item>font-size</item> <item>font-size-adjust</item> <item>font-stretch</item> <item>font-style</item> - <item>font-variant</item> - <item>font-weight</item> - <item>font-stretch</item> - <item>font-feature-settings</item> - <item>font-kerning</item> - <item>font-language-override</item> <item>font-synthesis</item> + <item>font-variant</item> <item>font-variant-alternates</item> <item>font-variant-caps</item> <item>font-variant-east-asian</item> + <item>font-variant-emoji</item> <item>font-variant-ligatures</item> <item>font-variant-numeric</item> <item>font-variant-position</item> + <item>font-variation-settings</item> + <item>font-weight</item> <item>footnote-display</item> <item>footnote-policy</item> + <item>gap</item> <item>glyph-orientation-vertical</item> <item>grid</item> <item>grid-area</item> @@ -207,6 +258,11 @@ Changelog: <item>grid-template-rows</item> <item>hanging-punctuation</item> <item>height</item> + <item>hyphenate-character</item> + <item>hyphenate-limit-chars</item> + <item>hyphenate-limit-last</item> + <item>hyphenate-limit-lines</item> + <item>hyphenate-limit-zone</item> <item>hyphens</item> <item>image-orientation</item> <item>image-rendering</item> @@ -214,6 +270,14 @@ Changelog: <item>initial-letter</item> <item>initial-letter-align</item> <item>initial-letter-wrap</item> + <item>inline-size</item> + <item>inset</item> + <item>inset-block</item> + <item>inset-block-end</item> + <item>inset-block-start</item> + <item>inset-inline</item> + <item>inset-inline-end</item> + <item>inset-inline-start</item> <item>isolation</item> <item>justify-content</item> <item>justify-items</item> @@ -221,22 +285,35 @@ Changelog: <item>left</item> <item>letter-spacing</item> <item>lighting-color</item> - <item>linear-gradient</item> + <item>line-break</item> <item>line-grid</item> <item>line-height</item> + <item>line-height-step</item> <item>line-snap</item> <item>list-style</item> <item>list-style-image</item> - <item>list-style-keyword</item> <item>list-style-position</item> <item>list-style-type</item> <item>margin</item> + <item>margin-block</item> + <item>margin-block-end</item> + <item>margin-block-start</item> <item>margin-bottom</item> + <item>margin-inline</item> + <item>margin-inline-end</item> + <item>margin-inline-start</item> <item>margin-left</item> <item>margin-right</item> <item>margin-top</item> - <item>marker-offset</item> + <item>marker</item> + <item>marker-end</item> + <item>marker-knockout-left</item> + <item>marker-knockout-right</item> + <item>marker-mid</item> + <item>marker-pattern</item> + <item>marker-segment</item> <item>marker-side</item> + <item>marker-start</item> <item>marquee-direction</item> <item>marquee-loop</item> <item>marquee-speed</item> @@ -258,21 +335,31 @@ Changelog: <item>mask-repeat</item> <item>mask-size</item> <item>mask-type</item> + <item>max-block-size</item> <item>max-height</item> + <item>max-inline-size</item> <item>max-lines</item> <item>max-width</item> + <item>min-block-size</item> <item>min-height</item> + <item>min-inline-size</item> <item>min-width</item> <item>mix-blend-mode</item> + <item>nav-up</item> <item>nav-down</item> <item>nav-left</item> <item>nav-right</item> - <item>nav-up</item> <item>object-fit</item> <item>object-position</item> + <item>offset</item> <item>offset-after</item> + <item>offset-anchor</item> <item>offset-before</item> + <item>offset-distance</item> <item>offset-end</item> + <item>offset-path</item> + <item>offset-position</item> + <item>offset-rotate</item> <item>offset-start</item> <item>opacity</item> <item>order</item> @@ -288,7 +375,13 @@ Changelog: <item>overflow-x</item> <item>overflow-y</item> <item>padding</item> + <item>padding-block</item> + <item>padding-block-end</item> + <item>padding-block-start</item> <item>padding-bottom</item> + <item>padding-inline</item> + <item>padding-inline-end</item> + <item>padding-inline-start</item> <item>padding-left</item> <item>padding-right</item> <item>padding-top</item> @@ -303,108 +396,82 @@ Changelog: <item>perspective-origin</item> <item>pitch</item> <item>pitch-range</item> + <item>place-content</item> + <item>place-items</item> + <item>place-self</item> <item>play-during</item> <item>pointer-events</item> - <item>polar-anchor</item> - <item>polar-angle</item> - <item>polar-distance</item> - <item>polar-origin</item> <item>position</item> - <item>presentation-level</item> <item>quotes</item> + <item>region-fragment</item> <item>resize</item> - <item>rest</item> - <item>rest-after</item> - <item>rest-before</item> <item>richness</item> <item>right</item> <item>rotation</item> <item>rotation-point</item> + <item>row-gap</item> <item>ruby-align</item> <item>ruby-merge</item> <item>ruby-position</item> <item>running</item> - <item>scroll-behavior</item> - <item>scroll-snap-align</item> - <item>scroll-snap-margin</item> - <item>scroll-snap-margin-block</item> - <item>scroll-snap-margin-block-end</item> - <item>scroll-snap-margin-block-start</item> - <item>scroll-snap-margin-bottom</item> - <item>scroll-snap-margin-inline</item> - <item>scroll-snap-margin-inline-end</item> - <item>scroll-snap-margin-inline-start</item> - <item>scroll-snap-margin-left</item> - <item>scroll-snap-margin-right</item> - <item>scroll-snap-margin-top</item> - <item>scroll-snap-padding</item> - <item>scroll-snap-padding-block</item> - <item>scroll-snap-padding-block-end</item> - <item>scroll-snap-padding-block-start</item> - <item>scroll-snap-padding-bottom</item> - <item>scroll-snap-padding-inline</item> - <item>scroll-snap-padding-inline-end</item> - <item>scroll-snap-padding-inline-start</item> - <item>scroll-snap-padding-left</item> - <item>scroll-snap-padding-right</item> - <item>scroll-snap-padding-top</item> - <item>scroll-snap-stop</item> - <item>scroll-snap-type</item> + <item>scrollbar-gutter</item> <item>shape-image-threshold</item> <item>shape-inside</item> <item>shape-margin</item> <item>shape-outside</item> <item>size</item> <item>speak</item> - <item>speak-as</item> <item>speak-header</item> <item>speak-numeral</item> <item>speak-punctuation</item> <item>speech-rate</item> <item>stress</item> <item>string-set</item> - <item>tab-size</item> <item>table-layout</item> + <item>tab-size</item> + <item>text-align-all</item> <item>text-align</item> <item>text-align-last</item> <item>text-combine-upright</item> - <item>text-decoration</item> <item>text-decoration-color</item> + <item>text-decoration</item> <item>text-decoration-line</item> <item>text-decoration-skip</item> + <item>text-decoration-skip-ink</item> <item>text-decoration-style</item> + <item>text-decoration-width</item> <item>text-emphasis</item> <item>text-emphasis-color</item> <item>text-emphasis-position</item> + <item>text-emphasis-skip</item> <item>text-emphasis-style</item> <item>text-indent</item> <item>text-justify</item> <item>text-orientation</item> <item>text-overflow</item> <item>text-shadow</item> + <item>text-space-collapse</item> + <item>text-space-trim</item> + <item>text-spacing</item> <item>text-transform</item> + <item>text-underline-offset</item> <item>text-underline-position</item> <item>text-wrap</item> <item>top</item> <item>transform</item> + <item>transform-box</item> <item>transform-origin</item> <item>transform-style</item> <item>transition</item> <item>transition-delay</item> - <item>transition-property</item> <item>transition-duration</item> + <item>transition-property</item> <item>transition-timing-function</item> <item>unicode-bidi</item> + <item>user-select</item> <item>vertical-align</item> <item>visibility</item> - <item>voice-balance</item> - <item>voice-duration</item> <item>voice-family</item> - <item>voice-pitch</item> - <item>voice-range</item> - <item>voice-rate</item> - <item>voice-stress</item> - <item>voice-volume</item> <item>volume</item> <item>white-space</item> <item>widows</item> @@ -413,49 +480,71 @@ Changelog: <item>word-break</item> <item>word-spacing</item> <item>word-wrap</item> + <item>wrap-after</item> + <item>wrap-before</item> <item>wrap-flow</item> + <item>wrap-inside</item> <item>wrap-through</item> <item>writing-mode</item> <item>z-index</item> <!-- Gecko rendering engine CSS property extensions --> - <item>-moz-animation-name</item> - <item>-moz-animation-duration</item> - <item>-moz-animation-iteration</item> - <item>-moz-animation-direction</item> + <item>-moz-animation</item> <item>-moz-animation-delay</item> - <item>-moz-animation-play-state</item> + <item>-moz-animation-direction</item> + <item>-moz-animation-duration</item> <item>-moz-animation-fill-mode</item> + <item>-moz-animation-iteration-count</item> + <item>-moz-animation-name</item> + <item>-moz-animation-play-state</item> + <item>-moz-animation-timing-function</item> + <item>-moz-appearance</item> + <item>-moz-background-clip</item> + <item>-moz-background-origin</item> <item>-moz-background-size</item> <item>-moz-border-image</item> - <item>-moz-border-bottom-colors</item> - <item>-moz-border-left-colors</item> <item>-moz-border-radius</item> - <item>-moz-border-radius-topleft</item> - <item>-moz-border-radius-topright</item> <item>-moz-border-radius-bottomleft</item> <item>-moz-border-radius-bottomright</item> - <item>-moz-border-right-colors</item> - <item>-moz-border-top-colors</item> - <item>-moz-box</item> + <item>-moz-border-radius-topleft</item> + <item>-moz-border-radius-topright</item> + <item>-moz-box-align</item> + <item>-moz-box-direction</item> <item>-moz-box-flex</item> + <item>-moz-box-flex-group</item> + <item>-moz-box-ordinal-group</item> + <item>-moz-box-orient</item> + <item>-moz-box-pack</item> <item>-moz-box-shadow</item> <item>-moz-box-sizing</item> + <item>-moz-box</item> <item>-moz-column-count</item> + <item>-moz-column-fill</item> <item>-moz-column-gap</item> + <item>-moz-column-rule</item> + <item>-moz-column-rule-color</item> + <item>-moz-column-rule-style</item> + <item>-moz-column-rule-width</item> + <item>-moz-columns</item> + <item>-moz-column-width</item> <item>-moz-hyphens</item> - <item>-moz-linear-gradient</item> <item>-moz-opacity</item> <item>-moz-outline-style</item> <item>-moz-perspective</item> - <item>-moz-radial-gradient</item> <item>-moz-resize</item> + <item>-moz-text-align-last</item> + <item>-moz-text-decoration-color</item> + <item>-moz-text-decoration-line</item> + <item>-moz-text-decoration-style</item> <item>-moz-transform</item> <item>-moz-transform-origin</item> <item>-moz-transform-style</item> <item>-moz-transition</item> - <item>-moz-transition-property</item> + <item>-moz-transition-delay</item> <item>-moz-transition-duration</item> + <item>-moz-transition-property</item> + <item>-moz-transition-timing-function</item> + <item>-moz-user-select</item> <!-- Opera rendering engine CSS property extensions --> <item>-o-background-size</item> @@ -478,6 +567,7 @@ Changelog: <!-- Webkit rendering engine CSS property extensions --> <item>-webkit-appearance</item> + <item>-webkit-animation</item> <item>-webkit-animation-name</item> <item>-webkit-animation-duration</item> <item>-webkit-animation-iteration</item> @@ -486,6 +576,7 @@ Changelog: <item>-webkit-animation-play-state</item> <item>-webkit-animation-fill-mode</item> <item>-webkit-background-size</item> + <item>-webkit-backface-visibility</item> <item>-webkit-border-image</item> <item>-webkit-border-bottom-colors</item> <item>-webkit-border-left-colors</item> @@ -498,7 +589,12 @@ Changelog: <item>-webkit-border-bottom-right-radius</item> <item>-webkit-border-radius-bottomleft</item> <item>-webkit-border-radius-bottomright</item> + <item>-webkit-box-align</item> + <item>-webkit-box-direction</item> <item>-webkit-box-flex</item> + <item>-webkit-box-ordinal-group</item> + <item>-webkit-box-orient</item> + <item>-webkit-box-pack</item> <item>-webkit-box-reflect</item> <item>-webkit-box-shadow</item> <item>-webkit-box-sizing</item> @@ -507,17 +603,23 @@ Changelog: <item>-webkit-hyphens</item> <item>-webkit-linear-gradient</item> <item>-webkit-gradient</item> + <item>-webkit-overflow-scrolling</item> <item>-webkit-perspective</item> + <item>-webkit-text-decoration</item> + <item>-webkit-text-decoration-skip</item> <item>-webkit-text-fill-color</item> <item>-webkit-text-stroke-color</item> <item>-webkit-text-stroke-width</item> <item>-webkit-text-size-adjust</item> + <item>-webkit-tap-highlight-color</item> <item>-webkit-transform</item> <item>-webkit-transform-origin</item> <item>-webkit-transform-style</item> <item>-webkit-transition</item> <item>-webkit-transition-property</item> + <item>-webkit-transition-delay</item> <item>-webkit-transition-duration</item> + <item>-webkit-user-select</item> <!-- Trident (a.k.a., MSHTML) CSS property extensions --> <item>zoom</item> @@ -530,41 +632,36 @@ Changelog: <item>-ms-animation-fill-mode</item> <item>-ms-box-sizing</item> <item>-ms-filter</item> + <item>-ms-flex</item> + <item>-ms-flex-align</item> + <item>-ms-flex-direction</item> + <item>-ms-flex-flow</item> + <item>-ms-flex-item-align</item> + <item>-ms-flex-line-pack</item> + <item>-ms-flex-negative</item> + <item>-ms-flex-order</item> + <item>-ms-flex-pack</item> + <item>-ms-flex-positive</item> + <item>-ms-flex-position</item> + <item>-ms-flex-preferred-size</item> + <item>-ms-flex-wrap</item> <item>-ms-interpolation-mode</item> <item>-ms-linear-gradient</item> + <item>-ms-overflow-style</item> <item>-ms-text-size-adjust</item> <item>-ms-transform</item> <item>-ms-transition</item> + <item>-ms-user-select</item> + </list> - <!-- font properties in @font-face --> - <item>font-family</item> - <item>font-size</item> - <item>font-stretch</item> - <item>font-style</item> - <item>font-variant</item> - <item>font-weight</item> - <item>unicode-range</item> - <item>units-per-em</item> - <item>src</item> - <item>panose-1</item> - <item>stemv</item> - <item>stemh</item> - <item>slope</item> - <item>cap-height</item> - <item>x-height</item> - <item>ascent</item> - <item>descent</item> - <item>widths</item> - <item>bbox</item> - <item>definition-src</item> - <item>baseline</item> - <item>centerline</item> - <item>mathline</item> - <item>topline</item> + <list name="value keywords"> + <item>inherit</item> + <item>unset</item> + <item>auto</item> + <!-- <item>revert</item> --> </list> <list name="values"> - <item>inherit</item> <item>none</item> <item>hidden</item> <item>dotted</item> @@ -592,15 +689,6 @@ Changelog: <item>bolder</item> <item>lighter</item> <item>light</item> - <item>100</item> - <item>200</item> - <item>300</item> - <item>400</item> - <item>500</item> - <item>600</item> - <item>700</item> - <item>800</item> - <item>900</item> <item>transparent</item> <item>repeat</item> <item>repeat-x</item> @@ -657,7 +745,6 @@ Changelog: <item>table-column</item> <item>table-cell</item> <item>table-caption</item> - <item>auto</item> <item>crosshair</item> <item>default</item> <item>pointer</item> @@ -751,26 +838,182 @@ Changelog: <item>border-box</item> <item>content-box</item> <item>-epub-hyphens</item> + <item>contain</item> + <item>cover</item> + + <!-- transition and animation --> + <item>all</item> + <item>ease</item> + <item>ease-in</item> + <item>ease-out</item> + <item>ease-in-out</item> + <item>step-start</item> + <item>step-end</item> + <item>linear</item> + + <!-- animation --> + <item>infinite</item> + <item>reverse</item> + <item>alternate</item> + <item>alternate-reverse</item> + <item>forwards</item> + <item>backwards</item> + <item>running</item> + <item>paused</item> </list> <list name="colors"> - <item>aqua</item> <item>black</item> - <item>blue</item> - <item>cyan</item> - <item>fuchsia</item> + <item>silver</item> <item>gray</item> + <item>white</item> + <item>maroon</item> + <item>red</item> + <item>purple</item> + <item>fuchsia</item> <item>green</item> <item>lime</item> - <item>maroon</item> - <item>navy</item> <item>olive</item> - <item>purple</item> - <item>red</item> - <item>silver</item> - <item>teal</item> - <item>white</item> <item>yellow</item> + <item>navy</item> + <item>blue</item> + <item>teal</item> + <item>aqua</item> + <item>orange</item> + <item>aliceblue</item> + <item>antiquewhite</item> + <item>aquamarine</item> + <item>azure</item> + <item>beige</item> + <item>bisque</item> + <item>blanchedalmond</item> + <item>blueviolet</item> + <item>brown</item> + <item>burlywood</item> + <item>cadetblue</item> + <item>chartreuse</item> + <item>chocolate</item> + <item>coral</item> + <item>cornflowerblue</item> + <item>cornsilk</item> + <item>crimson</item> + <item>cyan</item> + <item>aqua</item> + <item>darkblue</item> + <item>darkcyan</item> + <item>darkgoldenrod</item> + <item>darkgray</item> + <item>darkgreen</item> + <item>darkgrey</item> + <item>darkkhaki</item> + <item>darkmagenta</item> + <item>darkolivegreen</item> + <item>darkorange</item> + <item>darkorchid</item> + <item>darkred</item> + <item>darksalmon</item> + <item>darkseagreen</item> + <item>darkslateblue</item> + <item>darkslategray</item> + <item>darkslategrey</item> + <item>darkturquoise</item> + <item>darkviolet</item> + <item>deeppink</item> + <item>deepskyblue</item> + <item>dimgray</item> + <item>dimgrey</item> + <item>dodgerblue</item> + <item>firebrick</item> + <item>floralwhite</item> + <item>forestgreen</item> + <item>gainsboro</item> + <item>ghostwhite</item> + <item>gold</item> + <item>goldenrod</item> + <item>greenyellow</item> + <item>grey</item> + <item>honeydew</item> + <item>hotpink</item> + <item>indianred</item> + <item>indigo</item> + <item>ivory</item> + <item>khaki</item> + <item>lavender</item> + <item>lavenderblush</item> + <item>lawngreen</item> + <item>lemonchiffon</item> + <item>lightblue</item> + <item>lightcoral</item> + <item>lightcyan</item> + <item>lightgoldenrodyellow</item> + <item>lightgray</item> + <item>lightgreen</item> + <item>lightgrey</item> + <item>lightpink</item> + <item>lightsalmon</item> + <item>lightseagreen</item> + <item>lightskyblue</item> + <item>lightslategray</item> + <item>lightslategrey</item> + <item>lightsteelblue</item> + <item>lightyellow</item> + <item>limegreen</item> + <item>linen</item> + <item>magenta</item> + <item>fuchsia</item> + <item>mediumaquamarine</item> + <item>mediumblue</item> + <item>mediumorchid</item> + <item>mediumpurple</item> + <item>mediumseagreen</item> + <item>mediumslateblue</item> + <item>mediumspringgreen</item> + <item>mediumturquoise</item> + <item>mediumvioletred</item> + <item>midnightblue</item> + <item>mintcream</item> + <item>mistyrose</item> + <item>moccasin</item> + <item>navajowhite</item> + <item>oldlace</item> + <item>olivedrab</item> + <item>orangered</item> + <item>orchid</item> + <item>palegoldenrod</item> + <item>palegreen</item> + <item>paleturquoise</item> + <item>palevioletred</item> + <item>papayawhip</item> + <item>peachpuff</item> + <item>peru</item> + <item>pink</item> + <item>plum</item> + <item>powderblue</item> + <item>rosybrown</item> + <item>royalblue</item> + <item>saddlebrown</item> + <item>salmon</item> + <item>sandybrown</item> + <item>seagreen</item> + <item>seashell</item> + <item>sienna</item> + <item>skyblue</item> + <item>slateblue</item> + <item>slategray</item> + <item>slategrey</item> + <item>snow</item> + <item>springgreen</item> + <item>steelblue</item> + <item>tan</item> + <item>thistle</item> + <item>tomato</item> + <item>turquoise</item> + <item>violet</item> + <item>wheat</item> + <item>whitesmoke</item> + <item>yellowgreen</item> + <item>rebeccapurple</item> + <item>ActiveBorder</item> <item>ActiveCaption</item> <item>AppWorkspace</item> @@ -802,137 +1045,355 @@ Changelog: </list> <list name="functions"> - <item>url</item> <item>attr</item> - <item>rect</item> - <item>rgb</item> - <item>rgba</item> + <item>calc</item> <item>hsl</item> <item>hsla</item> - <item>counter</item> - <item>counters</item> + <item>linear-gradient</item> + <item>radial-gradient</item> + <item>repeating-linear-gradient</item> + <item>repeating-radial-gradient</item> + <item>rgb</item> + <item>rgba</item> + <item>var</item> + <item>url</item> - <!-- in @font-face --> - <item>local</item> - <item>format</item> + <!-- clip --> + <item>rect</item> + + <!-- shape-outside and clip-path --> + <item>inset</item> + <item>circle</item> + <item>ellipse</item> + <item>polygon</item> + + <!-- filter and backdrop-filter --> + <item>blur</item> + <item>brightness</item> + <item>contrast</item> + <item>drop-shadow</item> + <item>grayscale</item> + <item>hue-rotate</item> + <item>invert</item> + <item>opacity</item> + <item>saturate</item> + <item>sepia</item> + + <!-- grid-template-columns and grid-template-rows --> + <item>max-content</item> + <item>min-content</item> + <item>minmax</item> + <item>fix-content</item> + <item>repeat</item> - <!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions --> - <item>expression</item> + <!-- transition and animation --> + <item>cubic-bezier</item> + <item>frames</item> + <item>steps</item> + <!-- transform --> + <item>matrix</item> + <item>matrix3d</item> + <item>perspective</item> + <item>rotate</item> + <item>rotate3d</item> + <item>rotateX</item> + <item>rotateY</item> + <item>rotateZ</item> + <item>scale</item> + <item>scale3d</item> + <item>scaleX</item> + <item>scaleY</item> + <item>scaleZ</item> + <item>skew</item> + <item>skewX</item> + <item>skewY</item> + <item>translate</item> + <item>translate3d</item> + <item>translateX</item> + <item>translateY</item> + <item>translateZ</item> + + <!-- inner @font-face --> + <item>local</item> + <item>format</item> </list> - <list name="mediatypes"> + <list name="medias"> + <!-- types --> <item>all</item> - <item>aural</item> - <item>braille</item> - <item>embossed</item> - <item>handheld</item> <item>print</item> - <item>projection</item> <item>screen</item> <item>speech</item> - <item>tty</item> - <item>tv</item> - </list> - <list name="media_features"> - <item>width</item> - <item>min-width</item> - <item>max-width</item> - <item>height</item> - <item>min-height</item> - <item>max-height</item> - <item>device-width</item> - <item>min-device-width</item> - <item>max-device-width</item> - <item>device-height</item> - <item>min-device-height</item> - <item>max-device-height</item> - <item>orientation</item> + <!-- features --> + <item>any-pointer</item> + <item>any-hover</item> <item>aspect-ratio</item> - <item>min-aspect-ratio</item> + <item>color</item> + <item>color-gamut</item> + <item>color-index</item> + <item>display-mode</item> + <item>grid</item> + <item>height</item> + <item>hover</item> <item>max-aspect-ratio</item> - <item>device-aspect-ratio</item> - <item>min-device-aspect-ratio</item> + <item>max-color</item> + <item>max-color-index</item> <item>max-device-aspect-ratio</item> - <item>color</item> + <item>max-device-height</item> + <item>max-device-width</item> + <item>max-height</item> + <item>max-monochrome</item> + <item>max-resolution</item> + <item>max-width</item> + <item>min-aspect-ratio</item> <item>min-color</item> - <item>max-color</item> - <item>color-index</item> <item>min-color-index</item> - <item>max-color-index</item> - <item>monochrome</item> + <item>min-device-aspect-ratio</item> + <item>min-device-height</item> + <item>min-device-width</item> + <item>min-height</item> <item>min-monochrome</item> - <item>max-monochrome</item> - <item>resolution</item> <item>min-resolution</item> - <item>max-resolution</item> + <item>min-width</item> + <item>monochrome</item> + <item>orientation</item> + <item>pointer</item> + <item>resolution</item> <item>scan</item> - <item>grid</item> + <item>update</item> + <item>width</item> </list> - <list name="pseudoclasses"> - <item>hover</item> - <item>link</item> - <item>visited</item> - <item>active</item> - <item>focus</item> - <item>first-child</item> - <item>last-child</item> - <item>only-child</item> - <item>first-of-type</item> - <item>last-of-type</item> - <item>only-of-type</item> + <!-- prefixed by :: --> + <list name="pseudoelements"> + <item>after</item> + <item>before</item> + <item>cue</item> <item>first-letter</item> <item>first-line</item> - <item>before</item> - <item>after</item> <item>selection</item> - <item>root</item> + + <!-- experimental --> + <item>backdrop</item> + <item>placeholder</item> + <!-- <item>marker</item> --> + <item>slotted</item> + <!-- <item>spelling-error</item> --> + <!-- <item>grammar-error</item> --> + + <!-- UI pseudo-classes --> + <item>value</item> + <item>choices</item> + <item>repeat-item</item> + <item>repeat-index</item> + + <item>-moz-progress-bar</item> + <item>-moz-range-progress</item> + <item>-moz-range-thumb</item> + <item>-moz-range-track</item> + <item>-moz-selection</item> + <item>-ms-fill</item> + <item>-ms-fill-lower</item> + <item>-ms-fill-upper</item> + <item>-ms-thumb</item> + <item>-ms-track</item> + <item>-webkit-progress-bar</item> + <item>-webkit-progress-value</item> + <item>-webkit-slider-runnable-track</item> + <item>-webkit-slider-thumb</item> + </list> + + <!-- prefixed by : --> + <list name="pseudoclasses"> + <item>active</item> + <item>any-link</item> + <item>checked</item> + <item>default</item> + <item>defined</item> + <!-- <item>dir</item> --> + <item>disabled</item> <item>empty</item> - <item>target</item> <item>enabled</item> - <item>disabled</item> - <item>checked</item> + <item>first-child</item> + <item>first-of-type</item> + <item>fullscreen</item> + <item>focus</item> + <item>focus-within</item> + <item>host</item> + <item>hover</item> + <item>in-range</item> <item>indeterminate</item> + <item>invalid</item> + <item>lang</item> + <item>last-child</item> + <item>last-of-type</item> + <item>link</item> + <item>not</item> <item>nth-child</item> <item>nth-last-child</item> - <item>nth-of-type</item> <item>nth-last-of-type</item> + <item>nth-of-type</item> + <item>only-child</item> + <item>only-of-type</item> + <item>optional</item> + <item>out-of-range</item> + <item>placeholder-shown</item> + <item>read-only</item> + <item>read-write</item> + <item>required</item> + <item>root</item> + <item>scope</item> + <item>target</item> + <item>valid</item> + <item>visited</item> + + <!-- pseudo-elements --> + <item>after</item> + <item>before</item> + <item>cue</item> + <item>first-letter</item> + <item>first-line</item> + <item>selection</item> + </list> + + <list name="pseudoclass-not"> + <item>not</item> + </list> + + <list name="pseudoclasses-@page"> + <item>blank</item> + <item>first</item> + <item>left</item> + <item>recto</item> + <item>right</item> + <item>verso</item> + </list> + + <list name="at-rules"> + <item>@character</item> + <item>@charset</item> + <item>@import</item> + <item>@namespace</item> + </list> + + <list name="nested at-rules"> + <item>@document</item> + <item>@media</item> + <item>@supports</item> + </list> + + <list name="@viewport"> + <item>@viewport</item> + </list> + + <list name="within-@viewport"> + <item>min-width</item> + <item>max-width</item> + <item>width</item> + <item>min-height</item> + <item>max-height</item> + <item>height</item> + <item>zoom</item> + <item>min-zoom</item> + <item>max-zoom</item> + <item>user-zoom</item> + <item>orientation</item> + <item>viewport-fit</item> + </list> + + <list name="@page"> + <item>@page</item> + </list> + + <list name="within-@page"> + <item>size</item> + <item>marks</item> + <item>bleed</item> + </list> + + <list name="@font-face"> + <item>@font-face</item> + </list> + + <list name="within-@font-face"> + <item>font-display</item> + <item>font-family</item> + <item>font-stretch</item> + <item>font-style</item> + <item>font-weight</item> + <item>font-variant</item> + <item>font-feature-settings</item> + <item>font-variation-settings</item> + <item>src</item> + <item>unicode-range</item> + </list> + + <list name="@keyframes"> + <item>@keyframes</item> + </list> + + <list name="within-@keyframes"> + <item>from</item> + <item>to</item> + </list> + + <list name="media operators"> + <item>and</item> + <item>only</item> <item>not</item> </list> <contexts> <context name="Base" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> <IncludeRules context="FindComments" /> <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" /> - <RegExpr attribute="At Rule" context="AtRule" String="@[a-zA-Z0-1-]+\b" /> - <IncludeRules context="FindSelectors" /> + <DetectChar attribute="At Rule" context="SelectAtRule" char="@" lookAhead="true" /> + <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] --> + <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" /> + <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" /> + <DetectChar attribute="Separator Symbol" context="#stay" char="," /> + <AnyChar attribute="Operator" context="#stay" String="*>+~|" /> + <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" /> + <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" /> + <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" /> </context> - <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] --> - <context name="FindSelectors" attribute="Normal Text" lineEndContext="#stay"> + <context name="FindSelector" attribute="Normal Text" lineEndContext="#stay"> + <IncludeRules context="FindComments" /> + <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] --> <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" /> - <RegExpr attribute="Selector Id" context="#stay" String="#(-)?(&nmstart;)(&nmchar;)*" /> + <DetectChar attribute="Separator Symbol" context="#stay" char="," /> + <AnyChar attribute="Operator" context="#stay" String="*>+~|" /> + <RegExpr attribute="Selector Id" context="#stay" String="#[-]?(&nmstart;)(&nmchar;)*" /> <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" /> - <RegExpr attribute="Selector Pseudo" context="#stay" String=":lang\([\w_-]+\)" /> - <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" /> + <RegExpr attribute="Selector Tag" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" /> </context> <!-- find functions // rgba(255,255,255,0.75) --> <context name="FindFunctions" attribute="Normal Text" lineEndContext="#stay"> - <RegExpr attribute="Function" context="Function" String="[a-z\-]+\(" lookAhead="true" /> + <RegExpr attribute="Function" context="Function" String="[a-z\-]{2,}\(" lookAhead="true" /> </context> <!-- find values // 10px 12pt 2.5em 1rem 75% #ffcc99 red solid --> <context name="FindValues" attribute="Normal Text" lineEndContext="#stay"> - <RegExpr attribute="Annotation" context="#stay" String="!important\b" /> + <DetectChar attribute="Annotation" context="Annotation" char="!" /> + <keyword attribute="Value Keyword" context="#stay" String="value keywords" /> <keyword attribute="Value" context="#stay" String="values" /> - <keyword attribute="Value" context="#stay" String="colors" /> - <RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" /> - <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\b" /> - <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+[%]?" /> - <RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" /> + <keyword attribute="Color" context="#stay" String="colors" /> + <RegExpr attribute="Color" context="#stay" String="#([0-9A-Fa-f]{3}){1,2}\b" /> + <RegExpr attribute="Number" context="FindUnits" String="[-+]?[0-9.]+(?![-+])" /> + <RegExpr attribute="Normal Text" context="#stay" String="[-]?(&nmstart;)(&nmchar;)*" /> + </context> + + <context name="Annotation" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> + <WordDetect attribute="Annotation" context="#pop" String="important" /> + </context> + + <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop"> + <RegExpr attribute="Unit" context="#stay" String="(%|(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\b)(?![-+])" /> </context> <!-- find strings // "some words" 'some words' --> @@ -943,70 +1404,278 @@ Changelog: <!-- find comments // /* comment */ --> <context name="FindComments" attribute="Normal Text" lineEndContext="#stay"> - <RegExpr attribute="Region Marker" context="#stay" String="/\*BEGIN.*\*/" beginRegion="UserDefined" /> - <RegExpr attribute="Region Marker" context="#stay" String="/\*END.*\*/" endRegion="UserDefined" /> + <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="true"/> + <Detect2Chars attribute="Error" context="Error" char="/" char1="/" /> + </context> + + <context name="Error" attribute="Error" lineEndContext="#pop"> + <RegExpr attribute="Error" context="#pop" String=".*" /> + </context> + + <context name="IsComments" attribute="Normal Text" lineEndContext="#stay"> + <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*BEGIN\b.*\*/" beginRegion="UserDefined" /> + <RegExpr attribute="Region Marker" context="#pop" String="/\*\s*END\b.*\*/" endRegion="UserDefined" /> <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" /> </context> + <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop"> + <keyword attribute="At Rule" context="#pop!NestedAtRule" String="nested at-rules" /> + <keyword attribute="At Rule" context="#pop!AtRule" String="at-rules" /> + <keyword attribute="At Rule" context="#pop!@keyframes" String="@keyframes" /> + <keyword attribute="At Rule" context="#pop!@viewport" String="@viewport" /> + <keyword attribute="At Rule" context="#pop!@font-face" String="@font-face" /> + <keyword attribute="At Rule" context="#pop!@page" String="@page" /> + <RegExpr attribute="At Rule" context="#pop!UnknownAtRule" String="@[a-zA-Z0-9\-_]+\b" /> + </context> + + <context name="@keyframes" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <IncludeRules context="FindComments" /> + <DetectChar attribute="Normal Text" context="Within-@keyframes" char="{" beginRegion="ruleset" /> + </context> + + <context name="Within-@keyframes" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <IncludeRules context="FindComments" /> + <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset" /> + <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" /> + <keyword attribute="Value" context="#stay" String="within-@keyframes" /> + <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+%" /> + </context> + + <context name="@viewport" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <IncludeRules context="FindComments" /> + <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" /> + <DetectChar attribute="Normal Text" context="#pop!Within-@viewport" char="{" beginRegion="ruleset" /> + </context> + + <context name="Within-@viewport" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <keyword attribute="Property" context="IsProperty" String="within-@viewport" /> + <IncludeRules context="RuleSet" /> + </context> + + <context name="@font-face" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <IncludeRules context="FindComments" /> + <DetectChar attribute="Normal Text" context="#pop!Within-@font-face" char="{" beginRegion="ruleset" /> + </context> + + <context name="Within-@font-face" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <IncludeRules context="FindComments" /> + <keyword attribute="Property" context="IsProperty" String="within-@font-face" /> + <RegExpr attribute="Unknown Property" context="IsProperty" String="[A-Za-z_-]+\b" /> + <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" /> + </context> + + <context name="@page" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <IncludeRules context="FindComments" /> + <DetectChar attribute="Selector Pseudo" context="SelectorPseudo-@page" char=":" /> + <DetectChar attribute="Normal Text" context="#pop!Within-@page" char="{" beginRegion="ruleset" /> + </context> + + <context name="SelectorPseudo-@page" attribute="Selector Pseudo" lineEndContext="#pop"> + <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses-@page" /> + <RegExpr attribute="Selector Pseudo" context="#pop" String="[-a-zA-Z][-a-zA-Z0-9]*" /> + </context> + + <context name="Within-@page" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <keyword attribute="Property" context="IsProperty" String="within-@page" /> + <IncludeRules context="RuleSet" /> + </context> + + <context name="IsProperty" attribute="Error" lineEndContext="#stay"> + <DetectSpaces attribute="Normal Text" /> + <DetectChar attribute="Normal Text" context="RuleParameters" char=":" /> + </context> + + <context name="NestedAtRule" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Normal Text" context="NestedBase" char="{" beginRegion="ruleset" /> + <IncludeRules context="AtRuleValue" /> + </context> + + <context name="NestedBase" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="ruleset" /> + <IncludeRules context="Base" /> + </context> + <context name="AtRule" attribute="Normal Text" lineEndContext="#pop"> + <DetectSpaces /> + <DetectChar attribute="Separator Symbol" context="#pop" char=";" /> + <IncludeRules context="AtRuleValue" /> + </context> + + <context name="UnknownAtRule" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Separator Symbol" context="#pop" char=";" /> + <DetectChar attribute="Normal Text" context="#pop!RuleSet" char="{" beginRegion="ruleset" /> + <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" /> + <IncludeRules context="AtRuleValue" /> + </context> + + <context name="AtRuleValue" attribute="Normal Text" lineEndContext="#stay"> <IncludeRules context="FindComments" /> <IncludeRules context="FindStrings" /> - <keyword attribute="Value" context="#stay" String="mediatypes" /> - <keyword attribute="Property" context="#stay" String="media_features" /> - <AnyChar attribute="Normal Text" context="#pop" String=";{" lookAhead="true" /> + <IncludeRules context="FindFunctions" /> + <keyword attribute="Keyword" context="#stay" String="media operators" /> + <RegExpr attribute="Property" context="#stay" String="[A-Za-z_-]+(?=\s*:)" /> + <keyword attribute="Value" context="#stay" String="medias" /> <IncludeRules context="FindValues" /> </context> <context name="SelectorAttr" attribute="Selector Attribute" lineEndContext="#stay"> <DetectChar attribute="Selector Attribute" context="#pop" char="]" /> <IncludeRules context="FindStrings" /> + <DetectChar attribute="Operator" context="SelectorAttrValue" char="=" /> + <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="~" char1="=" /> + <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="^" char1="=" /> + <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="$" char1="=" /> + <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="*" char1="=" /> + <Detect2Chars attribute="Operator" context="SelectorAttrValue" char="|" char1="=" /> + <DetectIdentifier /> </context> - <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop" - fallthrough="true" fallthroughContext="#pop"> - <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" /> + <context name="SelectorAttrValue" attribute="String" lineEndContext="#stay"> + <DetectChar attribute="Selector Attribute" context="#pop#pop" char="]" /> + <DetectIdentifier /> + </context> + + <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop"> + <DetectChar attribute="Selector Pseudo" context="SelectorPseudoElements" char=":" /> + <keyword attribute="Selector Pseudo" context="SelectorPseudoValueSelector" String="pseudoclass-not" /> + <keyword attribute="Selector Pseudo" context="SelectorPseudoValue" String="pseudoclasses" /> + <RegExpr attribute="Selector Pseudo" context="SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" /> + </context> + + <context name="SelectorPseudoElements" attribute="Selector Pseudo" lineEndContext="#pop#pop"> + <keyword attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="pseudoelements" /> + <RegExpr attribute="Selector Pseudo" context="#pop!SelectorPseudoValue" String="[-a-zA-Z][-a-zA-Z0-9]*" /> + </context> + + <context name="SelectorPseudoValueSelector" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop"> + <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueCloseSelector" char="(" /> + </context> + + <context name="SelectorPseudoValueCloseSelector" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" /> + <DetectChar attribute="Error" context="#pop#pop#pop!RuleSet" char="{" beginRegion="ruleset" /> + <IncludeRules context="FindSelector" /> + </context> + + <context name="SelectorPseudoValue" attribute="Selector Pseudo" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop"> + <DetectChar attribute="Selector Pseudo" context="SelectorPseudoValueClose" char="(" /> + </context> + + <context name="SelectorPseudoValueClose" attribute="Selector Pseudo" lineEndContext="#pop#pop#pop"> + <DetectChar attribute="Selector Pseudo" context="#pop#pop#pop" char=")" /> + <DetectIdentifier /> </context> <context name="Comment" attribute="Comment" lineEndContext="#stay"> - <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment" /> + <DetectSpaces /> + <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="comment" /> <IncludeRules context="##Alerts" /> + <DetectIdentifier /> </context> <context name="RuleSet" attribute="Normal Text" lineEndContext="#stay"> - <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" /> + <DetectSpaces /> <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" /> - <RegExpr attribute="Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" lookAhead="true" /> + <RegExpr attribute="Property" context="Rule" String="[A-Za-z_-]+(?=\s*:)" lookAhead="true" /> <IncludeRules context="Base" /> + <RegExpr attribute="Normal Text" context="#stay" String="[A-Za-z_-]+" /> + <!-- auto-completion only, includes by previous rule --> + <keyword attribute="Normal Text" context="#stay" String="properties" /> </context> <context name="Rule" attribute="Normal Text" lineEndContext="#stay"> <DetectChar attribute="Normal Text" context="RuleParameters" char=":" /> + <Detect2Chars attribute="Variable" context="IsVariable" char="-" char1="-" /> <keyword attribute="Property" context="#stay" String="properties" /> - <RegExpr attribute="Unknown Property" context="#stay" String="-?[A-Za-z_-]+(?=\s*:)" /> - <RegExpr attribute="Error" context="#stay" String="\S" /> + <RegExpr attribute="Unknown Property" context="#stay" String="[^:]+" /> + </context> + + <context name="IsVariable" attribute="Normal Text" lineEndContext="#pop"> + <DetectChar attribute="Normal Text" context="#pop!RuleParameters" char=":" /> + <RegExpr attribute="Variable" context="#stay" String="[^:]+" /> </context> <context name="RuleParameters" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> <IncludeRules context="FindComments" /> <IncludeRules context="FindStrings" /> <IncludeRules context="FindFunctions" /> <IncludeRules context="FindValues" /> <!-- Jump out conditions --> - <DetectChar attribute="Normal Text" context="#pop#pop" char=";" /> + <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";" /> + <DetectChar attribute="Separator Symbol" context="#stay" char="," /> <DetectChar attribute="Normal Text" context="#pop#pop#pop" char="}" endRegion="ruleset" /> + <!-- auto-completion only --> + <keyword attribute="Normal Text" context="#stay" String="functions" /> </context> <context name="Function" attribute="Normal Text" lineEndContext="#stay"> - <DetectChar attribute="Normal Text" context="FunctionParameters" char="(" /> + <DetectChar attribute="Function" context="FunctionParameters" char="(" /> + <StringDetect attribute="Function" context="FunctionVar" String="var(" /> + <StringDetect attribute="Function" context="FunctionUrl" String="url(" /> + <StringDetect attribute="Function" context="FunctionCalc" String="calc(" /> <keyword attribute="Function" context="#stay" String="functions" /> + <RegExpr attribute="Normal Text" context="#stay" String="[-a-zA-Z][-a-zA-Z0-9]*" /> + </context> + + <context name="FunctionVar" attribute="Variable" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop!FunctionParameters"> + <DetectSpaces /> + <RegExpr attribute="Variable" context="#pop!FunctionParameters" String="--[^ \t\),]+" /> + </context> + + <context name="FunctionCalc" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Function" context="#pop#pop" char=")" /> + <IncludeRules context="Calc" /> + </context> + + <context name="NestedCalc" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Normal Text" context="#pop" char=")" /> + <IncludeRules context="Calc" /> + </context> + + <context name="Calc" attribute="Normal Text" lineEndContext="#stay"> + <DetectChar attribute="Separator Symbol" context="#stay" char="," /> + <DetectChar attribute="Normal Text" context="NestedCalc" char="(" /> + <IncludeRules context="FindComments" /> + <IncludeRules context="FindStrings" /> + <IncludeRules context="FindFunctions" /> + <IncludeRules context="FindValues" /> + <RegExpr attribute="Operator" context="#stay" String="[-](?=$|[ \t(,;])|[+](?=$|[^0-9)])|[/*]" /> + <!-- auto-completion only --> + <keyword attribute="Normal Text" context="#stay" String="functions" /> + </context> + + <context name="FunctionUrl" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="UrlValue"> + <DetectSpaces /> + <IncludeRules context="FindStrings" /> + <DetectChar attribute="Function" context="#pop#pop" char=")" /> + </context> + + <context name="UrlValue" attribute="String" lineEndContext="#stay"> + <DetectChar attribute="Function" context="#pop#pop#pop" char=")" /> </context> <context name="FunctionParameters" attribute="Normal Text" lineEndContext="#stay"> + <DetectSpaces /> + <DetectChar attribute="Function" context="#pop#pop" char=")" /> <IncludeRules context="FindComments" /> <IncludeRules context="FindStrings" /> <IncludeRules context="FindValues" /> - <!-- Jump out conditions --> - <DetectChar attribute="Normal Text" context="#pop#pop" char=")" /> + <DetectChar attribute="Separator Symbol" context="#stay" char="," /> </context> <!-- string contexts --> @@ -1021,8 +1690,8 @@ Changelog: </context> <context name="InsideString" attribute="String" lineEndContext="#stay"> - <RegExpr attribute="String" context="#stay" String="\\["']" /> - <DetectIdentifier/> + <RegExpr attribute="SpecialChar" context="#stay" String="\\([0-9A-Fa-f]{1,6}|.?)" /> + <RegExpr attribute="String" context="#stay" String="\\?[^"'\\]+" /> </context> </contexts> @@ -1030,16 +1699,26 @@ Changelog: <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/> <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/> + <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/> <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/> <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/> <itemData name="String" defStyleNum="dsString"/> + <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/> + <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/> + <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/> <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/> + <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/> + <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/> + <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/> + <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/> + <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/> <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/> <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/> <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/> <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/> <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/> <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/> + <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/> <itemData name="Comment" defStyleNum="dsComment" /> <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/> <itemData name="Error" defStyleNum="dsError" spellChecking="false"/> @@ -1047,7 +1726,7 @@ Changelog: </highlighting> <general> - <keywords casesensitive="0" weakDeliminator="-%"/> + <keywords casesensitive="0" weakDeliminator="-%@" /> <comments> <comment name="multiLine" start="/*" end="*/" /> </comments> |