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