Warning, /frameworks/syntax-highlighting/data/syntax/scss.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004   <!-- https://www.w3.org/TR/CSS22/syndata.html#tokenization -->
0005   <!ENTITY escaped "\\([0-9a-fA-F]{1,6}|[^\n\r\f0-9a-fA-F])">
0006   <!-- identifiers starting with several - are invalid, but supported by browsers -->
0007   <!ENTITY ident2  "([-\w]+|&escaped;)+">
0008   <!ENTITY selector "(&ident2;|(?=\#\{))">
0009   <!ENTITY ident   "-?([_a-zA-Z]+|&escaped;)([-_a-zA-Z0-9]+|&escaped;)*">
0010   <!ENTITY var     "--[-\w]*">
0011   <!ENTITY func    "[-_a-zA-Z][-_a-zA-Z0-9]*">
0012   <!ENTITY propcheck "(?=\s*(/[*].*?[*]/\s*)?:)">
0013 
0014   <!-- #{...} and #{...#{...}...} -->
0015   <!ENTITY interpolation "#\{([^}#]*+|#\{[^}]*+\})*+\}">
0016   <!ENTITY comment "/\*.*?\*/">
0017   <!ENTITY spaces "(\s|&comment;)*+">
0018   <!-- TODO -->
0019   <!ENTITY pseudoclasses "active|any-link|autofill|buffering|checked|current|default|defined|dir|disabled|empty|enabled|first|first-child|first-of-type|focus|focus-visible|focus-within|fullscreen|has|host|host-context|hover|in-range|indeterminate|invalid|is|lang|last-child|last-of-type|left|link|local-link|modal|muted|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|optional|out-of-range|paused|picture-in-picture|placeholder-shown|playing|read-only|read-write|required|right|root|scope|seeking|stalled|target|user-invalid|user-valid|valid|visited|volume-locked|where">
0020 
0021   <!ENTITY propvar1 "([-_a-zA-Z0-9]*+\.)?\$">
0022   <!ENTITY propvar2 "--[-_a-zA-Z0-9]*+&spaces;:">
0023   <!ENTITY maybeprop "([-a-zA-Z]++|&interpolation;)+&spaces;:(?!:)">
0024   <!ENTITY assumeprop "([^-a-zA-Z]|$|((?!(&pseudoclasses;)\b)[^;{}:]*+(\s*[;}]|$)))">
0025 ]>
0026 
0027 <!--
0028 
0029 Kate SCSS syntax highlighting definition
0030 
0031 Changelog:
0032 
0033 - Version 7, by Jonathan Poelen
0034 - fix tag followed by a pseudo-class in a nested rule (@media, ...)
0035 - fix constraint in a rule
0036 - fix Kate auto-completion for properties and rules
0037 - fix highlighting of pseudoclass/pseudoelement in a sub-rule
0038 - New highlighting categories: Keyword, Operator, Separator Symbol, SpecialChar, Value Keyword, Color, Number, Unit, Selector Tag, Placeholder Selector
0039 
0040 - Version 4, by Guo Yunhe guoyunhebrave@gmail.com
0041 - Remake for complex SCSS syntax, avoid errors
0042 
0043 - Version 2.06, by Guo Yunhe
0044 - Add all W3C Work Draft properties, inherit rules from css.xml
0045 
0046 - Version 1.2.03.6, by Mte90
0047 - Css3 Tag
0048 
0049 - Version 1.2.03.1, by Tijn Schuurmans
0050 - Added basic support for "@include mixin();"
0051 - Clean the indentation to use 4 spaces everywhere
0052 
0053 -->
0054 
0055 <language name="SCSS" version="17" kateversion="5.79" section="Markup" extensions="*.scss" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
0056 
0057     <highlighting>
0058         <list name="properties">
0059             <include>properties##CSS</include>
0060         </list>
0061 
0062         <list name="vendor properties">
0063             <include>vendor properties##CSS</include>
0064         </list>
0065 
0066         <list name="sub-properties">
0067             <item>-webkit</item>
0068             <item>-webkit-line</item>
0069             <item>-webkit-text</item>
0070             <item>-webkit-text-fill</item>
0071             <item>accent</item>
0072             <item>action</item>
0073             <item>additive</item>
0074             <item>adjust</item>
0075             <item>after</item>
0076             <item>align</item>
0077             <item>align-last</item>
0078             <item>alternates</item>
0079             <item>anchor</item>
0080             <item>animation-fill</item>
0081             <item>animation-iteration</item>
0082             <item>animation-play</item>
0083             <item>animation-timing</item>
0084             <item>area</item>
0085             <item>areas</item>
0086             <item>as</item>
0087             <item>ascent</item>
0088             <item>asian</item>
0089             <item>aspect</item>
0090             <item>attachment</item>
0091             <item>auto</item>
0092             <item>auto-columns</item>
0093             <item>auto-flow</item>
0094             <item>auto-rows</item>
0095             <item>backdrop</item>
0096             <item>backface</item>
0097             <item>background-blend</item>
0098             <item>base</item>
0099             <item>basis</item>
0100             <item>before</item>
0101             <item>behavior</item>
0102             <item>behavior-block</item>
0103             <item>behavior-inline</item>
0104             <item>behavior-x</item>
0105             <item>behavior-y</item>
0106             <item>bidi</item>
0107             <item>blend</item>
0108             <item>blend-mode</item>
0109             <item>block</item>
0110             <item>block-color</item>
0111             <item>block-end</item>
0112             <item>block-end-color</item>
0113             <item>block-end-style</item>
0114             <item>block-end-width</item>
0115             <item>block-start</item>
0116             <item>block-start-color</item>
0117             <item>block-start-style</item>
0118             <item>block-start-width</item>
0119             <item>block-style</item>
0120             <item>block-width</item>
0121             <item>border-bottom-left</item>
0122             <item>border-bottom-right</item>
0123             <item>border-end</item>
0124             <item>border-end-end</item>
0125             <item>border-end-start</item>
0126             <item>border-mode</item>
0127             <item>border-outset</item>
0128             <item>border-repeat</item>
0129             <item>border-slice</item>
0130             <item>border-source</item>
0131             <item>border-start</item>
0132             <item>border-start-end</item>
0133             <item>border-start-start</item>
0134             <item>border-top-left</item>
0135             <item>border-top-right</item>
0136             <item>bottom-color</item>
0137             <item>bottom-left</item>
0138             <item>bottom-left-radius</item>
0139             <item>bottom-right</item>
0140             <item>bottom-right-radius</item>
0141             <item>bottom-style</item>
0142             <item>bottom-width</item>
0143             <item>box</item>
0144             <item>box-decoration</item>
0145             <item>break</item>
0146             <item>caps</item>
0147             <item>caption</item>
0148             <item>caret</item>
0149             <item>cells</item>
0150             <item>change</item>
0151             <item>character</item>
0152             <item>chars</item>
0153             <item>clamp</item>
0154             <item>clip</item>
0155             <item>clip-margin</item>
0156             <item>collapse</item>
0157             <item>color-adjust</item>
0158             <item>colors</item>
0159             <item>column</item>
0160             <item>column-end</item>
0161             <item>column-start</item>
0162             <item>combine</item>
0163             <item>combine-upright</item>
0164             <item>composite</item>
0165             <item>composition</item>
0166             <item>contain-intrinsic</item>
0167             <item>contain-intrinsic-block</item>
0168             <item>contain-intrinsic-inline</item>
0169             <item>count</item>
0170             <item>counter</item>
0171             <item>decoration</item>
0172             <item>decoration-break</item>
0173             <item>decoration-color</item>
0174             <item>decoration-line</item>
0175             <item>decoration-skip</item>
0176             <item>decoration-skip-ink</item>
0177             <item>decoration-style</item>
0178             <item>decoration-thickness</item>
0179             <item>delay</item>
0180             <item>depth</item>
0181             <item>descent</item>
0182             <item>distance</item>
0183             <item>duration</item>
0184             <item>east</item>
0185             <item>east-asian</item>
0186             <item>emoji</item>
0187             <item>emphasis</item>
0188             <item>emphasis-color</item>
0189             <item>emphasis-position</item>
0190             <item>emphasis-style</item>
0191             <item>empty</item>
0192             <item>end</item>
0193             <item>end-color</item>
0194             <item>end-end</item>
0195             <item>end-end-radius</item>
0196             <item>end-radius</item>
0197             <item>end-start</item>
0198             <item>end-start-radius</item>
0199             <item>end-style</item>
0200             <item>end-width</item>
0201             <item>events</item>
0202             <item>family</item>
0203             <item>feature</item>
0204             <item>feature-settings</item>
0205             <item>fill</item>
0206             <item>fill-color</item>
0207             <item>fill-mode</item>
0208             <item>fit</item>
0209             <item>flow</item>
0210             <item>font-feature</item>
0211             <item>font-language</item>
0212             <item>font-optical</item>
0213             <item>font-synthesis-small</item>
0214             <item>font-variant-east</item>
0215             <item>font-variation</item>
0216             <item>forced</item>
0217             <item>forced-color</item>
0218             <item>function</item>
0219             <item>gap-override</item>
0220             <item>grid-auto</item>
0221             <item>grow</item>
0222             <item>gutter</item>
0223             <item>hanging</item>
0224             <item>hyphenate</item>
0225             <item>hyphenate-limit</item>
0226             <item>image</item>
0227             <item>image-outset</item>
0228             <item>image-repeat</item>
0229             <item>image-slice</item>
0230             <item>image-source</item>
0231             <item>image-threshold</item>
0232             <item>image-width</item>
0233             <item>increment</item>
0234             <item>indent</item>
0235             <item>index</item>
0236             <item>initial</item>
0237             <item>ink</item>
0238             <item>inline</item>
0239             <item>inline-color</item>
0240             <item>inline-end</item>
0241             <item>inline-end-color</item>
0242             <item>inline-end-style</item>
0243             <item>inline-end-width</item>
0244             <item>inline-start</item>
0245             <item>inline-start-color</item>
0246             <item>inline-start-style</item>
0247             <item>inline-start-width</item>
0248             <item>inline-style</item>
0249             <item>inline-width</item>
0250             <item>inside</item>
0251             <item>intrinsic</item>
0252             <item>intrinsic-block</item>
0253             <item>intrinsic-block-size</item>
0254             <item>intrinsic-height</item>
0255             <item>intrinsic-inline</item>
0256             <item>intrinsic-inline-size</item>
0257             <item>intrinsic-size</item>
0258             <item>intrinsic-width</item>
0259             <item>items</item>
0260             <item>iteration</item>
0261             <item>iteration-count</item>
0262             <item>justify</item>
0263             <item>kerning</item>
0264             <item>language</item>
0265             <item>language-override</item>
0266             <item>last</item>
0267             <item>layout</item>
0268             <item>left-color</item>
0269             <item>left-radius</item>
0270             <item>left-style</item>
0271             <item>left-width</item>
0272             <item>letter</item>
0273             <item>ligatures</item>
0274             <item>limit</item>
0275             <item>limit-chars</item>
0276             <item>line</item>
0277             <item>line-clamp</item>
0278             <item>line-gap</item>
0279             <item>list</item>
0280             <item>math</item>
0281             <item>max</item>
0282             <item>max-block</item>
0283             <item>max-inline</item>
0284             <item>min</item>
0285             <item>min-block</item>
0286             <item>min-inline</item>
0287             <item>mix</item>
0288             <item>mix-blend</item>
0289             <item>mode</item>
0290             <item>name</item>
0291             <item>numeric</item>
0292             <item>object</item>
0293             <item>optical</item>
0294             <item>optical-sizing</item>
0295             <item>orientation</item>
0296             <item>origin</item>
0297             <item>outset</item>
0298             <item>outside</item>
0299             <item>overflow-clip</item>
0300             <item>override</item>
0301             <item>overscroll</item>
0302             <item>page-break</item>
0303             <item>paint</item>
0304             <item>palette</item>
0305             <item>path</item>
0306             <item>place</item>
0307             <item>play</item>
0308             <item>play-state</item>
0309             <item>pointer</item>
0310             <item>position-x</item>
0311             <item>position-y</item>
0312             <item>print</item>
0313             <item>print-color</item>
0314             <item>property</item>
0315             <item>punctuation</item>
0316             <item>radius</item>
0317             <item>ratio</item>
0318             <item>rendering</item>
0319             <item>repeat</item>
0320             <item>reset</item>
0321             <item>right-color</item>
0322             <item>right-radius</item>
0323             <item>right-style</item>
0324             <item>right-width</item>
0325             <item>row</item>
0326             <item>row-end</item>
0327             <item>row-start</item>
0328             <item>rows</item>
0329             <item>ruby</item>
0330             <item>rule</item>
0331             <item>rule-color</item>
0332             <item>rule-style</item>
0333             <item>rule-width</item>
0334             <item>scheme</item>
0335             <item>scroll</item>
0336             <item>scroll-snap</item>
0337             <item>scrollbar</item>
0338             <item>select</item>
0339             <item>self</item>
0340             <item>set</item>
0341             <item>settings</item>
0342             <item>shadow</item>
0343             <item>shape</item>
0344             <item>shape-image</item>
0345             <item>shrink</item>
0346             <item>side</item>
0347             <item>sizing</item>
0348             <item>skip</item>
0349             <item>skip-ink</item>
0350             <item>slice</item>
0351             <item>small</item>
0352             <item>small-caps</item>
0353             <item>snap</item>
0354             <item>snap-align</item>
0355             <item>snap-stop</item>
0356             <item>snap-type</item>
0357             <item>source</item>
0358             <item>space</item>
0359             <item>spacing</item>
0360             <item>span</item>
0361             <item>speak</item>
0362             <item>start</item>
0363             <item>start-color</item>
0364             <item>start-end</item>
0365             <item>start-end-radius</item>
0366             <item>start-radius</item>
0367             <item>start-start</item>
0368             <item>start-start-radius</item>
0369             <item>start-style</item>
0370             <item>start-width</item>
0371             <item>state</item>
0372             <item>stop</item>
0373             <item>stretch</item>
0374             <item>stroke</item>
0375             <item>stroke-color</item>
0376             <item>stroke-width</item>
0377             <item>style</item>
0378             <item>style-image</item>
0379             <item>style-position</item>
0380             <item>style-type</item>
0381             <item>synthesis</item>
0382             <item>synthesis-position</item>
0383             <item>synthesis-small</item>
0384             <item>synthesis-small-caps</item>
0385             <item>synthesis-style</item>
0386             <item>synthesis-weight</item>
0387             <item>tab</item>
0388             <item>table</item>
0389             <item>template</item>
0390             <item>template-areas</item>
0391             <item>template-columns</item>
0392             <item>template-rows</item>
0393             <item>text</item>
0394             <item>text-combine</item>
0395             <item>text-decoration-skip</item>
0396             <item>text-fill</item>
0397             <item>text-fill-color</item>
0398             <item>text-stroke</item>
0399             <item>text-stroke-color</item>
0400             <item>text-stroke-width</item>
0401             <item>text-underline</item>
0402             <item>thickness</item>
0403             <item>threshold</item>
0404             <item>timing</item>
0405             <item>timing-function</item>
0406             <item>top-color</item>
0407             <item>top-left</item>
0408             <item>top-left-radius</item>
0409             <item>top-right</item>
0410             <item>top-right-radius</item>
0411             <item>top-style</item>
0412             <item>top-width</item>
0413             <item>touch</item>
0414             <item>transition-timing</item>
0415             <item>type</item>
0416             <item>underline</item>
0417             <item>underline-offset</item>
0418             <item>underline-position</item>
0419             <item>unicode</item>
0420             <item>upright</item>
0421             <item>user</item>
0422             <item>value</item>
0423             <item>variant</item>
0424             <item>variant-alternates</item>
0425             <item>variant-caps</item>
0426             <item>variant-east</item>
0427             <item>variant-east-asian</item>
0428             <item>variant-emoji</item>
0429             <item>variant-ligatures</item>
0430             <item>variant-numeric</item>
0431             <item>variant-position</item>
0432             <item>variation</item>
0433             <item>variation-settings</item>
0434             <item>vertical</item>
0435             <item>weight</item>
0436             <item>white</item>
0437             <item>will</item>
0438             <item>word</item>
0439             <item>wrap</item>
0440             <item>writing</item>
0441             <item>x</item>
0442             <item>y</item>
0443             <item>z</item>
0444         </list>
0445 
0446         <list name="media types">
0447             <include>media types##CSS</include>
0448         </list>
0449 
0450         <list name="media features">
0451             <include>media features##CSS</include>
0452         </list>
0453 
0454         <list name="special values">
0455             <item>true</item>
0456             <item>false</item>
0457             <item>null</item>
0458         </list>
0459 
0460         <list name="value keywords">
0461             <include>value keywords##CSS</include>
0462         </list>
0463 
0464         <list name="values">
0465             <include>values##CSS</include>
0466         </list>
0467 
0468         <list name="colors">
0469             <include>colors##CSS</include>
0470         </list>
0471 
0472         <list name="functions">
0473             <include>functions##CSS</include>
0474 
0475             <!-- https://sass-lang.com/documentation/modules/ -->
0476 
0477             <!-- color -->
0478             <item>adjust-color</item>
0479             <item>adjust-hue</item>
0480             <item>alpha</item>
0481             <item>blue</item>
0482             <item>change-color</item>
0483             <item>color.alpha</item>
0484             <item>color.blackness</item>
0485             <item>color.blue</item>
0486             <item>color.complement</item>
0487             <item>color.grayscale</item>
0488             <item>color.green</item>
0489             <item>color.hue</item>
0490             <item>color.hwb</item>
0491             <item>color.ie-hex-str</item>
0492             <item>color.invert</item>
0493             <item>color.lightness</item>
0494             <item>color.mix</item>
0495             <item>color.red</item>
0496             <item>color.saturate</item>
0497             <item>color.saturation</item>
0498             <item>color.whiteness</item>
0499             <item>complement</item>
0500             <item>darken</item>
0501             <item>desaturate</item>
0502             <item>fade-in</item>
0503             <item>fade-out</item>
0504             <item>green</item>
0505             <item>hue</item>
0506             <item>ie-hex-str</item>
0507             <item>lighten</item>
0508             <item>lightness</item>
0509             <item>mix</item>
0510             <item>opacify</item>
0511             <item>red</item>
0512             <item>saturation</item>
0513             <item>scale-color</item>
0514             <item>transparentize</item>
0515 
0516             <!-- index -->
0517             <item>hsla</item>
0518             <item>if</item>
0519             <item>rgba</item>
0520 
0521             <!-- list -->
0522             <item>append</item>
0523             <item>index</item>
0524             <item>is-bracketed</item>
0525             <item>join</item>
0526             <item>length</item>
0527             <item>list-separator</item>
0528             <item>list.append</item>
0529             <item>list.index</item>
0530             <item>list.is-bracketed</item>
0531             <item>list.join</item>
0532             <item>list.length</item>
0533             <item>list.nth</item>
0534             <item>list.separator</item>
0535             <item>list.set-nth</item>
0536             <item>list.slash</item>
0537             <item>list.zip</item>
0538             <item>nth</item>
0539             <item>set-nth</item>
0540             <item>zip</item>
0541 
0542             <!-- map -->
0543             <item>map-get</item>
0544             <item>map-has-key</item>
0545             <item>map-keys</item>
0546             <item>map-merge</item>
0547             <item>map-remove</item>
0548             <item>map-values</item>
0549             <item>map.deep-merge</item>
0550             <item>map.deep-remove</item>
0551             <item>map.get</item>
0552             <item>map.has-key</item>
0553             <item>map.keys</item>
0554             <item>map.merge</item>
0555             <item>map.remove</item>
0556             <item>map.set</item>
0557             <item>map.values</item>
0558 
0559             <!-- math -->
0560             <item>ceil</item>
0561             <item>comparable</item>
0562             <item>floor</item>
0563             <item>math.abs</item>
0564             <item>math.acos</item>
0565             <item>math.asin</item>
0566             <item>math.atan</item>
0567             <item>math.atan2</item>
0568             <item>math.ceil</item>
0569             <item>math.clamp</item>
0570             <item>math.compatible</item>
0571             <item>math.cos</item>
0572             <item>math.div</item>
0573             <item>math.floor</item>
0574             <item>math.hypot</item>
0575             <item>math.is-unitless</item>
0576             <item>math.log</item>
0577             <item>math.max</item>
0578             <item>math.min</item>
0579             <item>math.percentage</item>
0580             <item>math.pow</item>
0581             <item>math.random</item>
0582             <item>math.round</item>
0583             <item>math.sin</item>
0584             <item>math.sqrt</item>
0585             <item>math.tan</item>
0586             <item>math.unit</item>
0587             <item>percentage</item>
0588             <item>random</item>
0589             <item>unit</item>
0590             <item>unitless</item>
0591 
0592             <!-- meta -->
0593             <item>call</item>
0594             <item>content-exists</item>
0595             <item>feature-exists</item>
0596             <item>function-exists</item>
0597             <item>get-function</item>
0598             <item>global-variable-exists</item>
0599             <item>inspect</item>
0600             <item>keywords</item>
0601             <item>meta.calc-args</item>
0602             <item>meta.calc-name</item>
0603             <item>meta.call</item>
0604             <item>meta.content-exists</item>
0605             <item>meta.feature-exists</item>
0606             <item>meta.function-exists</item>
0607             <item>meta.get-function</item>
0608             <item>meta.global-variable-exists</item>
0609             <item>meta.inspect</item>
0610             <item>meta.keywords</item>
0611             <item>meta.load-css</item>
0612             <item>meta.mixin-exists</item>
0613             <item>meta.module-functions</item>
0614             <item>meta.module-variables</item>
0615             <item>meta.type-of</item>
0616             <item>meta.variable-exists</item>
0617             <item>mixin-exists</item>
0618             <item>type-of</item>
0619             <item>variable-exists</item>
0620 
0621             <!-- selector -->
0622             <item>is-superselector</item>
0623             <item>selector-append</item>
0624             <item>selector-extend</item>
0625             <item>selector-nest</item>
0626             <item>selector-parse</item>
0627             <item>selector-replace</item>
0628             <item>selector-unify</item>
0629             <item>selector.append</item>
0630             <item>selector.extend</item>
0631             <item>selector.is-superselector</item>
0632             <item>selector.nest</item>
0633             <item>selector.parse</item>
0634             <item>selector.replace</item>
0635             <item>selector.simple-selectors</item>
0636             <item>selector.unify</item>
0637             <item>simple-selectors</item>
0638 
0639             <!-- string -->
0640             <item>quote</item>
0641             <item>str-index</item>
0642             <item>str-insert</item>
0643             <item>str-length</item>
0644             <item>str-slice</item>
0645             <item>string.index</item>
0646             <item>string.insert</item>
0647             <item>string.length</item>
0648             <item>string.quote</item>
0649             <item>string.slice</item>
0650             <item>string.split</item>
0651             <item>string.to-lower-case</item>
0652             <item>string.to-upper-case</item>
0653             <item>string.unique-id</item>
0654             <item>string.unquote</item>
0655             <item>to-lower-case</item>
0656             <item>to-upper-case</item>
0657             <item>unique-id</item>
0658             <item>unquote</item>
0659         </list>
0660 
0661         <!-- prefixed by :: -->
0662         <list name="pseudo-elements">
0663             <include>pseudo-elements##CSS</include>
0664         </list>
0665 
0666         <!-- prefixed by : -->
0667         <list name="pseudo-classes">
0668             <include>pseudo-classes##CSS</include>
0669         </list>
0670 
0671         <list name="@page pseudo-classes">
0672             <include>@page pseudo-classes##CSS</include>
0673         </list>
0674 
0675         <list name="at-rules">
0676             <include>at-rules##CSS</include>
0677 
0678             <!-- scss -->
0679             <item>@at-root</item>
0680             <item>@content</item>
0681             <item>@debug</item>
0682             <item>@each</item>
0683             <item>@else</item>
0684             <item>@error</item>
0685             <item>@extend</item>
0686             <item>@for</item>
0687             <item>@forward</item>
0688             <item>@function</item>
0689             <item>@if</item>
0690             <item>@import</item>
0691             <item>@include</item>
0692             <item>@mixin</item>
0693             <item>@return</item>
0694             <item>@use</item>
0695             <item>@warn</item>
0696             <item>@while</item>
0697         </list>
0698 
0699         <list name="at-rules definitions">
0700             <include>at-rules definitions##CSS</include>
0701         </list>
0702 
0703         <list name="operators">
0704             <item>and</item>
0705             <item>or</item>
0706             <item>not</item>
0707         </list>
0708 
0709         <list name="media operators">
0710             <item>or</item>
0711             <item>and</item>
0712             <item>only</item>
0713             <item>not</item>
0714         </list>
0715 
0716         <list name="annotations">
0717             <item>important</item>
0718             <item>default</item>
0719             <item>global</item>
0720             <item>optional</item>
0721         </list>
0722 
0723         <contexts>
0724             <context name="Base" attribute="Normal Text" fallthroughContext="Selector">
0725                 <DetectSpaces attribute="Normal Text"/>
0726                 <Detect2Chars context="InterpolationPropertyOrSelector" char="#" char1="{" lookAhead="1"/>
0727                 <AnyChar context="Selector" String="*>+~|&amp;#.%,:[\" lookAhead="1"/>
0728                 <DetectChar attribute="Block Symbol" char="{" beginRegion="ruleset"/>
0729                 <DetectChar attribute="Block Symbol" char="}" endRegion="ruleset"/>
0730                 <DetectChar context="SelectAtRule" char="@" lookAhead="1"/>
0731                 <IncludeRules context="FindComments"/>
0732                 <RegExpr context="Property" String="(&propvar1;|&propvar2;|&maybeprop;&assumeprop;)|" lookAhead="1"/>
0733             </context>
0734             <context name="InterpolationPropertyOrSelector" attribute="Normal Text" fallthroughContext="#pop!Selector">
0735                 <RegExpr context="#pop!Property" String="(&propvar1;|&propvar2;|&maybeprop;&assumeprop;)|" lookAhead="1"/>
0736             </context>
0737 
0738             <!-- selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
0739             <context name="Selector" attribute="Normal Text">
0740                 <DetectSpaces/>
0741                 <DetectChar attribute="Block Symbol" context="#pop" char="{" beginRegion="ruleset"/>
0742                 <DetectChar attribute="Block Symbol" context="#pop" char="}" endRegion="ruleset"/>
0743                 <DetectChar attribute="Separator Symbol" context="#pop" char=";"/>
0744                 <IncludeRules context="FindSelector"/>
0745             </context>
0746 
0747             <!-- selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
0748             <context name="FindSelector" attribute="Normal Text">
0749                 <DetectChar attribute="Separator Symbol" char=","/>
0750                 <DetectChar attribute="Selector Pseudo" context="PseudoClassOrElement" char=":"/>
0751                 <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="["/>
0752                 <DetectChar attribute="Selector Pseudo" context="PseudoClassSelector" char="("/>
0753                 <AnyChar attribute="Selector Symbol" String="*>+~|&amp;"/>
0754                 <IncludeRules context="FindComments"/>
0755                 <IncludeRules context="FindInterpolation"/>
0756                 <RegExpr attribute="Selector Class" String="\.&selector;" context="SelectorClass"/>
0757                 <RegExpr attribute="Selector Id" String="#&selector;" context="SelectorId"/>
0758                 <RegExpr attribute="Selector Tag" String="&ident;"/>
0759                 <RegExpr attribute="Placeholder Selector" String="%&selector;" context="SelectorPlaceholder"/>
0760                 <DetectChar attribute="Error" char="$"/>
0761             </context>
0762 
0763             <context name="SelectorClass" attribute="Selector Class" lineEndContext="#pop" fallthroughContext="#pop">
0764                 <Detect2Chars context="SelectorClass2" char="#" char1="{" lookAhead="1"/>
0765             </context>
0766             <context name="SelectorClass2" attribute="Selector Class" fallthroughContext="#pop#pop">
0767                 <IncludeRules context="FindInterpolation"/>
0768                 <RegExpr String="&ident2;"/>
0769             </context>
0770 
0771             <context name="SelectorId" attribute="Selector Id" lineEndContext="#pop" fallthroughContext="#pop">
0772                 <Detect2Chars context="SelectorId2" char="#" char1="{" lookAhead="1"/>
0773             </context>
0774             <context name="SelectorId2" attribute="Selector Id" fallthroughContext="#pop#pop">
0775                 <IncludeRules context="SelectorClass2"/>
0776             </context>
0777 
0778             <context name="SelectorPlaceholder" attribute="Placeholder Selector" lineEndContext="#pop" fallthroughContext="#pop">
0779                 <Detect2Chars context="SelectorPlaceholder2" char="#" char1="{" lookAhead="1"/>
0780             </context>
0781             <context name="SelectorPlaceholder2" attribute="Placeholder Selector" fallthroughContext="#pop#pop">
0782                 <IncludeRules context="SelectorClass2"/>
0783             </context>
0784 
0785 
0786             <context name="Property" attribute="Normal Text">
0787                 <DetectChar attribute="Property Separator" context="PropertyValues" char=":"/>
0788                 <IncludeRules context="FindVariable"/>
0789                 <IncludeRules context="FindComments"/>
0790                 <IncludeRules context="FindInterpolation"/>
0791                 <Detect2Chars attribute="Variable" context="Variable" char="-" char1="-"/>
0792                 <keyword attribute="Property" String="properties"/>
0793                 <keyword attribute="Property" String="sub-properties"/>
0794                 <IncludeRules context="FindVendorProperty"/>
0795                 <RegExpr attribute="Unknown Property" String="[-_a-zA-Z0-9]++(?!\.)"/>
0796                 <RegExpr attribute="Normal Text" String="[-_a-zA-Z0-9]+\."/>
0797             </context>
0798 
0799             <context name="PropertyValues" attribute="Normal Text">
0800                 <DetectSpaces attribute="Normal Text"/>
0801                 <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
0802                 <DetectChar attribute="Block Symbol" context="#pop#pop!SubProperty" char="{" beginRegion="ruleset"/>
0803                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
0804                 <DetectChar attribute="Separator Symbol" char=","/>
0805                 <DetectChar attribute="Selector Symbol" char="&amp;"/>
0806                 <IncludeRules context="FindStrings"/>
0807                 <IncludeRules context="FindInterpolationWithUnit"/>
0808                 <IncludeRules context="FindComments"/>
0809                 <IncludeRules context="FindFunctions"/>
0810                 <IncludeRules context="FindValues"/>
0811             </context>
0812 
0813             <context name="SubProperty" attribute="Normal Text">
0814                 <DetectSpaces attribute="Normal Text"/>
0815                 <DetectChar attribute="Error" char=";"/>
0816                 <DetectChar attribute="Block Symbol" context="SubProperty" char="{" beginRegion="ruleset"/>
0817                 <DetectChar attribute="Block Symbol" context="#pop" char="}" endRegion="ruleset"/>
0818                 <DetectChar attribute="Property Separator" context="SubPropertyValues" char=":"/>
0819                 <IncludeRules context="Property"/>
0820             </context>
0821             <context name="SubPropertyValues" attribute="Normal Text">
0822                 <DetectChar attribute="Separator Symbol" context="#pop" char=";"/>
0823                 <DetectChar attribute="Block Symbol" context="#pop!SubProperty" char="{" beginRegion="ruleset"/>
0824                 <IncludeRules context="PropertyValues"/>
0825             </context>
0826 
0827 
0828             <!-- find strings // "some words" 'some words' -->
0829             <context name="FindInterpolation" attribute="Normal Text">
0830                 <Detect2Chars attribute="Interpolation" context="Interpolation" char="#" char1="{"/>
0831             </context>
0832             <context name="FindInterpolationWithUnit" attribute="Normal Text">
0833                 <Detect2Chars attribute="Interpolation" context="InterpolationWithUnit" char="#" char1="{"/>
0834             </context>
0835 
0836             <!-- interpolation // #{...} -->
0837 
0838             <context name="Interpolation" attribute="Normal Text">
0839                 <DetectSpaces/>
0840                 <DetectChar attribute="Interpolation" context="#pop" char="}"/>
0841                 <IncludeRules context="FindValueInterpolation"/>
0842             </context>
0843             <context name="InterpolationWithUnit" attribute="Normal Text">
0844                 <DetectSpaces/>
0845                 <DetectChar attribute="Interpolation" context="#pop!FindUnits" char="}"/>
0846                 <IncludeRules context="FindValueInterpolation"/>
0847             </context>
0848             <context name="FindValueInterpolation" attribute="Normal Text" lineEndContext="#pop">
0849                 <DetectChar attribute="Value Keyword" char="&amp;"/>
0850                 <IncludeRules context="FindStrings"/>
0851                 <IncludeRules context="FindInterpolation"/>
0852                 <IncludeRules context="FindComments"/>
0853                 <AnyChar attribute="Operator" String="*/+%=&lt;>!"/>
0854                 <IncludeRules context="FindVariable"/>
0855                 <IncludeRules context="FindFunctions"/>
0856                 <keyword attribute="Operator" String="operators"/>
0857                 <keyword attribute="Value Keyword" String="special values"/>
0858                 <IncludeRules context="FindNumber"/>
0859                 <DetectChar context="OperatorOrIdentifer" char="-" lookAhead="1"/>
0860                 <IncludeRules context="FindIdentifier"/>
0861             </context>
0862 
0863             <context name="FindVariable" attribute="Normal Text">
0864                 <DetectChar attribute="Variable" context="Variable" char="$"/>
0865             </context>
0866             <context name="Variable" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
0867                 <RegExpr attribute="Variable" context="#pop" String="[-_a-zA-Z0-9]*"/>
0868             </context>
0869 
0870             <!-- find functions // rgba(255,255,255,0.75) -->
0871             <context name="FindFunctions" attribute="Normal Text">
0872                 <RegExpr attribute="Function" context="Function" String="&func;\(" lookAhead="1"/>
0873             </context>
0874             <context name="FindNestedFunctions" attribute="Normal Text">
0875                 <RegExpr context="NestedFunction" String="(&func;)?\(" lookAhead="1"/>
0876             </context>
0877 
0878             <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
0879             <context name="FindValues" attribute="Normal Text">
0880                 <AnyChar attribute="Operator" String="*/+%=&lt;>"/>
0881                 <DetectChar attribute="Annotation" context="Annotation" char="!" lookAhead="1"/>
0882                 <IncludeRules context="FindVariable"/>
0883                 <keyword attribute="Operator" String="operators"/>
0884                 <keyword attribute="Value Keyword" String="value keywords" weakDeliminator="."/>
0885                 <keyword attribute="Value Keyword" String="special values" weakDeliminator="."/>
0886                 <keyword attribute="Value" String="values" weakDeliminator="."/>
0887                 <keyword attribute="Named Color" String="colors"/>
0888                 <RegExpr attribute="Color" String="#([0-9A-Fa-f]{8}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{3,4})"/>
0889                 <IncludeRules context="FindNumber"/>
0890                 <DetectChar context="OperatorOrIdentifer" char="-" lookAhead="1"/>
0891                 <IncludeRules context="FindIdentifier"/>
0892             </context>
0893 
0894             <context name="OperatorOrIdentifer" attribute="Normal Text">
0895                 <RegExpr context="#pop" String="-(?![0-9])&ident2;\.?\s*"/>
0896                 <DetectChar context="#pop" attribute="Operator" char="-"/>
0897             </context>
0898 
0899             <context name="FindNumber" attribute="Normal Text" lineEndContext="#pop">
0900                 <RegExpr attribute="Number" context="FindUnits" String="([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?"/>
0901             </context>
0902 
0903             <context name="FindIdentifier" attribute="Normal Text" lineEndContext="#pop">
0904                 <RegExpr String="&ident2;\.?\s*"/>
0905             </context>
0906 
0907             <context name="FindVendorProperty" attribute="Normal Text" lineEndContext="#pop">
0908                 <RegExpr attribute="Vendor Property" String="-(webkit|moz|o|ms)-[-_a-zA-Z0-9]*"/>
0909             </context>
0910 
0911             <context name="Annotation" attribute="Normal Text" lineEndContext="#pop">
0912                 <WordDetect attribute="Annotation" context="#pop" String="!important"/>
0913                 <WordDetect attribute="Annotation" context="#pop" String="!default"/>
0914                 <WordDetect attribute="Annotation" context="#pop" String="!global"/>
0915                 <DetectChar attribute="Operator" context="#pop" char="!"/>
0916             </context>
0917 
0918             <context name="FindUnits" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
0919                 <RegExpr attribute="Unit" context="#pop" String="(%|(em|ex|cap|ch|ic|rem|lh|rlh|vw|vh|vi|vb|vmin|vmax|cqw|cqh|cqi|cqb|cqmin|cqmax|cm|mm|Q|in|pc|pt|px|deg|grad|rad|turn|s|ms|Hz|kHz|fr|dpi|dpcm|dppx|x)\b)"/>
0920             </context>
0921 
0922             <!-- find strings // "some words" 'some words' -->
0923             <context name="FindStrings" attribute="Normal Text">
0924                 <DetectChar attribute="String" context="StringDQ" char="&quot;"/>
0925                 <DetectChar attribute="String" context="StringSQ" char="'"/>
0926             </context>
0927 
0928             <!-- find comments // /* comment */ -->
0929             <context name="FindComments" attribute="Normal Text">
0930                 <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="/" lookAhead="1"/>
0931                 <Detect2Chars attribute="Comment" context="IsComments" char="/" char1="*" lookAhead="1"/>
0932             </context>
0933 
0934             <context name="IsComments" attribute="Normal Text">
0935                 <RegExpr attribute="Region Marker" String="/\*\s*BEGIN\b.*\*/|//\s*BEGIN\b.*" beginRegion="UserDefined"/>
0936                 <RegExpr attribute="Region Marker" String="/\*\s*END\b.*\*/|//\s*END\b.*" endRegion="UserDefined"/>
0937                 <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment"/>
0938                 <Detect2Chars attribute="Comment" context="SassComment" char="/" char1="/"/>
0939             </context>
0940 
0941             <context name="SassComment" attribute="Comment" lineEndContext="#pop#pop">
0942                 <DetectSpaces/>
0943                 <IncludeRules context="##Comments"/>
0944                 <DetectIdentifier/>
0945             </context>
0946 
0947             <context name="SelectAtRule" attribute="At Rule" lineEndContext="#pop">
0948                 <!-- scss -->
0949                 <WordDetect attribute="At Rule" context="@use" String="@use"/>
0950                 <WordDetect attribute="At Rule" context="@mixin" String="@include"/>
0951                 <WordDetect attribute="At Rule" context="@mixin" String="@function"/>
0952                 <WordDetect attribute="At Rule" context="@mixin" String="@mixin"/>
0953                 <WordDetect attribute="At Rule" context="@extend" String="@extend"/>
0954                 <WordDetect attribute="At Rule" context="@expression" String="@content"/>
0955                 <WordDetect attribute="At Rule" context="@use" String="@forward"/>
0956                 <WordDetect attribute="At Rule" context="@expressionBlock" String="@if"/>
0957                 <WordDetect attribute="At Rule" context="@else" String="@else"/>
0958                 <WordDetect attribute="At Rule" context="@each" String="@each"/>
0959                 <WordDetect attribute="At Rule" context="@for" String="@for"/>
0960                 <WordDetect attribute="At Rule" context="@expressionBlock" String="@while"/>
0961                 <WordDetect attribute="At Rule" context="@expression" String="@return"/>
0962                 <WordDetect attribute="At Rule" context="@expression" String="@error"/>
0963                 <WordDetect attribute="At Rule" context="@expression" String="@warn"/>
0964                 <WordDetect attribute="At Rule" context="@expression" String="@debug"/>
0965                 <WordDetect attribute="At Rule" context="@at-root" String="@at-root"/>
0966                 <!-- css -->
0967                 <WordDetect attribute="At Rule" context="@keyframes" String="@keyframes"/>
0968                 <WordDetect attribute="At Rule" context="@layer" String="@layer"/>
0969                 <WordDetect attribute="At Rule" context="@page" String="@page"/>
0970                 <WordDetect attribute="At Rule" context="@supports" String="@supports"/>
0971                 <keyword attribute="At Rule" context="@property" String="at-rules definitions"/>
0972                 <RegExpr attribute="At Rule" context="@media" String="@[-a-zA-Z0-9_]*"/>
0973             </context>
0974 
0975             <context name="AtRuleEnd" attribute="Normal Text">
0976                 <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
0977                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
0978                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
0979             </context>
0980             <context name="AtRuleEndLvl3" attribute="Normal Text">
0981                 <DetectChar attribute="Error" context="#pop#pop#pop" char=";"/>
0982                 <DetectChar attribute="Error" context="#pop#pop#pop" char="{" beginRegion="ruleset"/>
0983                 <DetectChar attribute="Error" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
0984             </context>
0985             <context name="AtRuleBlockEnd" attribute="Normal Text">
0986                 <DetectChar attribute="Error" context="#pop#pop" char=";"/>
0987                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
0988                 <DetectChar attribute="Error" context="#pop#pop" char="}" endRegion="ruleset"/>
0989             </context>
0990 
0991             <context name="AtRuleCommon" attribute="At Rule Text">
0992                 <IncludeRules context="FindVariable"/>
0993                 <IncludeRules context="FindStrings"/>
0994                 <IncludeRules context="FindInterpolation"/>
0995                 <IncludeRules context="FindComments"/>
0996                 <IncludeRules context="AtRuleEnd"/>
0997             </context>
0998             <context name="AtRuleDefinitionCommon" attribute="At Rule Text">
0999                 <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
1000                 <DetectChar attribute="Block Symbol" context="#pop#pop!SubProperty" char="{" beginRegion="ruleset"/>
1001                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
1002                 <IncludeRules context="FindStrings"/>
1003                 <IncludeRules context="FindInterpolation"/>
1004                 <IncludeRules context="FindComments"/>
1005             </context>
1006 
1007 
1008             <context name="@at-root" attribute="At Rule Text">
1009                 <DetectSpaces/>
1010                 <DetectChar char="(" context="#pop!AtRuleMediaCondition" attribute="Condition Open/Close"/>
1011                 <IncludeRules context="AtRuleBlockEnd"/>
1012                 <IncludeRules context="FindComments"/>
1013             </context>
1014 
1015             <context name="@use" attribute="At Rule Text">
1016                 <DetectSpaces/>
1017                 <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
1018                 <DetectChar attribute="Separator Symbol" char=","/>
1019                 <DetectChar context="@useWith" char="(" attribute="Function"/>
1020                 <IncludeRules context="AtRuleCommon"/>
1021                 <WordDetect attribute="Keyword" String="with"/>
1022                 <WordDetect attribute="Keyword" String="hide"/>
1023                 <WordDetect attribute="Keyword" context="@useAs" String="as"/>
1024             </context>
1025             <context name="@useAs" attribute="At Rule Text">
1026                 <DetectSpaces/>
1027                 <DetectIdentifier/>
1028                 <DetectChar attribute="Operator" char="*"/>
1029                 <DetectChar attribute="At Rule Text" char="-"/>
1030                 <DetectChar attribute="Separator Symbol" context="#pop#pop#pop" char=";"/>
1031                 <DetectChar attribute="Error" context="#pop#pop#pop" char="{" beginRegion="ruleset"/>
1032                 <DetectChar attribute="Error" context="#pop#pop#pop" char="}" endRegion="ruleset"/>
1033                 <IncludeRules context="FindStrings"/>
1034                 <IncludeRules context="FindInterpolation"/>
1035                 <IncludeRules context="FindComments"/>
1036                 <IncludeRules context="FindFunctions"/>
1037                 <IncludeRules context="FindValues"/>
1038             </context>
1039             <context name="@useWith" attribute="Normal Text">
1040                 <DetectSpaces/>
1041                 <DetectChar context="#pop" char=")" attribute="Function"/>
1042                 <DetectChar attribute="Property Separator" char=":"/>
1043                 <DetectChar attribute="Separator Symbol" char=","/>
1044                 <DetectChar attribute="Selector Symbol" char="&amp;"/>
1045                 <IncludeRules context="AtRuleEndLvl3"/>
1046                 <IncludeRules context="FindStrings"/>
1047                 <IncludeRules context="FindInterpolationWithUnit"/>
1048                 <IncludeRules context="FindComments"/>
1049                 <StringDetect attribute="Operator" String="..."/>
1050                 <IncludeRules context="FindFunctions"/>
1051                 <IncludeRules context="FindValues"/>
1052             </context>
1053 
1054             <context name="@mixin" attribute="Function">
1055                 <DetectSpaces attribute="At Rule Text"/>
1056                 <DetectChar context="@useWith" char="(" attribute="Function"/>
1057                 <DetectChar char="-"/>
1058                 <IncludeRules context="AtRuleCommon"/>
1059                 <WordDetect attribute="Keyword" String="using"/>
1060                 <DetectIdentifier/>
1061             </context>
1062 
1063             <context name="@extend" attribute="Normal Text">
1064                 <DetectSpaces/>
1065                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
1066                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="}" endRegion="ruleset"/>
1067                 <DetectChar attribute="Separator Symbol" context="#pop#pop" char=";"/>
1068                 <WordDetect attribute="Annotation" String="!optional"/>
1069                 <IncludeRules context="FindSelector"/>
1070             </context>
1071 
1072             <context name="@expression" attribute="At Rule Text">
1073                 <DetectSpaces/>
1074                 <IncludeRules context="AtRuleEnd"/>
1075                 <IncludeRules context="FindValueInterpolation"/>
1076             </context>
1077             <context name="@expressionBlock" attribute="At Rule Text">
1078                 <DetectSpaces/>
1079                 <IncludeRules context="AtRuleBlockEnd"/>
1080                 <IncludeRules context="FindValueInterpolation"/>
1081             </context>
1082 
1083             <context name="@else" attribute="At Rule Text" fallthroughContext="#pop!@expressionBlock">
1084                 <DetectSpaces/>
1085                 <WordDetect attribute="At Rule" context="#pop!@expression" String="if"/>
1086                 <IncludeRules context="FindComments"/>
1087                 <DetectChar attribute="Block Symbol" context="#pop#pop" char="{" beginRegion="ruleset"/>
1088             </context>
1089 
1090             <context name="@each" attribute="At Rule Text">
1091                 <DetectSpaces/>
1092                 <IncludeRules context="AtRuleBlockEnd"/>
1093                 <WordDetect attribute="Keyword" String="in"/>
1094                 <IncludeRules context="FindValueInterpolation"/>
1095             </context>
1096 
1097             <context name="@for" attribute="At Rule Text">
1098                 <DetectSpaces/>
1099                 <IncludeRules context="AtRuleBlockEnd"/>
1100                 <WordDetect attribute="Keyword" String="to"/>
1101                 <WordDetect attribute="Keyword" String="from"/>
1102                 <WordDetect attribute="Keyword" String="through"/>
1103                 <IncludeRules context="FindValueInterpolation"/>
1104             </context>
1105 
1106 
1107             <context name="@media" attribute="At Rule Text">
1108                 <DetectSpaces/>
1109                 <DetectChar char="(" context="AtRuleMediaCondition" attribute="Condition Open/Close"/>
1110                 <IncludeRules context="AtRuleCommon"/>
1111                 <IncludeRules context="FindFunctions"/>
1112                 <keyword String="media operators" attribute="Keyword"/>
1113                 <keyword String="media types" attribute="Media Type"/>
1114                 <DetectIdentifier/>
1115             </context>
1116 
1117             <context name="AtRuleMediaCondition" attribute="At Rule Text">
1118                 <DetectSpaces/>
1119                 <IncludeRules context="AtRuleEndLvl3"/>
1120                 <IncludeRules context="AtRuleMediaConditionValue"/>
1121             </context>
1122             <context name="NestedAtRuleMediaCondition" attribute="At Rule Text">
1123                 <DetectSpaces attribute="At Rule Text"/>
1124                 <AnyChar String=";{}" context="#pop" lookAhead="1"/>
1125                 <IncludeRules context="AtRuleMediaConditionValue"/>
1126             </context>
1127             <context name="AtRuleMediaConditionValue" attribute="At Rule Text">
1128                 <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
1129                 <DetectChar char="(" context="NestedAtRuleMediaCondition" attribute="Condition Open/Close"/>
1130                 <DetectChar char=":" attribute="Property Separator"/>
1131                 <IncludeRules context="FindVariable"/>
1132                 <IncludeRules context="FindStrings"/>
1133                 <IncludeRules context="FindInterpolation"/>
1134                 <IncludeRules context="FindComments"/>
1135                 <AnyChar attribute="Operator" String="*/+%=&lt;>"/>
1136                 <IncludeRules context="FindFunctions"/>
1137                 <IncludeRules context="FindNumber"/>
1138                 <keyword String="media operators" attribute="Keyword"/>
1139                 <keyword String="media features" attribute="Condition Property"/>
1140                 <IncludeRules context="FindIdentifier"/>
1141                 <DetectChar context="OperatorOrIdentifer" char="-" lookAhead="1"/>
1142             </context>
1143 
1144 
1145             <context name="@supports" attribute="At Rule Text">
1146                 <DetectSpaces/>
1147                 <DetectChar char="(" context="AtRuleSupportsCondition" lookAhead="1"/>
1148                 <IncludeRules context="AtRuleCommon"/>
1149                 <keyword String="media operators" attribute="Keyword"/>
1150                 <WordDetect String="selector(" context="FunctionSelector" attribute="Function"/>
1151                 <IncludeRules context="FindFunctions"/>
1152                 <DetectIdentifier/>
1153             </context>
1154 
1155             <context name="AtRuleSupportsCondition" attribute="At Rule Text" fallthroughContext="#pop">
1156                 <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
1157                 <IncludeRules context="AtRuleEndLvl3"/>
1158             </context>
1159             <context name="SupportsCondition" attribute="At Rule Text" fallthroughContext="#pop!SupportsConditionValue">
1160                 <DetectSpaces/>
1161                 <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
1162                 <DetectChar char=":" context="#pop!SupportsConditionValue" attribute="Property Separator"/>
1163                 <IncludeRules context="FindComments"/>
1164                 <keyword String="media operators" attribute="Keyword"/>
1165                 <keyword String="properties" attribute="Property"/>
1166                 <IncludeRules context="FindVendorProperty"/>
1167             </context>
1168             <context name="SupportsConditionValue" attribute="At Rule Text">
1169                 <AnyChar String=";{}" context="#pop" lookAhead="1"/>
1170                 <DetectChar char=")" context="#pop" attribute="Condition Open/Close"/>
1171                 <DetectChar char="(" context="SupportsCondition" attribute="Condition Open/Close"/>
1172                 <DetectChar char=":" attribute="Property Separator"/>
1173                 <IncludeRules context="FindStrings"/>
1174                 <IncludeRules context="FindInterpolationWithUnit"/>
1175                 <IncludeRules context="FindComments"/>
1176                 <IncludeRules context="FindFunctions"/>
1177                 <IncludeRules context="FindValues"/>
1178             </context>
1179 
1180             <context name="FunctionSelector" attribute="At Rule Text">
1181                 <DetectSpaces/>
1182                 <AnyChar String=";{}" context="#pop" lookAhead="1"/>
1183                 <DetectChar char=")" context="#pop" attribute="Function"/>
1184                 <IncludeRules context="FindSelector"/>
1185             </context>
1186 
1187 
1188             <context name="@layer" attribute="At Rule Text">
1189                 <DetectSpaces/>
1190                 <DetectIdentifier/>
1191                 <DetectChar attribute="Separator Symbol" char=","/>
1192                 <IncludeRules context="AtRuleCommon"/>
1193             </context>
1194 
1195 
1196             <context name="@page" attribute="At Rule Text">
1197                 <DetectSpaces/>
1198                 <DetectChar attribute="Selector Pseudo" char=":"/>
1199                 <IncludeRules context="AtRuleDefinitionCommon"/>
1200                 <keyword attribute="Selector Pseudo" String="@page pseudo-classes"/>
1201                 <DetectIdentifier/>
1202             </context>
1203 
1204 
1205             <context name="@property" attribute="At Rule Text">
1206                 <DetectSpaces/>
1207                 <DetectChar char="-"/>
1208                 <IncludeRules context="AtRuleDefinitionCommon"/>
1209                 <DetectIdentifier/>
1210             </context>
1211 
1212 
1213             <context name="@keyframes" attribute="At Rule Text">
1214                 <DetectSpaces/>
1215                 <DetectChar char="{" context="KeyFramesBlock" attribute="Block Symbol" beginRegion="ruleset"/>
1216                 <IncludeRules context="AtRuleCommon"/>
1217                 <DetectIdentifier/>
1218             </context>
1219             <context name="KeyFramesBlock" attribute="Normal Text">
1220                 <DetectSpaces/>
1221                 <DetectChar char="{" context="SubProperty" attribute="Block Symbol" beginRegion="ruleset"/>
1222                 <DetectChar char="}" context="#pop#pop#pop" attribute="Block Symbol" endRegion="ruleset"/>
1223                 <DetectChar char="," attribute="Separator Symbol"/>
1224                 <IncludeRules context="FindComments"/>
1225                 <IncludeRules context="FindInterpolation"/>
1226                 <RegExpr attribute="Value" String="\b(from|to)\b|[-+]?[0-9.]*%"/>
1227             </context>
1228 
1229 
1230             <!-- attribute // [name=value]-->
1231 
1232             <context name="SelectorAttr" attribute="Attribute Name">
1233                 <DetectChar attribute="Selector Attribute" context="#pop" char="]"/>
1234                 <IncludeRules context="FindStrings"/>
1235                 <IncludeRules context="FindInterpolation"/>
1236                 <DetectChar attribute="Attribute Operator" context="SelectorAttrValue" char="="/>
1237                 <AnyChar attribute="Attribute Operator" String="~^$*|"/>
1238                 <IncludeRules context="FindComments"/>
1239                 <DetectIdentifier/>
1240                 <AnyChar context="#pop" String="{};#.,:>" lookAhead="1"/>
1241             </context>
1242 
1243             <context name="SelectorAttrValue" attribute="String" fallthroughContext="SelectorAttrEnd">
1244                 <DetectSpaces/>
1245                 <AnyChar context="SelectorAttrValueQuoted" String="&quot;'" lookAhead="1"/>
1246                 <Detect2Chars context="SelectorAttrValueQuoted" char="#" char1="{" lookAhead="1"/>
1247                 <RegExpr context="SelectorAttrEnd" attribute="String" String="-?(\w|&escaped;)([-\w]+|&escaped;)*"/>
1248                 <IncludeRules context="FindComments"/>
1249             </context>
1250             <context name="SelectorAttrValueQuoted" attribute="String" fallthroughContext="#pop!SelectorAttrEnd">
1251                 <IncludeRules context="FindStrings"/>
1252                 <IncludeRules context="FindInterpolation"/>
1253             </context>
1254             <context name="SelectorAttrEnd" attribute="String" fallthroughContext="#pop#pop#pop">
1255                 <DetectSpaces/>
1256                 <DetectChar attribute="Selector Attribute" context="#pop#pop#pop" char="]"/>
1257                 <Detect2Chars context="SelectorAttrValueSensitiveOp" char="i" char1="]" lookAhead="1"/>
1258                 <Detect2Chars context="SelectorAttrValueSensitiveOp" char="I" char1="]" lookAhead="1"/>
1259                 <Detect2Chars context="SelectorAttrValueSensitiveOp" char="s" char1="]" lookAhead="1"/>
1260                 <Detect2Chars context="SelectorAttrValueSensitiveOp" char="S" char1="]" lookAhead="1"/>
1261                 <IncludeRules context="FindComments"/>
1262                 <IncludeRules context="FindInterpolation"/>
1263             </context>
1264             <context name="SelectorAttrValueSensitiveOp" attribute="String">
1265                 <DetectChar attribute="Selector Attribute" context="#pop#pop#pop#pop" char="]"/>
1266                 <AnyChar attribute="Attribute Operator" String="isIS"/>
1267             </context>
1268 
1269 
1270             <context name="PseudoClassOrElement" attribute="Selector Pseudo" lineEndContext="#pop" fallthroughContext="#pop">
1271                 <DetectChar char=":" attribute="Selector Pseudo"/>
1272                 <WordDetect String="lang" attribute="Selector Pseudo" context="PseudoClassStr"/>
1273                 <WordDetect String="part" attribute="Selector Pseudo" context="PseudoClassStr"/>
1274                 <RegExpr String="nth-[-a-zA-Z0-9]*" attribute="Selector Pseudo" context="PseudoClassNth"/>
1275                 <RegExpr String="[-a-zA-Z]+" attribute="Selector Pseudo" context="#pop"/>
1276                 <IncludeRules context="FindComments"/>
1277                 <IncludeRules context="FindInterpolation"/>
1278             </context>
1279 
1280             <context name="PseudoClassStr" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
1281                 <DetectChar char="(" context="PseudoClassStrInner" attribute="Selector Pseudo"/>
1282                 <IncludeRules context="FindComments"/>
1283             </context>
1284             <context name="PseudoClassStrInner" attribute="Error">
1285                 <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
1286                 <DetectChar char="{" context="#pop#pop#pop" attribute="Error" beginRegion="ruleset"/>
1287                 <DetectChar char=":" context="#pop#pop#pop!PseudoClassOrElement" attribute="Error"/>
1288                 <RegExpr String="\s*&ident;(\s+&ident;|\s+)*" attribute="String"/>
1289                 <IncludeRules context="FindComments"/>
1290                 <IncludeRules context="FindInterpolation"/>
1291             </context>
1292 
1293             <context name="PseudoClassNth" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
1294                 <DetectChar char="(" context="PseudoClassNthInner" attribute="Selector Pseudo"/>
1295                 <IncludeRules context="FindComments"/>
1296             </context>
1297             <context name="PseudoClassNthInner" attribute="Normal Text" fallthroughContext="#pop#pop!PseudoClassSelector">
1298                 <Int attribute="Number" additionalDeliminator="-"/>
1299                 <AnyChar String="+-" attribute="Operator"/>
1300                 <DetectChar char="n" attribute="Unit"/>
1301                 <DetectChar char=")" attribute="Selector Pseudo" context="#pop#pop#pop"/>
1302                 <WordDetect String="odd" attribute="Value"/>
1303                 <WordDetect String="even" attribute="Value"/>
1304                 <WordDetect String="of" attribute="Keyword" context="#pop#pop!PseudoClassSelector"/>
1305                 <IncludeRules context="FindComments"/>
1306                 <IncludeRules context="FindInterpolation"/>
1307                 <DetectSpaces/>
1308             </context>
1309 
1310             <context name="PseudoClassSelector" attribute="Normal Text">
1311                 <DetectSpaces/>
1312                 <DetectChar char=")" context="#pop" attribute="Selector Pseudo"/>
1313                 <AnyChar String=";{}" context="#pop" lookAhead="1"/>
1314                 <IncludeRules context="FindSelector"/>
1315             </context>
1316 
1317 
1318             <context name="Comment" attribute="Comment">
1319                 <DetectSpaces/>
1320                 <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="comment"/>
1321                 <IncludeRules context="##Comments"/>
1322                 <DetectIdentifier/>
1323             </context>
1324 
1325             <context name="Function" attribute="Normal Text">
1326                 <IncludeRules context="FunctionInc"/>
1327                 <IncludeRules context="AtRuleEndLvl3"/>
1328             </context>
1329             <context name="NestedFunction" attribute="Normal Text">
1330                 <IncludeRules context="FunctionInc"/>
1331                 <AnyChar context="#pop" String="{};" lookAhead="1"/>
1332             </context>
1333             <context name="FunctionInc" attribute="Normal Text">
1334                 <DetectChar attribute="Function" context="FunctionParameters" char="("/>
1335                 <StringDetect attribute="Function" context="FunctionVar" String="var("/>
1336                 <StringDetect attribute="Function" context="FunctionCalc" String="calc("/>
1337                 <StringDetect attribute="Function" context="FunctionUrl" String="url("/>
1338                 <StringDetect attribute="Function" context="FunctionEnv" String="env("/>
1339                 <keyword attribute="Function" String="functions"/>
1340                 <RegExpr attribute="Function" context="FunctionParameters" String="&func;\("/>
1341             </context>
1342 
1343             <!-- From CSS with interpolation -->
1344             <!-- @{ -->
1345 
1346             <context name="FunctionVar" attribute="Normal Text" fallthroughContext="FunctionVarSep">
1347                 <RegExpr String="&var;" context="FunctionVarSep" attribute="Variable"/>
1348                 <DetectSpaces/>
1349                 <IncludeRules context="FindComments"/>
1350             </context>
1351             <context name="FunctionVarSep" attribute="Normal Text" fallthroughContext="FunctionVarParam">
1352                 <DetectChar char=")" context="#pop#pop#pop" attribute="Function"/>
1353                 <DetectChar char="," context="FunctionVarParam" attribute="Separator Symbol"/>
1354             </context>
1355             <context name="FunctionVarParam" attribute="Normal Text">
1356                 <DetectSpaces/>
1357                 <DetectChar char=")" context="#pop#pop#pop#pop" attribute="Function"/>
1358                 <AnyChar String=";{}" context="#pop#pop#pop" lookAhead="1"/>
1359                 <IncludeRules context="FindStrings"/>
1360                 <IncludeRules context="FindInterpolationWithUnit"/>
1361                 <IncludeRules context="FindComments"/>
1362                 <IncludeRules context="FindNestedFunctions"/>
1363                 <IncludeRules context="FindValues"/>
1364             </context>
1365 
1366             <context name="FunctionEnv" attribute="Normal Text" fallthroughContext="FunctionVarSep">
1367                 <RegExpr String="&ident;" context="FunctionVarSep" attribute="Normal Text"/>
1368                 <DetectSpaces/>
1369                 <IncludeRules context="FindComments"/>
1370             </context>
1371 
1372             <context name="FunctionCalc" attribute="Normal Text">
1373                 <DetectSpaces/>
1374                 <DetectChar attribute="Function" context="#pop#pop" char=")"/>
1375                 <IncludeRules context="Calc"/>
1376             </context>
1377             <context name="NestedCalc" attribute="Normal Text">
1378                 <DetectSpaces/>
1379                 <DetectChar attribute="Normal Text" context="#pop" char=")"/>
1380                 <IncludeRules context="Calc"/>
1381             </context>
1382             <context name="Calc" attribute="Normal Text">
1383                 <DetectChar attribute="Separator Symbol" char=","/>
1384                 <DetectChar attribute="Normal Text" context="NestedCalc" char="("/>
1385                 <AnyChar String=";{}" context="#pop" lookAhead="1"/>
1386                 <!-- ATTENTION not in CSS --> <IncludeRules context="FindVariable"/>
1387                 <IncludeRules context="FindStrings"/>
1388                 <!-- ATTENTION not in CSS --> <IncludeRules context="FindInterpolationWithUnit"/>
1389                 <IncludeRules context="FindComments"/>
1390                 <AnyChar attribute="Operator" String="*/%"/>
1391                 <IncludeRules context="FindNestedFunctions"/>
1392                 <!-- ATTENTION FindNumber in CSS --> <RegExpr attribute="Number" context="FindUnits" String="[-+]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?(?![-+])"/>
1393                 <RegExpr String="[-+]?((?i:infinity|e|pi)|NaN)($|[^-\w])|[-+]($|[\s(,;]|/\*)" context="CalcConstantOrOperator" lookAhead="1"/>
1394                 <IncludeRules context="FindIdentifier"/>
1395             </context>
1396             <context name="CalcConstantOrOperator" attribute="Normal Text" fallthroughContext="#pop">
1397                 <DetectIdentifier context="#pop" attribute="Calc Constant"/>
1398                 <AnyChar String="-+" attribute="Operator"/>
1399             </context>
1400 
1401             <context name="FunctionUrl" attribute="Normal Text" fallthroughContext="UrlValue">
1402                 <DetectSpaces/>
1403                 <IncludeRules context="FindStrings"/>
1404                 <IncludeRules context="FindInterpolation"/>
1405             </context>
1406             <context name="UrlValue" attribute="String">
1407                 <DetectChar attribute="Function" context="#pop#pop#pop" char=")"/>
1408                 <AnyChar String=";{}" context="#pop#pop" lookAhead="1"/>
1409             </context>
1410 
1411             <context name="FunctionParameters" attribute="Normal Text">
1412                 <DetectSpaces/>
1413                 <DetectChar attribute="Function" context="#pop#pop" char=")"/>
1414                 <DetectChar attribute="Separator Symbol" char=","/>
1415                 <IncludeRules context="FindStrings"/>
1416                 <IncludeRules context="FindInterpolationWithUnit"/>
1417                 <IncludeRules context="FindComments"/>
1418                 <!-- ATTENTION not in CSS --> <DetectChar attribute="Value Keyword" char="&amp;"/>
1419                 <!-- ATTENTION not in CSS --> <StringDetect attribute="Operator" String="..."/>
1420                 <AnyChar String=";{}" context="#pop" lookAhead="1"/>
1421                 <IncludeRules context="FindNestedFunctions"/>
1422                 <IncludeRules context="FindValues"/>
1423             </context>
1424 
1425             <!-- @} -->
1426 
1427             <!-- string contexts -->
1428             <context name="StringDQ" attribute="String">
1429                 <DetectChar attribute="String" context="#pop" char="&quot;"/>
1430                 <IncludeRules context="InsideString"/>
1431             </context>
1432 
1433             <context name="StringSQ" attribute="String">
1434                 <DetectChar attribute="String" context="#pop" char="'"/>
1435                 <IncludeRules context="InsideString"/>
1436             </context>
1437 
1438             <context name="InsideString" attribute="String">
1439                 <IncludeRules context="FindInterpolation"/>
1440                 <RegExpr attribute="SpecialChar" String="\\([0-9A-Fa-f]{1,6}|.?)"/>
1441                 <RegExpr attribute="String" String="\\?[^#&quot;'\\]+"/>
1442             </context>
1443 
1444         </contexts>
1445 
1446         <itemDatas>
1447             <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
1448             <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
1449             <itemData name="At Rule Text" defStyleNum="dsNormal" spellChecking="false"/>
1450             <itemData name="Media Type" defStyleNum="dsAnnotation" spellChecking="false"/>
1451             <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
1452             <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
1453             <itemData name="Vendor Property" defStyleNum="dsKeyword" spellChecking="false" italic="1"/>
1454             <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
1455             <itemData name="Property Separator" defStyleNum="dsChar" spellChecking="false"/>
1456             <itemData name="String" defStyleNum="dsString"/>
1457             <itemData name="SpecialChar" defStyleNum="dsSpecialChar" spellChecking="false"/>
1458             <itemData name="Interpolation" defStyleNum="dsOperator" spellChecking="false"/>
1459             <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
1460             <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false"/>
1461             <itemData name="Block Symbol" defStyleNum="dsNormal" spellChecking="false"/>
1462             <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
1463             <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
1464             <itemData name="Value Keyword" defStyleNum="dsBuiltIn" spellChecking="false"/>
1465             <itemData name="Named Color" defStyleNum="dsConstant" spellChecking="false"/>
1466             <itemData name="Color" defStyleNum="dsConstant" spellChecking="false"/>
1467             <itemData name="Unit" defStyleNum="dsDataType" spellChecking="false"/>
1468             <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
1469             <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
1470             <itemData name="Calc Constant" defStyleNum="dsDecVal" spellChecking="false"/>
1471             <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
1472             <itemData name="Condition Open/Close" defStyleNum="dsFunction" spellChecking="false"/>
1473             <itemData name="Condition Property" defStyleNum="dsKeyword" spellChecking="false"/>
1474             <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
1475             <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
1476             <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
1477             <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
1478             <itemData name="Selector Tag" defStyleNum="dsNormal" spellChecking="false"/>
1479             <itemData name="Selector Symbol" defStyleNum="dsOperator" spellChecking="false"/>
1480             <itemData name="Placeholder Selector" defStyleNum="dsBuiltIn" spellChecking="false"/>
1481             <itemData name="Attribute Name" defStyleNum="dsSpecialString" spellChecking="false"/>
1482             <itemData name="Attribute Operator" defStyleNum="dsOperator" spellChecking="false"/>
1483             <itemData name="Comment" defStyleNum="dsComment"/>
1484             <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
1485             <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
1486         </itemDatas>
1487     </highlighting>
1488 
1489     <general>
1490         <keywords casesensitive="0" weakDeliminator="-%@"/>
1491         <comments>
1492             <comment name="singleLine" start="//" position="afterwhitespace"/>
1493             <comment name="multiLine" start="/*" end="*/" region="comment"/>
1494         </comments>
1495     </general>
1496 
1497 </language>
1498 <!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->