Warning, file /frameworks/syntax-highlighting/autotests/html/test.mss.dark.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>test.mss</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (CartoCSS MSS) - Theme (Breeze Dark)"/> 0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre> 0007 <span style="color:#7a7c7d;">/* </span><span style="color:#3f8058;">kate:</span><span style="color:#7a7c7d;"> </span><span style="color:#7f8c8d;">hl</span><span style="color:#f44f4f;"> CartoCSS</span> 0008 <span style="color:#7a7c7d;"> This file contains some content coming from</span> 0009 <span style="color:#7a7c7d;"> https://github.com/gravitystorm/openstreetmap-carto</span> 0010 <span style="color:#7a7c7d;"> with CC0 license. This file is just for testing</span> 0011 <span style="color:#7a7c7d;"> katepart highlighting engine.</span> 0012 <span style="color:#7a7c7d;"> */</span> 0013 0014 <span style="color:#7a7c7d;">/* This is</span> 0015 <span style="color:#7a7c7d;">a multiline comment. */</span> 0016 0017 <span style="color:#7a7c7d;">// This is a single-line comment.</span> 0018 0019 #world <span style="color:#3f8058;">{</span> 0020 <span style="color:#7a7c7d;">// various styles to define colors (all except the color function are rendered the same way):</span> 0021 <span style="color:#7a7c7d;">// Numbers are always treated as floating-point and highlighted. This syntax</span> 0022 polygon-opacity<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">50%</span><span style="color:#3f8058;">;</span> 0023 <span style="color:#7a7c7d;">// is equivalent to</span> 0024 polygon-opacity<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">0.5</span><span style="color:#3f8058;">;</span> 0025 <span style="color:#7a7c7d;">// This is a coma-separated list of numbers:</span> 0026 line-dasharray<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">6</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">3</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">3</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">3</span><span style="color:#3f8058;">;</span> 0027 <span style="color:#7a7c7d;">// Also function calls are possible. Function calls like “url” get special highlighting:</span> 0028 shield-file<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#8e44ad;">url</span><span style="color:#3f8058;">(</span><span style="color:#da4453;">"myfile.svg"</span><span style="color:#3f8058;">);</span> 0029 <span style="color:#7a7c7d;">// Within function calls, strings can contains fields like [width] which get special highlighting:</span> 0030 shield-file<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#8e44ad;">url</span><span style="color:#3f8058;">(</span><span style="color:#da4453;">"symbols/shields/motorway_</span><span style="color:#27aeae;">[width]</span><span style="color:#da4453;">x</span><span style="color:#27aeae;">[height]</span><span style="color:#da4453;">.svg"</span><span style="color:#3f8058;">);</span> 0031 polygon-fill<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;font-weight:bold;">white</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// List of known colors</span> 0032 polygon-fill<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;font-weight:bold;">#ffffff</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Six-digit hex color</span> 0033 polygon-fill<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;font-weight:bold;">#fff</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Three-digit hex color</span> 0034 polygon-fill<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> #ffff</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Invalid hex color</span> 0035 polygon-fill<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#8e44ad;">rgba</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">255</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">255</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">255</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">);</span> <span style="color:#7a7c7d;">// define a color by a special function</span> 0036 <span style="color:#7a7c7d;">// everything else is simply interpreted as keyword:</span> 0037 line-clip<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> false</span><span style="color:#3f8058;">;</span> 0038 line-clip<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> abcdef</span><span style="color:#3f8058;">;</span> 0039 <span style="color:#3f8058;">}</span> 0040 0041 <span style="color:#7a7c7d;">// You can define macros called “CartoCSS variables” with arbitrary values and types.</span> 0042 <span style="color:#7a7c7d;">// They do not behave much like variable, but more like macros.</span> 0043 <span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">15</span><span style="color:#3f8058;">;</span> 0044 <span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;font-weight:bold;">#123456</span><span style="color:#3f8058;">;</span> 0045 <span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;font-weight:bold;">white</span><span style="color:#3f8058;">;</span> 0046 <span style="color:#27ae60;">@myothervariable</span><span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// this variable gets defined by the value of another variable</span> 0047 <span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#8e44ad;">darken</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;font-weight:bold;">white</span><span style="color:#3f8058;">,</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">5%</span><span style="color:#3f8058;">);</span> <span style="color:#7a7c7d;">// A variable defined by the result of a function. The function “darken” gets special highlighting.</span> 0048 <span style="color:#7a7c7d;">// Variables can also contain strings:</span> 0049 <span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">'abc'</span><span style="color:#3f8058;">;</span> 0050 0051 <span style="color:#7a7c7d;">// These variables can be used later as values</span> 0052 #world <span style="color:#3f8058;">{</span> 0053 polygon-fill<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27ae60;">@myvariable</span><span style="color:#3f8058;">;</span> 0054 <span style="color:#3f8058;">}</span> 0055 0056 <span style="color:#7a7c7d;">/* Typically, in MSS files you declare filters like “#world[zoom >= 17]”</span> 0057 <span style="color:#7a7c7d;">followed by curly braces with parameters like “size” for Mapnik symbolizers like “text”. */</span> 0058 0059 <span style="color:#7a7c7d;">// Each Mapnik symbolizer parameter can be on its own line:</span> 0060 #world<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">17</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> 0061 text-wrap-width<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">20</span><span style="color:#3f8058;">;</span> 0062 text-size<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="color:#3f8058;">;</span> 0063 <span style="color:#3f8058;">}</span> 0064 <span style="color:#7a7c7d;">// Or you can put various of them into the same line:</span> 0065 #world<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">19</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> text-wrap-width<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">20</span><span style="color:#3f8058;">;</span> text-size<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="color:#3f8058;">;</span> <span style="color:#3f8058;">}</span> 0066 0067 <span style="color:#7a7c7d;">// It is allowed to omit the final “;” for the last Mapnik symbolizer parameter within a block:</span> 0068 #world<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">19</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> text-wrap-width<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">20</span><span style="color:#3f8058;">;</span> text-size<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="font-weight:bold;"> </span><span style="color:#3f8058;">}</span> 0069 <span style="color:#7a7c7d;">// Also after an omitted final “;” the following code is nevertheless highlighted correctly:</span> 0070 #world<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">19</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> text-wrap-width<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">20</span><span style="color:#3f8058;">;</span> text-size<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="font-weight:bold;"> </span><span style="color:#3f8058;">;</span> <span style="color:#3f8058;">}</span> 0071 <span style="color:#7a7c7d;">// “null” and “zoom” are special keywords within filters, and highlighted as such:</span> 0072 <span style="color:#3f8058;">[</span><span style="color:#27aeae;">"name" </span><span style="color:#3f8058;">!=</span><span style="font-weight:bold;"> null</span><span style="color:#3f8058;">][</span><span style="color:#27aeae;">"ref" </span><span style="color:#3f8058;">=</span><span style="font-weight:bold;"> null</span><span style="color:#3f8058;">][</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">19</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> text-wrap-width<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">20</span><span style="color:#3f8058;">;</span> <span style="color:#3f8058;">}</span> 0073 0074 #admin-low-zoom<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;"><</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="color:#3f8058;">]</span>, <span style="color:#7a7c7d;">// You can make coma-separated lists of various filters</span> 0075 #admin-mid-zoom<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="color:#3f8058;">][</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;"><</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">13</span><span style="color:#3f8058;">]</span>, <span style="color:#7a7c7d;">// like this one.</span> 0076 #admin-high-zoom<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">13</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> 0077 <span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">15</span><span style="color:#3f8058;">]</span> <span style="color:#7a7c7d;">// “zoom” has special behaviour within filters and gets its own highlighting</span> 0078 <span style="color:#3f8058;">[</span><span style="color:#27aeae;">admin_level </span><span style="color:#3f8058;">=</span><span style="font-weight:bold;"> </span><span style="color:#f44f4f;">'2'</span><span style="color:#3f8058;">]</span>, <span style="color:#7a7c7d;">// data fields like “admin_level” can be referenced by their name and get highlighting as data fields</span> 0079 <span style="color:#3f8058;">[</span><span style="color:#27aeae;">"admin_level" </span><span style="color:#3f8058;">=</span><span style="font-weight:bold;"> </span><span style="color:#f44f4f;">'2'</span><span style="color:#3f8058;">]</span>, <span style="color:#7a7c7d;">// data fields like “admin_level” can be referenced by their name in quotes and get highlighting as data fields</span> 0080 <span style="color:#3f8058;">[</span><span style="color:#27aeae;">admin_level </span><span style="color:#3f8058;">=</span><span style="font-weight:bold;"> </span><span style="color:#f44f4f;">'3'</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> 0081 <span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">4</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> 0082 <span style="color:#7a7c7d;">// You can create additional “Named instances” of Mapnik symbolizers by adding a “myname/” before the symbolizer.</span> 0083 <span style="color:#7a7c7d;">// The name of the named instance gets special highlighting:</span> 0084 <span style="color:#2980b9;">background/</span>line-color<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;font-weight:bold;">white</span><span style="color:#3f8058;">;</span> 0085 line-color<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27ae60;">@admin-boundaries</span><span style="color:#3f8058;">;</span> 0086 <span style="color:#3f8058;">}</span> 0087 <span style="color:#3f8058;">}</span> 0088 <span style="color:#3f8058;">}</span> 0089 0090 #admin-mid-zoom<span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">11</span><span style="color:#3f8058;">][</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;"><</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">13</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> 0091 <span style="color:#3f8058;">[</span><span style="color:#27aeae;">admin_level </span><span style="color:#3f8058;">=</span><span style="font-weight:bold;"> </span><span style="color:#f44f4f;">'abc'</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> <span style="color:#7a7c7d;">// The string 'abc' is highlighted as a verbatim string, not as an expression string.</span> 0092 <span style="color:#3f8058;">[</span><span style="font-weight:bold;">zoom</span><span style="color:#27aeae;"> </span><span style="color:#3f8058;">>=</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">4</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">{</span> 0093 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;">[test]</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// simplified reference to the value of the data field “test”</span> 0094 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"</span><span style="color:#27aeae;">[test]</span><span style="color:#da4453;">"</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// another reference to the data field “test”, this time within an expression string</span> 0095 <span style="color:#7a7c7d;">// A rather complex expression string that will do some math; @zoom is a special runtime value (in spite</span> 0096 <span style="color:#7a7c7d;">// of the @ it has nothing to do with ordinary variables):</span> 0097 text-size<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"(</span><span style="color:#27aeae;">[way_area]</span><span style="color:#da4453;">*pow(4,</span><span style="color:#3daee9;">@zoom</span><span style="color:#da4453;">)/24505740000)"</span><span style="color:#3f8058;">;</span> 0098 <span style="color:#7a7c7d;">// Here the same thing as simple expression:</span> 0099 <span style="color:#7a7c7d;">// Note that @zoom now is highlighted in another color, because in this context it does not reference to a</span> 0100 <span style="color:#7a7c7d;">// runtime variable anymore, but to an ordinary CartoCSS variable:</span> 0101 text-size<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">[way_area]</span><span style="color:#3f8058;">*</span><span style="color:#8e44ad;">pow</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">4</span><span style="color:#3f8058;">,</span><span style="color:#27ae60;">@zoom</span><span style="color:#3f8058;">)/</span><span style="color:#f67400;">24505740000</span><span style="color:#3f8058;">);</span> 0102 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"</span><span style="color:#f44f4f;">'Value: '</span><span style="color:#27aeae;">[test]</span><span style="color:#da4453;">"</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// A verbatim string 'Value: ' as part of an expression string.</span> 0103 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">'</span><span style="color:#f44f4f;">"Value: "</span><span style="color:#27aeae;">[test]</span><span style="color:#da4453;">'</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// " and ' are interchangeable. The outer is always the expression string and the inner the verbatim string.</span> 0104 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"</span><span style="color:#27aeae;">[field]</span><span style="color:#da4453;">\n"</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Expression strings however do not have escape sequences, so \n gets no special highlighting here. [field] however is highlighted as data field.</span> 0105 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"</span><span style="color:#27aeae;">[field]</span><span style="color:#da4453;">+</span><span style="color:#f44f4f;">'</span><span style="color:#3daee9;">\n</span><span style="color:#f44f4f;">'</span><span style="color:#da4453;">+</span><span style="color:#27aeae;">[otherfield]</span><span style="color:#da4453;">"</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Inner strings, here the single-quoted string, are normal strings and highlight escape sequences like \n.</span> 0106 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"</span><span style="color:#27aeae;">[field]</span><span style="color:#da4453;">+</span><span style="color:#f44f4f;">'[testfield]'</span><span style="color:#da4453;">+</span><span style="color:#27aeae;">[otherfield]</span><span style="color:#da4453;">"</span><span style="color:#3f8058;">;</span> <span style="color:#7a7c7d;">// Inner strings, here the single-quoted string, are normal strings and do not highlight any fields like [testfield].</span> 0107 text-name<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;">[name]</span><span style="font-weight:bold;"> </span><span style="color:#3f8058;">+</span><span style="font-weight:bold;"> </span><span style="color:#3f8058;">/*</span><span style="font-weight:bold;"> Comments are not allowed within expressions</span><span style="color:#3f8058;">,</span><span style="font-weight:bold;"> so no special comment highlighting here. </span><span style="color:#3f8058;">*/</span><span style="font-weight:bold;"> </span><span style="color:#da4453;">"\n"</span><span style="font-weight:bold;"> </span><span style="color:#3f8058;">+</span><span style="font-weight:bold;"> </span><span style="color:#27aeae;">[ref]</span><span style="color:#3f8058;">;</span> 0108 <span style="color:#3f8058;">}</span> 0109 <span style="color:#3f8058;">}</span> 0110 <span style="color:#3f8058;">}</span> 0111 0112 .nature <span style="color:#3f8058;">{</span> <span style="color:#7a7c7d;">// .nature references a class, which is similar to a layer like #nature, so both are rendered the same way</span> 0113 <span style="color:#fdbc4b;font-weight:bold;">::fill</span> <span style="color:#3f8058;">{</span> 0114 <span style="color:#7a7c7d;">/* The :: syntax defined “attachments” (a sort of sub-layer within normal layers), here “::fill”.</span> 0115 <span style="color:#7a7c7d;"> Everything that is defined within an attachment is applied in the order of the first occurrence</span> 0116 <span style="color:#7a7c7d;"> of the attachment, instead of following the normal appliance order. Therefore attachments are</span> 0117 <span style="color:#7a7c7d;"> highlighted as dsControlFlow by default. */</span> 0118 opacity<span style="color:#3f8058;">:</span><span style="font-weight:bold;"> </span><span style="color:#f67400;">0.05</span><span style="color:#3f8058;">;</span> 0119 <span style="color:#3f8058;">}</span> 0120 <span style="color:#3f8058;">}</span> 0121 </pre></body></html>