Find file
Fetching contributors…
Cannot retrieve contributors at this time
715 lines (666 sloc) 29.4 KB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
Kate SCSS syntax highlighting definition
Modified the Kate CSS syntax highlighting definition to support SCSS.
This file should be merged with any updates to the normal Kate CCS definition (see note on version numbering in changelog for
The latest version of this file can be found at
- Version, by Tijn Schuurmans
- Added basic support for "@include mixin();"
- Clean the indentation to use 4 spaces everywhere
- Version, by Evan Sosenko
- Added basic SCSS syntax support (e.g. nesting).
- New version numbering: version 1.x.xx.y is for SCSS, where x.xx is forked version of original CSS syntax file, and y is minor revision to SCSS support.
<language name="SCSS" version="2.04" kateversion="2.4" section="Markup" extensions="*.scss;*.sass" indenter="cstyle"
mimetype="text/css" author="Wilbert Berendsen (" license="LGPL">
<list name="properties">
<!-- CSS2 -->
<item> azimuth </item>
<item> background </item>
<item> background-attachment </item>
<item> background-color </item>
<item> background-image </item>
<item> background-position </item>
<item> background-repeat </item>
<item> border </item>
<item> border-bottom </item>
<item> border-bottom-color </item>
<item> border-bottom-style </item>
<item> border-bottom-width </item>
<item> border-collapse </item>
<item> border-color </item>
<item> border-left </item>
<item> border-left-color </item>
<item> border-left-style </item>
<item> border-left-width </item>
<item> border-right </item>
<item> border-right-color </item>
<item> border-right-style </item>
<item> border-right-width </item>
<item> border-spacing </item>
<item> border-style </item>
<item> border-top </item>
<item> border-top-color </item>
<item> border-top-style </item>
<item> border-top-width </item>
<item> border-width </item>
<item> bottom </item>
<item> caption-side </item>
<item> clear </item>
<item> clip </item>
<item> color </item>
<item> content </item>
<item> counter-increment </item>
<item> counter-reset </item>
<item> cue </item>
<item> cue-after </item>
<item> cue-before </item>
<item> cursor </item>
<item> direction </item>
<item> display </item>
<item> elevation </item>
<item> empty-cells </item>
<item> float </item>
<item> font </item>
<item> font-family </item>
<item> font-size </item>
<item> font-size-adjust </item>
<item> font-stretch </item>
<item> font-style </item>
<item> font-variant </item>
<item> font-weight </item>
<item> height </item>
<item> left </item>
<item> letter-spacing </item>
<item> line-height </item>
<item> list-style </item>
<item> list-style-image </item>
<item> list-style-keyword </item>
<item> list-style-position </item>
<item> list-style-type </item>
<item> margin </item>
<item> margin-bottom </item>
<item> margin-left </item>
<item> margin-right </item>
<item> margin-top </item>
<item> marker-offset </item>
<item> max-height </item>
<item> max-width </item>
<item> min-height </item>
<item> min-width </item>
<item> orphans </item>
<item> outline </item>
<item> outline-color </item>
<item> outline-style </item>
<item> outline-width </item>
<item> overflow </item>
<item> padding </item>
<item> padding-bottom </item>
<item> padding-left </item>
<item> padding-right </item>
<item> padding-top </item>
<item> page </item>
<item> page-break-after </item>
<item> page-break-before </item>
<item> page-break-inside </item>
<item> pause </item>
<item> pause-after </item>
<item> pause-before </item>
<item> pitch </item>
<item> pitch-range </item>
<item> play-during </item>
<item> position </item>
<item> quotes </item>
<item> richness </item>
<item> right </item>
<item> size </item>
<item> speak </item>
<item> speak-header </item>
<item> speak-numeral </item>
<item> speak-punctuation </item>
<item> speech-rate </item>
<item> stress </item>
<item> table-layout </item>
<item> text-align </item>
<item> text-decoration </item>
<item> text-decoration-color </item>
<item> text-indent </item>
<item> text-shadow </item>
<item> text-transform </item>
<item> top </item>
<item> unicode-bidi </item>
<item> vertical-align </item>
<item> visibility </item>
<item> voice-family </item>
<item> volume </item>
<item> white-space </item>
<item> widows </item>
<item> width </item>
<item> word-spacing </item>
<item> z-index </item>
<!-- CSS3 -->
<item> border-bottom-image </item>
<item> border-bottom-left-image </item>
<item> border-bottom-left-radius </item>
<item> border-bottom-right-image </item>
<item> border-bottom-right-radius </item>
<item> border-corner-image </item>
<item> border-image </item>
<item> border-left-image </item>
<item> border-radius </item>
<item> border-right-image </item>
<item> border-top-image </item>
<item> border-top-left-image </item>
<item> border-top-left-radius </item>
<item> border-top-right-image </item>
<item> border-top-right-radius </item>
<item> box-shadow </item>
<item> box-sizing </item>
<item> opacity </item>
<item> outline-offset </item>
<item> overflow-x </item>
<item> overflow-y </item>
<item> text-overflow </item>
<item> text-shadow </item>
<!-- Gecko rendering engine CSS property extensions -->
<item> -moz-border-bottom-colors </item>
<item> -moz-border-left-colors </item>
<item> -moz-border-radius </item>
<item> -moz-border-right-colors </item>
<item> -moz-border-top-colors </item>
<item> -moz-box-flex </item>
<!-- Opera rendering engine CSS property extensions -->
<item> -o-background-size </item>
<item> -o-text-overflow </item>
<!-- konq specific -->
<item> -khtml-background-size </item>
<item> konq_bgpos_x </item>
<item> konq_bgpos_y </item>
<!-- Webkit rendering engine CSS property extensions -->
<item> -webkit-background-size </item>
<!-- font properties in @font-face -->
<item> font-family </item>
<item> font-size </item>
<item> font-stretch </item>
<item> font-style </item>
<item> font-variant </item>
<item> font-weight </item>
<item> unicode-range </item>
<item> units-per-em </item>
<item> src </item>
<item> panose-1 </item>
<item> stemv </item>
<item> stemh </item>
<item> slope </item>
<item> cap-height </item>
<item> x-height </item>
<item> ascent </item>
<item> descent </item>
<item> widths </item>
<item> bbox </item>
<item> definition-src </item>
<item> baseline </item>
<item> centerline </item>
<item> mathline </item>
<item> topline </item>
<list name="types">
<item> inherit </item>
<item> none </item>
<item> hidden </item>
<item> dotted </item>
<item> dashed </item>
<item> solid </item>
<item> double </item>
<item> groove </item>
<item> ridge </item>
<item> inset </item>
<item> outset </item>
<item> xx-small </item>
<item> x-small </item>
<item> small </item>
<item> medium </item>
<item> large </item>
<item> x-large </item>
<item> xx-large </item>
<item> smaller </item>
<item> larger </item>
<item> italic </item>
<item> oblique </item>
<item> small-caps </item>
<item> normal </item>
<item> bold </item>
<item> bolder </item>
<item> lighter </item>
<item> light </item>
<item> 100 </item>
<item> 200 </item>
<item> 300 </item>
<item> 400 </item>
<item> 500 </item>
<item> 600 </item>
<item> 700 </item>
<item> 800 </item>
<item> 900 </item>
<item> transparent </item>
<item> repeat </item>
<item> repeat-x </item>
<item> repeat-y </item>
<item> no-repeat </item>
<item> baseline </item>
<item> sub </item>
<item> super </item>
<item> top </item>
<item> text-top </item>
<item> middle </item>
<item> bottom </item>
<item> text-bottom </item>
<item> left </item>
<item> right </item>
<item> center </item>
<item> justify </item>
<item> konq-center </item>
<item> disc </item>
<item> circle </item>
<item> square </item>
<item> box </item>
<item> decimal </item>
<item> decimal-leading-zero </item>
<item> lower-roman </item>
<item> upper-roman </item>
<item> lower-greek </item>
<item> lower-alpha </item>
<item> lower-latin </item>
<item> upper-alpha </item>
<item> upper-latin </item>
<item> hebrew </item>
<item> armenian </item>
<item> georgian </item>
<item> cjk-ideographic </item>
<item> hiragana </item>
<item> katakana </item>
<item> hiragana-iroha </item>
<item> katakana-iroha </item>
<item> inline </item>
<item> inline-block </item>
<item> block </item>
<item> list-item </item>
<item> run-in </item>
<item> compact </item>
<item> marker </item>
<item> table </item>
<item> inline-table </item>
<item> table-row-group </item>
<item> table-header-group </item>
<item> table-footer-group </item>
<item> table-row </item>
<item> table-column-group </item>
<item> table-column </item>
<item> table-cell </item>
<item> table-caption </item>
<item> auto </item>
<item> crosshair </item>
<item> default </item>
<item> pointer </item>
<item> move </item>
<item> e-resize </item>
<item> ne-resize </item>
<item> nw-resize </item>
<item> n-resize </item>
<item> se-resize </item>
<item> sw-resize </item>
<item> s-resize </item>
<item> w-resize </item>
<item> text </item>
<item> wait </item>
<item> help </item>
<item> above </item>
<item> absolute </item>
<item> always </item>
<item> avoid </item>
<item> below </item>
<item> bidi-override </item>
<item> blink </item>
<item> both </item>
<item> capitalize </item>
<item> caption </item>
<item> clip </item>
<item> close-quote </item>
<item> collapse </item>
<item> condensed </item>
<item> crop </item>
<item> cross </item>
<item> ellipsis </item>
<item> ellipsis-word </item>
<item> embed </item>
<item> expanded </item>
<item> extra-condensed </item>
<item> extra-expanded </item>
<item> fixed </item>
<item> hand </item>
<item> hide </item>
<item> higher </item>
<item> icon </item>
<item> inside </item>
<item> invert </item>
<item> landscape </item>
<item> level </item>
<item> line-through </item>
<item> loud </item>
<item> lower </item>
<item> lowercase </item>
<item> ltr </item>
<item> menu </item>
<item> message-box </item>
<item> mix </item>
<item> narrower </item>
<item> no-close-quote </item>
<item> no-open-quote </item>
<item> nowrap </item>
<item> open-quote </item>
<item> outside </item>
<item> overline </item>
<item> portrait </item>
<item> pre </item>
<item> pre-line </item>
<item> pre-wrap </item>
<item> relative </item>
<item> rtl </item>
<item> scroll </item>
<item> semi-condensed </item>
<item> semi-expanded </item>
<item> separate </item>
<item> show </item>
<item> small-caption </item>
<item> static </item>
<item> static-position </item>
<item> status-bar </item>
<item> thick </item>
<item> thin </item>
<item> ultra-condensed </item>
<item> ultra-expanded </item>
<item> underline </item>
<item> uppercase </item>
<item> visible </item>
<item> wider </item>
<item> break </item>
<item> serif </item>
<item> sans-serif </item>
<item> cursive </item>
<item> fantasy </item>
<item> monospace </item>
<item> border-box </item>
<item> content-box </item>
<!-- Gecko rendering engine CSS value extensions -->
<item> -moz-box </item>
<list name="colors">
<item> aqua </item>
<item> black </item>
<item> blue </item>
<item> cyan </item>
<item> fuchsia </item>
<item> gray </item>
<item> green </item>
<item> lime </item>
<item> maroon </item>
<item> navy </item>
<item> olive </item>
<item> purple </item>
<item> red </item>
<item> silver </item>
<item> teal </item>
<item> white </item>
<item> yellow </item>
<item> ActiveBorder </item>
<item> ActiveCaption </item>
<item> AppWorkspace </item>
<item> Background </item>
<item> ButtonFace </item>
<item> ButtonHighlight </item>
<item> ButtonShadow </item>
<item> ButtonText </item>
<item> CaptionText </item>
<item> GrayText </item>
<item> Highlight </item>
<item> HighlightText </item>
<item> InactiveBorder </item>
<item> InactiveCaption </item>
<item> InactiveCaptionText </item>
<item> InfoBackground </item>
<item> InfoText </item>
<item> Menu </item>
<item> MenuText </item>
<item> Scrollbar </item>
<item> ThreeDDarkShadow </item>
<item> ThreeDFace </item>
<item> ThreeDHighlight </item>
<item> ThreeDLightShadow </item>
<item> ThreeDShadow </item>
<item> Window </item>
<item> WindowFrame </item>
<item> WindowText </item>
<list name="paren">
<item> url </item>
<item> attr </item>
<item> rect </item>
<item> rgb </item>
<item> rgba </item>
<item> hsl </item>
<item> hsla </item>
<item> counter </item>
<item> counters </item>
<!-- in @font-face -->
<item> local </item>
<item> format </item>
<!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions -->
<item> expression </item>
<list name="mediatypes">
<item> all </item>
<item> aural </item>
<item> braille </item>
<item> embossed </item>
<item> handheld </item>
<item> print </item>
<item> projection </item>
<item> screen </item>
<item> tty </item>
<item> tv </item>
<list name="pseudoclasses">
<item> hover </item>
<item> link </item>
<item> visited </item>
<item> active </item>
<item> focus </item>
<item> first-child </item>
<item> last-child </item>
<item> only-child </item>
<item> first-of-type </item>
<item> last-of-type </item>
<item> only-of-type </item>
<item> first-letter </item>
<item> first-line </item>
<item> before </item>
<item> after </item>
<item> selection </item>
<item> root </item>
<item> empty </item>
<item> target </item>
<item> enabled </item>
<item> disabled </item>
<item> checked </item>
<item> indeterminate </item>
<item> nth-child </item>
<item> nth-last-child </item>
<item> nth-of-type </item>
<item> nth-last-of-type </item>
<item> not </item>
<context attribute="Normal Text" lineEndContext="#stay" name="Base">
<IncludeRules context="FindRuleSets" />
<!-- to be included -->
<!-- finds rules and detects nesting -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindRuleSets">
<RegExpr attribute="Media" context="Media" String="@media\b" />
<RegExpr attribute="At Rule" context="Import" String="@import\b" />
<RegExpr attribute="At Rule" context="Include" String="@include\b" />
<RegExpr attribute="At Rule" context="#stay" String="@(font-face|charset)\b" />
<RegExpr attribute="Variable" context="#stay" String="\$[^:]*" />
<DetectChar attribute="Property" context="RuleSet" char="{" beginRegion="ruleset" />
<!--parse selectors-->
<DetectChar attribute="Selector Attr" context="SelAttr" char="[" />
<RegExpr attribute="Selector Id" context="#stay" String="#([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
<RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
<RegExpr attribute="Selector Pseudo" context="#stay" String=":lang\([\w_-]+\)" />
<DetectChar attribute="Selector Pseudo" context="SelPseudo" char=":" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
<!-- finds arguments to properties -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindValues">
<RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+(em|ex|px|in|cm|mm|pt|pc|deg|rad|grad|ms|s|Hz|kHz)\b" />
<RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+[%]?" />
<RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" />
<!-- finds strings -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
<DetectChar attribute="String" context="StringDQ" char="&quot;" />
<DetectChar attribute="String" context="StringSQ" char="'" />
<!-- finds comments -->
<context attribute="Normal Text" lineEndContext="#stay" name="FindComments">
<RegExpr attribute="Region Marker" context="#stay" String="/\*BEGIN.*\*/" beginRegion="UserDefined" />
<RegExpr attribute="Region Marker" context="#stay" String="/\*END.*\*/" endRegion="UserDefined" />
<Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />
<Detect2Chars attribute="Comment" context="sassComment" char="/" char1="/" beginRegion="sassComment" />
<!-- other contexts -->
<context attribute="Normal Text" lineEndContext="#stay" name="Media">
<DetectChar attribute="Media" context="Media2" char="{" beginRegion="media" />
<keyword attribute="Media" context="#stay" String="mediatypes" />
<DetectChar attribute="Media" context="#stay" char="," />
<IncludeRules context="FindComments" />
<RegExpr attribute="Error" context="#stay" String="\S+" />
<context attribute="Normal Text" lineEndContext="#stay" name="Media2">
<DetectChar attribute="Media" context="#pop#pop" char="}" endRegion="media" />
<IncludeRules context="FindRuleSets" />
<context attribute="Selector Attr" lineEndContext="#stay" name="SelAttr">
<DetectChar attribute="Selector Attr" context="#pop" char="]" />
<IncludeRules context="FindStrings" />
<context attribute="Selector Pseudo" lineEndContext="#pop" name="SelPseudo" fallthrough="true" fallthroughContext="#pop">
<keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" />
<context attribute="Normal Text" lineEndContext="#stay" name="Import">
<DetectChar attribute="At Rule" context="#pop" char=";" />
<keyword attribute="Media" context="#stay" String="mediatypes" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
<context attribute="Normal Text" lineEndContext="#stay" name="Include">
<DetectChar attribute="At Rule" context="#pop" char=";" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
<keyword attribute="Value" context="PropParen" String="paren" />
<context attribute="Comment" lineEndContext="#pop" name="sassComment">
<context attribute="Comment" lineEndContext="#stay" name="Comment">
<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment" />
<IncludeRules context="##Alerts" />
<context attribute="Normal Text" lineEndContext="#stay" name="RuleSet">
<DetectChar attribute="Property" context="RuleSet" char="{" beginRegion="ruleset" />
<IncludeRules context="FindRuleSets" />
<DetectChar attribute="Property" context="#pop" char="}" endRegion="ruleset" />
<keyword attribute="Property" context="Rule" String="properties" />
<RegExpr attribute="Unknown Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" />
<IncludeRules context="FindComments" />
<!-- <RegExpr attribute="Error" context="#stay" String="\S" /> -->
<context attribute="Normal Text" lineEndContext="#stay" name="Rule">
<DetectChar attribute="Property" context="Rule2" char=":" />
<RegExpr attribute="Error" context="#stay" String="\S" />
<context attribute="Normal Text" lineEndContext="#stay" name="Rule2">
<DetectChar attribute="Property" context="#pop#pop" char=";" />
<DetectChar attribute="Property" context="#pop#pop#pop" char="}" endRegion="ruleset" />
<!-- parse property values -->
<keyword attribute="Value" context="#stay" String="types" />
<keyword attribute="Value" context="#stay" String="colors" />
<RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" />
<keyword attribute="Value" context="PropParen" String="paren" />
<RegExpr attribute="Variable" context="#stay" String="\$[^;]*" />
<RegExpr attribute="Important" context="#stay" String="!important\b" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
<context attribute="Normal Text" lineEndContext="#stay" name="PropParen">
<DetectChar attribute="Value" context="PropParen2" char="(" />
<IncludeRules context="FindComments" />
<RegExpr attribute="Error" context="#stay" String="\S" />
<context attribute="Normal Text" lineEndContext="#stay" name="PropParen2">
<DetectChar attribute="Value" context="#pop#pop" char=")" />
<IncludeRules context="FindValues" />
<IncludeRules context="FindStrings" />
<IncludeRules context="FindComments" />
<!-- string contexts -->
<context attribute="String" lineEndContext="#stay" name="StringDQ">
<DetectChar attribute="String" context="#pop" char="&quot;" />
<IncludeRules context="InsideString" />
<context attribute="String" lineEndContext="#stay" name="StringSQ">
<DetectChar attribute="String" context="#pop" char="'" />
<IncludeRules context="InsideString" />
<context attribute="String" lineEndContext="#stay" name="InsideString">
<RegExpr attribute="String" context="#stay" String="\\[&quot;']" />
<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
<itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Unknown Property" defStyleNum="dsKeyword" italic="1" spellChecking="false"/>
<itemData name="Media" defStyleNum="dsDecVal" bold="1" spellChecking="false"/>
<itemData name="At Rule" defStyleNum="dsDecVal" spellChecking="false"/>
<itemData name="String" defStyleNum="dsString"/>
<itemData name="Value" defStyleNum="dsDataType" spellChecking="false"/>
<itemData name="Important" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Selector Attr" defStyleNum="dsChar" spellChecking="false"/>
<itemData name="Selector Id" defStyleNum="dsFloat" bold="1" spellChecking="false"/>
<itemData name="Selector Class" defStyleNum="dsFloat" spellChecking="false"/>
<itemData name="Selector Pseudo" defStyleNum="dsDecVal" spellChecking="false"/>
<itemData name="Comment" defStyleNum="dsComment" />
<itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
<itemData name="Alert" defStyleNum="dsAlert" spellChecking="false"/>
<itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
<itemData name="Variable" defStyleNum="dsNormal" spellChecking="false"/>
<keywords casesensitive="0" weakDeliminator="-%"/>
<comment name="multiLine" start="/*" end="*/" />