...

Text file src/github.com/alecthomas/chroma/v2/lexers/embedded/sass.xml

Documentation: github.com/alecthomas/chroma/v2/lexers/embedded

     1<lexer>
     2  <config>
     3    <name>Sass</name>
     4    <alias>sass</alias>
     5    <filename>*.sass</filename>
     6    <mime_type>text/x-sass</mime_type>
     7    <case_insensitive>true</case_insensitive>
     8  </config>
     9  <rules>
    10    <state name="import">
    11      <rule pattern="[ \t]+">
    12        <token type="Text"/>
    13      </rule>
    14      <rule pattern="\S+">
    15        <token type="LiteralString"/>
    16      </rule>
    17      <rule pattern="\n">
    18        <token type="Text"/>
    19        <push state="root"/>
    20      </rule>
    21    </state>
    22    <state name="string-single">
    23      <rule pattern="(\\.|#(?=[^\n{])|[^\n&#39;#])+">
    24        <token type="LiteralStringSingle"/>
    25      </rule>
    26      <rule pattern="#\{">
    27        <token type="LiteralStringInterpol"/>
    28        <push state="interpolation"/>
    29      </rule>
    30      <rule pattern="&#39;">
    31        <token type="LiteralStringSingle"/>
    32        <pop depth="1"/>
    33      </rule>
    34    </state>
    35    <state name="string-double">
    36      <rule pattern="(\\.|#(?=[^\n{])|[^\n&#34;#])+">
    37        <token type="LiteralStringDouble"/>
    38      </rule>
    39      <rule pattern="#\{">
    40        <token type="LiteralStringInterpol"/>
    41        <push state="interpolation"/>
    42      </rule>
    43      <rule pattern="&#34;">
    44        <token type="LiteralStringDouble"/>
    45        <pop depth="1"/>
    46      </rule>
    47    </state>
    48    <state name="pseudo-class">
    49      <rule pattern="[\w-]+">
    50        <token type="NameDecorator"/>
    51      </rule>
    52      <rule pattern="#\{">
    53        <token type="LiteralStringInterpol"/>
    54        <push state="interpolation"/>
    55      </rule>
    56      <rule>
    57        <pop depth="1"/>
    58      </rule>
    59    </state>
    60    <state name="for">
    61      <rule pattern="(from|to|through)">
    62        <token type="OperatorWord"/>
    63      </rule>
    64      <rule>
    65        <include state="value"/>
    66      </rule>
    67    </state>
    68    <state name="selector">
    69      <rule pattern="[ \t]+">
    70        <token type="Text"/>
    71      </rule>
    72      <rule pattern="\:">
    73        <token type="NameDecorator"/>
    74        <push state="pseudo-class"/>
    75      </rule>
    76      <rule pattern="\.">
    77        <token type="NameClass"/>
    78        <push state="class"/>
    79      </rule>
    80      <rule pattern="\#">
    81        <token type="NameNamespace"/>
    82        <push state="id"/>
    83      </rule>
    84      <rule pattern="[\w-]+">
    85        <token type="NameTag"/>
    86      </rule>
    87      <rule pattern="#\{">
    88        <token type="LiteralStringInterpol"/>
    89        <push state="interpolation"/>
    90      </rule>
    91      <rule pattern="&amp;">
    92        <token type="Keyword"/>
    93      </rule>
    94      <rule pattern="[~^*!&amp;\[\]()&lt;&gt;|+=@:;,./?-]">
    95        <token type="Operator"/>
    96      </rule>
    97      <rule pattern="&#34;">
    98        <token type="LiteralStringDouble"/>
    99        <push state="string-double"/>
   100      </rule>
   101      <rule pattern="&#39;">
   102        <token type="LiteralStringSingle"/>
   103        <push state="string-single"/>
   104      </rule>
   105      <rule pattern="\n">
   106        <token type="Text"/>
   107        <push state="root"/>
   108      </rule>
   109    </state>
   110    <state name="value">
   111      <rule pattern="[ \t]+">
   112        <token type="Text"/>
   113      </rule>
   114      <rule pattern="[!$][\w-]+">
   115        <token type="NameVariable"/>
   116      </rule>
   117      <rule pattern="url\(">
   118        <token type="LiteralStringOther"/>
   119        <push state="string-url"/>
   120      </rule>
   121      <rule pattern="[a-z_-][\w-]*(?=\()">
   122        <token type="NameFunction"/>
   123      </rule>
   124      <rule pattern="(color-interpolation-filters|glyph-orientation-vertical|transition-timing-function|border-bottom-right-radius|border-bottom-left-radius|animation-iteration-count|animation-timing-function|font-variant-alternates|font-variant-east-asian|text-underline-position|border-top-right-radius|scroll-snap-destination|scroll-snap-coordinate|font-language-override|text-emphasis-position|font-variant-ligatures|border-top-left-radius|background-blend-mode|background-attachment|text-decoration-color|text-decoration-style|font-feature-settings|grid-template-columns|shape-image-threshold|hyphenate-limit-lines|hyphenate-limit-chars|font-variant-position|hyphenate-limit-last|scroll-snap-points-x|initial-letter-align|decimal-leading-zero|box-decoration-break|hyphenate-limit-zone|text-combine-upright|text-decoration-skip|font-variant-numeric|scroll-snap-points-y|animation-play-state|text-decoration-line|hyphenate-character|transition-duration|text-emphasis-style|border-bottom-width|border-image-repeat|grid-template-areas|border-image-source|animation-direction|initial-letter-wrap|list-style-position|transition-property|text-space-collapse|border-bottom-style|hanging-punctuation|text-emphasis-color|border-image-outset|background-position|animation-fill-mode|backface-visibility|border-bottom-color|border-right-width|alignment-baseline|mask-border-outset|border-right-style|border-right-color|mask-border-repeat|table-header-group|grid-template-rows|animation-duration|perspective-origin|presentation-level|table-footer-group|mask-border-source|border-image-width|border-image-slice|table-column-group|counter-increment|dominant-baseline|column-rule-width|speak-punctuation|page-break-before|image-orientation|font-variant-caps|grid-auto-columns|page-break-inside|border-left-width|marquee-direction|border-left-style|border-left-color|grid-column-start|mask-border-width|column-rule-color|column-rule-style|background-repeat|background-origin|mask-border-slice|scroll-snap-type|border-top-style|border-top-width|background-image|page-break-after|transform-origin|border-top-color|text-orientation|background-color|transition-delay|footnote-display|list-style-image|mask-border-mode|font-size-adjust|image-resolution|footnote-policy|object-position|ultra-condensed|motion-rotation|cjk-ideographic|justify-content|animation-delay|region-fragment|table-row-group|caret-animation|text-align-last|float-reference|extra-condensed|transform-style|text-decoration|grid-column-gap|border-collapse|background-clip|border-boundary|text-space-trim|grid-column-end|list-style-type|background-size|font-synthesis|padding-bottom|outline-offset|initial-letter|animation-name|hiragana-iroha|katakana-iroha|no-close-quote|border-spacing|rotation-point|flex-direction|voice-duration|grid-row-start|vertical-align|extra-expanded|polar-distance|baseline-shift|letter-spacing|grid-auto-flow|grid-auto-rows|lighting-color|bookmark-label|text-transform|semi-condensed|bookmark-level|mask-composite|bookmark-state|ultra-expanded|mix-blend-mode|overflow-style|grid-template|border-bottom|small-caption|semi-expanded|mask-position|no-open-quote|motion-offset|border-radius|offset-before|outline-color|outline-style|table-caption|outline-width|overflow-wrap|padding-right|flood-opacity|voice-balance|ruby-position|justify-items|bidi-override|marquee-style|shape-outside|speak-numeral|marquee-speed|counter-reset|margin-bottom|text-overflow|text-emphasis|align-content|break-before|border-width|border-image|shape-margin|speak-header|margin-right|inline-table|table-layout|center-right|marquee-loop|border-color|line-through|box-suppress|shape-inside|justify-self|float-offset|pause-before|table-column|grid-row-gap|grid-row-end|padding-left|text-justify|column-count|wrap-through|font-kerning|font-stretch|border-right|border-style|word-spacing|offset-start|caption-side|voice-volume|voice-stress|font-variant|text-spacing|offset-after|voice-family|unicode-bidi|break-inside|writing-mode|column-width|break-after|user-select|align-items|motion-path|font-weight|grid-column|voice-range|white-space|will-change|wrap-before|transparent|caret-color|text-bottom|caret-shape|mask-repeat|wrap-inside|upper-latin|text-shadow|mask-origin|font-family|flex-shrink|column-fill|message-box|text-indent|lower-roman|column-rule|padding-top|column-span|play-during|upper-roman|flood-color|page-policy|border-left|pause-after|lower-greek|perspective|lower-alpha|counter-set|mask-border|center-left|polar-angle|float-defer|marker-side|speech-rate|upper-alpha|line-height|pitch-range|empty-cells|close-quote|rest-before|margin-left|voice-pitch|overflow-y|small-caps|ruby-align|ruby-merge|wrap-after|box-shadow|word-break|flex-basis|max-height|rest-after|mask-image|list-style|min-height|voice-rate|visibility|sans-serif|object-fit|continuous|status-bar|offset-end|align-self|box-sizing|right-side|string-set|transition|margin-top|text-align|cue-before|border-top|font-style|line-break|background|capitalize|table-cell|open-quote|appearance|overflow-x|column-gap|rightwards|table-row|animation|flow-into|landscape|left-side|clip-rule|font-size|clip-path|flow-from|text-wrap|nw-resize|transform|no-repeat|line-grid|condensed|sw-resize|leftwards|line-snap|direction|crosshair|nav-right|list-item|se-resize|isolation|underline|grid-area|uppercase|min-width|flex-wrap|spell-out|max-width|ne-resize|max-lines|mask-clip|elevation|far-right|flex-flow|mask-type|word-wrap|flex-grow|mask-size|wrap-flow|monospace|mask-mode|cue-after|lowercase|relative|absolute|grid-row|armenian|e-resize|narrower|expanded|baseline|nav-down|nav-left|w-resize|xx-large|text-top|overline|overflow|katakana|n-resize|repeat-x|repeat-y|rotation|position|box-snap|xx-small|collapse|tab-size|speak-as|hiragana|s-resize|portrait|georgian|richness|separate|grid-gap|far-left|inherit|columns|content|oblique|default|outside|display|x-small|decimal|fantasy|z-index|running|azimuth|x-large|lighter|cursive|padding|outline|orphans|opacity|pointer|move-to|visible|hyphens|justify|smaller|nav-up|circle|inline|motion|inside|invert|italic|height|center|higher|x-fast|larger|hidden|digits|hebrew|groove|x-high|faster|quotes|static|behind|square|resize|border|slower|silent|dashed|medium|always|middle|filter|x-loud|bottom|widows|volume|scroll|chains|x-soft|stress|normal|nowrap|repeat|double|dotted|margin|outset|cursor|bolder|avoid|embed|x-low|above|fixed|wider|cross|inset|ridge|large|clear|speak|order|caret|width|thick|block|level|serif|blink|lower|pause|pitch|right|aural|super|below|solid|color|float|hide|soft|rest|grid|auto|slow|flow|show|page|disc|left|clip|text|flex|bold|loud|thin|size|none|help|both|once|icon|crop|fast|crop|high|mask|wait|font|all|url|top|rgb|mix|yes|low|ltr|cue|px)\b">
   125        <token type="NameConstant"/>
   126      </rule>
   127      <rule pattern="(lightgoldenrodyellow|mediumspringgreen|mediumaquamarine|mediumslateblue|mediumturquoise|mediumvioletred|lightsteelblue|cornflowerblue|lightslategray|blanchedalmond|mediumseagreen|lightslategrey|darkolivegreen|darkgoldenrod|darkslateblue|lightseagreen|rebeccapurple|darkslategrey|darkslategray|palegoldenrod|paleturquoise|palevioletred|darkturquoise|lavenderblush|antiquewhite|mediumorchid|lightskyblue|mediumpurple|midnightblue|darkseagreen|lemonchiffon|springgreen|yellowgreen|greenyellow|navajowhite|darkmagenta|lightyellow|transparent|lightsalmon|forestgreen|saddlebrown|deepskyblue|floralwhite|dodgerblue|ghostwhite|lightcoral|sandybrown|darkviolet|papayawhip|mediumblue|chartreuse|lightgreen|whitesmoke|aquamarine|darkorange|darksalmon|powderblue|darkorchid|blueviolet|indianred|mintcream|mistyrose|olivedrab|goldenrod|orangered|lawngreen|gainsboro|lightblue|firebrick|lightcyan|peachpuff|lightgray|darkkhaki|lightgrey|darkgreen|rosybrown|royalblue|slateblue|chocolate|cadetblue|burlywood|slategray|slategrey|limegreen|steelblue|turquoise|palegreen|lightpink|aliceblue|moccasin|darkgrey|darkblue|seagreen|lavender|cornsilk|deeppink|seashell|darkgray|honeydew|darkcyan|dimgrey|magenta|crimson|darkred|hotpink|skyblue|oldlace|dimgray|fuchsia|thistle|orchid|indigo|orange|tomato|violet|salmon|yellow|silver|purple|bisque|sienna|maroon|black|linen|azure|white|wheat|khaki|green|olive|ivory|coral|brown|beige|snow|blue|navy|aqua|teal|gray|gold|grey|lime|peru|cyan|pink|plum|tan|red)\b">
   128        <token type="NameEntity"/>
   129      </rule>
   130      <rule pattern="(fuchsia|purple|yellow|maroon|silver|white|olive|green|black|lime|gray|navy|blue|teal|aqua|red)\b">
   131        <token type="NameBuiltin"/>
   132      </rule>
   133      <rule pattern="\!(important|default)">
   134        <token type="NameException"/>
   135      </rule>
   136      <rule pattern="(true|false)">
   137        <token type="NamePseudo"/>
   138      </rule>
   139      <rule pattern="(and|or|not)">
   140        <token type="OperatorWord"/>
   141      </rule>
   142      <rule pattern="/\*">
   143        <token type="CommentMultiline"/>
   144        <push state="inline-comment"/>
   145      </rule>
   146      <rule pattern="//[^\n]*">
   147        <token type="CommentSingle"/>
   148      </rule>
   149      <rule pattern="\#[a-z0-9]{1,6}">
   150        <token type="LiteralNumberHex"/>
   151      </rule>
   152      <rule pattern="(-?\d+)(\%|[a-z]+)?">
   153        <bygroups>
   154          <token type="LiteralNumberInteger"/>
   155          <token type="KeywordType"/>
   156        </bygroups>
   157      </rule>
   158      <rule pattern="(-?\d*\.\d+)(\%|[a-z]+)?">
   159        <bygroups>
   160          <token type="LiteralNumberFloat"/>
   161          <token type="KeywordType"/>
   162        </bygroups>
   163      </rule>
   164      <rule pattern="#\{">
   165        <token type="LiteralStringInterpol"/>
   166        <push state="interpolation"/>
   167      </rule>
   168      <rule pattern="[~^*!&amp;%&lt;&gt;|+=@:,./?-]+">
   169        <token type="Operator"/>
   170      </rule>
   171      <rule pattern="[\[\]()]+">
   172        <token type="Punctuation"/>
   173      </rule>
   174      <rule pattern="&#34;">
   175        <token type="LiteralStringDouble"/>
   176        <push state="string-double"/>
   177      </rule>
   178      <rule pattern="&#39;">
   179        <token type="LiteralStringSingle"/>
   180        <push state="string-single"/>
   181      </rule>
   182      <rule pattern="[a-z_-][\w-]*">
   183        <token type="Name"/>
   184      </rule>
   185      <rule pattern="\n">
   186        <token type="Text"/>
   187        <push state="root"/>
   188      </rule>
   189    </state>
   190    <state name="id">
   191      <rule pattern="[\w-]+">
   192        <token type="NameNamespace"/>
   193      </rule>
   194      <rule pattern="#\{">
   195        <token type="LiteralStringInterpol"/>
   196        <push state="interpolation"/>
   197      </rule>
   198      <rule>
   199        <pop depth="1"/>
   200      </rule>
   201    </state>
   202    <state name="multi-comment">
   203      <rule pattern=".+">
   204        <token type="CommentMultiline"/>
   205      </rule>
   206      <rule pattern="\n">
   207        <token type="Text"/>
   208        <push state="root"/>
   209      </rule>
   210    </state>
   211    <state name="interpolation">
   212      <rule pattern="\}">
   213        <token type="LiteralStringInterpol"/>
   214        <pop depth="1"/>
   215      </rule>
   216      <rule>
   217        <include state="value"/>
   218      </rule>
   219    </state>
   220    <state name="string-url">
   221      <rule pattern="(\\#|#(?=[^\n{])|[^\n#)])+">
   222        <token type="LiteralStringOther"/>
   223      </rule>
   224      <rule pattern="#\{">
   225        <token type="LiteralStringInterpol"/>
   226        <push state="interpolation"/>
   227      </rule>
   228      <rule pattern="\)">
   229        <token type="LiteralStringOther"/>
   230        <pop depth="1"/>
   231      </rule>
   232    </state>
   233    <state name="inline-comment">
   234      <rule pattern="(\\#|#(?=[^\n{])|\*(?=[^\n/])|[^\n#*])+">
   235        <token type="CommentMultiline"/>
   236      </rule>
   237      <rule pattern="#\{">
   238        <token type="LiteralStringInterpol"/>
   239        <push state="interpolation"/>
   240      </rule>
   241      <rule pattern="\*/">
   242        <token type="Comment"/>
   243        <pop depth="1"/>
   244      </rule>
   245    </state>
   246    <state name="root">
   247      <rule pattern="[ \t]*\n">
   248        <token type="Text"/>
   249      </rule>
   250      <rule pattern="@import">
   251        <token type="Keyword"/>
   252        <push state="import"/>
   253      </rule>
   254      <rule pattern="@for">
   255        <token type="Keyword"/>
   256        <push state="for"/>
   257      </rule>
   258      <rule pattern="@(debug|warn|if|while)">
   259        <token type="Keyword"/>
   260        <push state="value"/>
   261      </rule>
   262      <rule pattern="(@mixin)( [\w-]+)">
   263        <bygroups>
   264          <token type="Keyword"/>
   265          <token type="NameFunction"/>
   266        </bygroups>
   267        <push state="value"/>
   268      </rule>
   269      <rule pattern="(@include)( [\w-]+)">
   270        <bygroups>
   271          <token type="Keyword"/>
   272          <token type="NameDecorator"/>
   273        </bygroups>
   274        <push state="value"/>
   275      </rule>
   276      <rule pattern="@extend">
   277        <token type="Keyword"/>
   278        <push state="selector"/>
   279      </rule>
   280      <rule pattern="@[\w-]+">
   281        <token type="Keyword"/>
   282        <push state="selector"/>
   283      </rule>
   284      <rule pattern="=[\w-]+">
   285        <token type="NameFunction"/>
   286        <push state="value"/>
   287      </rule>
   288      <rule pattern="\+[\w-]+">
   289        <token type="NameDecorator"/>
   290        <push state="value"/>
   291      </rule>
   292      <rule pattern="([!$][\w-]\w*)([ \t]*(?:(?:\|\|)?=|:))">
   293        <bygroups>
   294          <token type="NameVariable"/>
   295          <token type="Operator"/>
   296        </bygroups>
   297        <push state="value"/>
   298      </rule>
   299      <rule pattern=":">
   300        <token type="NameAttribute"/>
   301        <push state="old-style-attr"/>
   302      </rule>
   303      <rule pattern="(?=.+?[=:]([^a-z]|$))">
   304        <token type="NameAttribute"/>
   305        <push state="new-style-attr"/>
   306      </rule>
   307      <rule>
   308        <push state="selector"/>
   309      </rule>
   310    </state>
   311    <state name="single-comment">
   312      <rule pattern=".+">
   313        <token type="CommentSingle"/>
   314      </rule>
   315      <rule pattern="\n">
   316        <token type="Text"/>
   317        <push state="root"/>
   318      </rule>
   319    </state>
   320    <state name="new-style-attr">
   321      <rule pattern="[^\s:=&#34;\[]+">
   322        <token type="NameAttribute"/>
   323      </rule>
   324      <rule pattern="#\{">
   325        <token type="LiteralStringInterpol"/>
   326        <push state="interpolation"/>
   327      </rule>
   328      <rule pattern="[ \t]*[=:]">
   329        <token type="Operator"/>
   330        <push state="value"/>
   331      </rule>
   332    </state>
   333    <state name="class">
   334      <rule pattern="[\w-]+">
   335        <token type="NameClass"/>
   336      </rule>
   337      <rule pattern="#\{">
   338        <token type="LiteralStringInterpol"/>
   339        <push state="interpolation"/>
   340      </rule>
   341      <rule>
   342        <pop depth="1"/>
   343      </rule>
   344    </state>
   345    <state name="old-style-attr">
   346      <rule pattern="[^\s:=&#34;\[]+">
   347        <token type="NameAttribute"/>
   348      </rule>
   349      <rule pattern="#\{">
   350        <token type="LiteralStringInterpol"/>
   351        <push state="interpolation"/>
   352      </rule>
   353      <rule pattern="[ \t]*=">
   354        <token type="Operator"/>
   355        <push state="value"/>
   356      </rule>
   357      <rule>
   358        <push state="value"/>
   359      </rule>
   360    </state>
   361  </rules>
   362</lexer>

View as plain text