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

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language>
0003 <language name="Varnish Configuration Language" version="12" kateversion="5.79" section="Configuration" extensions="*.vcl" author="Xavier Guerrin (xavier@tuxfamily.org)" license="WTFPL" priority="9">
0004   <highlighting>
0005     <list name="vclStandardSubs">
0006       <item>vcl_recv</item>
0007       <item>vcl_pipe</item>
0008       <item>vcl_pass</item>
0009       <item>vcl_hash</item>
0010       <item>vcl_purge</item>
0011       <item>vcl_miss</item>
0012       <item>vcl_hit</item>
0013       <item>vcl_deliver</item>
0014       <item>vcl_synth</item>
0015       <item>vcl_backend_fetch</item>
0016       <item>vcl_backend_response</item>
0017       <item>vcl_backend_error</item>
0018       <item>vcl_init</item>
0019       <item>vcl_fini</item>
0020     </list>
0021     <list name="vclConditionalKeywords">
0022       <item>if</item>
0023       <item>else</item>
0024       <item>elif</item>
0025       <item>elsif</item>
0026       <item>elseif</item>
0027     </list>
0028     <list name="vclKeywords">
0029       <item>call</item>
0030       <item>set</item>
0031       <item>unset</item>
0032       <item>new</item>
0033       <item>rollback</item>
0034       <item>synthetic</item>
0035       <item>esi</item>
0036       <item>include</item>
0037       <item>panic</item>
0038     </list>
0039     <list name="vclStandardFunctions">
0040       <item>hash_data</item>
0041       <item>regsub</item>
0042       <item>regsuball</item>
0043       <item>ban</item>
0044     </list>
0045     <list name="vclModes">
0046       <item>abandon</item>
0047       <item>deliver</item>
0048       <item>error</item>
0049       <item>fetch</item>
0050       <item>hash</item>
0051       <item>hit_for_pass</item>
0052       <item>lookup</item>
0053       <item>ok</item>
0054       <item>pass</item>
0055       <item>pipe</item>
0056       <item>purge</item>
0057       <item>restart</item>
0058       <item>retry</item>
0059       <item>synth</item>
0060     </list>
0061     <list name="vclDirectorTypes">
0062       <item>random</item>
0063       <item>client</item>
0064       <item>hash</item>
0065       <item>round-robin</item>
0066       <item>dns</item>
0067       <item>fallback</item>
0068     </list>
0069     <!--
0070       2013-06-16
0071       This list was generated from https://www.varnish-cache.org/vmods, taking
0072       only vmods having the "Used in production" status, excluding the
0073       non-free ones.
0074     -->
0075     <list name="knownVMods">
0076       <item>std</item>
0077       <item>example</item>
0078       <item>abtest</item>
0079       <item>threescale</item>
0080       <item>authentication</item>
0081       <item>boltsort</item>
0082       <item>crashhandler</item>
0083       <item>curl</item>
0084       <item>digest</item>
0085       <item>dns</item>
0086       <item>header</item>
0087       <item>memcached</item>
0088       <item>null</item>
0089       <item>querystring</item>
0090       <item>shield</item>
0091       <item>softpurge</item>
0092       <item>statsd</item>
0093       <item>throttle</item>
0094       <item>timeutils</item>
0095       <item>urlcode</item>
0096       <item>var</item>
0097       <item>timers</item>
0098       <item>directors</item>
0099     </list>
0100     <contexts>
0101       <context name="normal_text" attribute="Normal Text" lineEndContext="#stay">
0102         <IncludeRules context="comments" />
0103         <StringDetect attribute="Keyword" context="sub_declaration"      String="sub" />
0104         <StringDetect attribute="Keyword" context="probe_declaration"    String="probe" />
0105         <StringDetect attribute="Keyword" context="backend_declaration"  String="backend" />
0106         <StringDetect attribute="Keyword" context="director_declaration" String="director" />
0107         <StringDetect attribute="Keyword" context="acl_declaration"      String="acl" />
0108         <StringDetect attribute="Keyword" context="import_declaration"   String="import" />
0109         <StringDetect attribute="Keyword" context="include_declaration"  String="include" />
0110         <StringDetect attribute="Keyword" context="version_declaration"  String="vcl" />
0111         <IncludeRules context="embedded-c" />
0112       </context>
0113       <context name="embedded-c" attribute="Normal Text" lineEndContext="#stay">
0114         <Detect2Chars char="C" char1="{" context="embedded-c_enclosure" attribute="Region Marker" beginRegion="embedded_c_block" />
0115       </context>
0116       <context name="embedded-c_enclosure" attribute="Normal Text" lineEndContext="#stay">
0117         <Detect2Chars char="}" char1="C" context="#pop" attribute="Region Marker" endRegion="embedded_c_block" />
0118         <IncludeRules context="##C" />
0119       </context>
0120       <context name="shell-like-comment" attribute="Comment" lineEndContext="#pop">
0121         <DetectSpaces />
0122         <IncludeRules context="##Comments" />
0123       </context>
0124       <context name="c-like-comment" attribute="Comment" lineEndContext="#stay">
0125         <DetectSpaces />
0126         <Detect2Chars char="*" char1="/" context="#pop" attribute="Comment" endRegion="BlockComment" />
0127         <IncludeRules context="##Comments" />
0128       </context>
0129       <context name="cplusplus-like-comment" attribute="Comment" lineEndContext="#pop">
0130         <DetectSpaces />
0131         <IncludeRules context="##Comments" />
0132       </context>
0133       <context name="comments" attribute="Comment" lineEndContext="#pop">
0134         <DetectChar   char="#"           context="shell-like-comment"       attribute="Comment" />
0135         <Detect2Chars char="/" char1="*" context="c-like-comment"           attribute="Comment" beginRegion="BlockComment" />
0136         <Detect2Chars char="/" char1="/" context="cplusplus-like-comment"   attribute="Comment" />
0137       </context>
0138       <context name="vcl_variables" attribute="Normal Text" lineEndContext="#stay">
0139         <StringDetect attribute="Variable"  context="#stay" String="now" />
0140         <RegExpr attribute="Storage"        context="#stay" String="storage\.[a-zA-Z0-9]+(?:\.(?:free_space|used_space|happy))?" />
0141         <RegExpr attribute="TCP Property"   context="#stay" String="client\.(ip|identity)|server\.(ip|hostname|identity|port)" />
0142         <RegExpr attribute="HTTP Property"  context="#stay" String="req\.(method|url|proto|restarts|esi_level|ttl|xid|esi|can_gzip|backend_hint|hash_ignore_busy|hash_always_miss)|bereq\.(xid|retries|backend|method|url|proto|uncacheable|connect_timeout|first_byte_timeout|between_bytes_timeout)|obj\.(proto|status|reason|hits|ttl|grace|keep|uncacheable)|beresp\.(proto|status|reason|do_esi|do_stream|do_gzip|do_gunzip|uncacheable|ttl|grace|keep|backend\.(name|ip)|storage_hint)|resp\.(proto|status|reason)" />
0143         <RegExpr attribute="HTTP X- Header" context="#stay" String="(req|bereq|resp|beresp|obj)\.http\.X-[-_A-Za-z0-9]*" />
0144         <RegExpr attribute="HTTP Header"    context="#stay" String="(req|bereq|resp|beresp|obj)\.http\.[A-Za-z][-_A-Za-z0-9]*" />
0145       </context>
0146       <context name="vcl_operators" attribute="Operator" lineEndContext="#stay">
0147         <Detect2Chars attribute="Logical Operator" context="#stay" char="&amp;" char1="&amp;" />
0148         <Detect2Chars attribute="Logical Operator" context="#stay" char="|" char1="|" />
0149 
0150         <Detect2Chars attribute="Comparison Operator" context="#stay" char="=" char1="=" />
0151         <Detect2Chars attribute="Comparison Operator" context="#stay" char="!" char1="=" />
0152         <Detect2Chars attribute="Comparison Operator" context="#stay" char="&lt;" char1="=" />
0153         <Detect2Chars attribute="Comparison Operator" context="#stay" char="&gt;" char1="=" />
0154         <DetectChar   attribute="Comparison Operator" context="#stay" char="~" />
0155         <Detect2Chars attribute="Comparison Operator" context="#stay" char="!" char1="~" />
0156 
0157         <DetectChar   attribute="Logical Operator" context="#stay" char="!" />
0158 
0159         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="+" char1="=" />
0160         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="-" char1="=" />
0161         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="*" char1="=" />
0162         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="/" char1="=" />
0163         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="+" char1="+" />
0164         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="-" char1="-" />
0165         <AnyChar      attribute="Arithmetic Operator" context="#stay" String="+-*/" />
0166         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="&gt;" char1="&gt;" />
0167         <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="&lt;" char1="&lt;" />
0168 
0169         <AnyChar      attribute="Comparison Operator" context="#stay" String="&lt;&gt;" />
0170 
0171         <DetectChar   attribute="Operator" context="#stay" char="=" />
0172       </context>
0173       <context name="minimal_code" attribute="Normal Text" lineEndContext="#stay">
0174         <IncludeRules context="comments" />
0175         <RegExpr attribute="Duration" context="#stay" String="([0-9]+|[0-9]+\.[0-9]+|[0-9]+\.|\.[0-9]+)\s*(y|w|d|h|m|s|ms)" />
0176         <RegExpr attribute="Data Size" context="#stay" String="([0-9]+|[0-9]+\.[0-9]+|[0-9]+\.|\.[0-9]+)\s*[KMGT]?B" />
0177         <Float attribute="Float" context="#stay" />
0178         <Int attribute="Decimal" context="#stay" />
0179         <StringDetect attribute="Keyword" context="#stay" String="true" />
0180         <StringDetect attribute="Keyword" context="#stay" String="false" />
0181         <RegExpr attribute="Known VMod Function" context="#stay" String="debug\.(panic|author|obj|test_priv_(?:call|vcl)|str2blob|blob2hex|no_backend|rot52)|\.(enum|foo|date)|directors\.(fallback|hash|random|round_robin)|\.(add_backend|backend)|std\.(cache_req_body|collect|duration|fileread|healthy|integer|ip|log|port|querysort|random|real|real2time|rollback|set_ip_tos|strstr|syslog|time|time2integer|time2real|timestamp|tolower|toupper)" />
0182         <DetectChar char="&quot;" context="string" attribute="String" />
0183         <Detect2Chars attribute="String" char="{" char1="&quot;" context="string_enclosure" beginRegion="string_enclosure_block" />
0184       </context>
0185       <context name="definition_code" attribute="Normal Text" lineEndContext="#stay">
0186         <IncludeRules context="minimal_code" />
0187         <DetectChar attribute="Operator" context="#stay" char="=" />
0188       </context>
0189       <context name="basic_code" attribute="Normal Text" lineEndContext="#stay">
0190         <IncludeRules context="minimal_code" />
0191         <IncludeRules context="vcl_variables" />
0192         <IncludeRules context="vcl_operators" />
0193       </context>
0194       <context name="regular_code" attribute="Normal Text" lineEndContext="#stay">
0195         <IncludeRules context="basic_code" />
0196         <keyword attribute="Keyword" context="#stay" String="vclKeywords" />
0197         <keyword attribute="Standard VCL Sub" context="#stay" String="vclStandardSubs" />
0198         <keyword attribute="Standard VCL Function" context="#stay" String="vclStandardFunctions" />
0199         <keyword attribute="Condition Keyword" context="condition_part" String="vclConditionalKeywords" />
0200         <StringDetect attribute="Keyword" context="return_statement" String="return" />
0201         <IncludeRules context="embedded-c" />
0202       </context>
0203       <context name="return_statement" attribute="Normal Text" lineEndContext="#stay">
0204         <IncludeRules context="comments" />
0205         <StringDetect attribute="Keyword" context="return_synth" String="synth" />
0206         <keyword attribute="Action Keyword" context="#stay" String="vclModes" />
0207         <DetectChar attribute="Normal Text" char=";" context="#pop" />
0208       </context>
0209       <context name="return_synth" attribute="Normal Text" lineEndContext="#stay">
0210         <IncludeRules context="basic_code" />
0211         <DetectChar attribute="Normal Text" char=")" context="#pop" />
0212       </context>
0213       <context name="string_enclosure" attribute="String" lineEndContext="#stay">
0214         <Detect2Chars attribute="String" char="&quot;" char1="}" context="#pop" endRegion="string_enclosure_block" />
0215       </context>
0216       <context name="sub_declaration" attribute="Normal Text" lineEndContext="#stay">
0217         <DetectSpaces />
0218         <keyword attribute="Standard VCL Sub" context="#stay" String="vclStandardSubs" />
0219         <DetectChar attribute="Region Marker" context="sub_definition" char="{" beginRegion="sub_block" />
0220       </context>
0221       <context name="sub_definition" attribute="Normal Text" lineEndContext="#stay">
0222         <IncludeRules context="regular_code" />
0223         <DetectChar attribute="Region Marker" context="#pop#pop" char="}" endRegion="sub_block" />
0224       </context>
0225       <context name="condition_part" attribute="Normal Text" lineEndContext="#stay">
0226         <keyword attribute="Condition Keyword" context="#stay" String="vclConditionalKeywords" />
0227         <DetectChar attribute="Region Marker" context="conditional_expression" char="(" beginRegion="conditional_expression_block" />
0228         <DetectChar attribute="Region Marker" context="conditional_block" char="{" beginRegion="conditional_blockregion" />
0229       </context>
0230       <context name="conditional_expression" attribute="Normal Text" lineEndContext="#stay">
0231         <IncludeRules context="basic_code" />
0232         <DetectChar attribute="Region Marker" context="conditional_expression" char="(" beginRegion="conditional_expression_block" />
0233         <DetectChar attribute="Region Marker" context="#pop" char=")" endRegion="conditional_expression_block" />
0234       </context>
0235       <context name="conditional_block" attribute="Normal Text" lineEndContext="#stay">
0236         <IncludeRules context="regular_code" />
0237         <DetectChar attribute="Region Marker" context="#pop#pop" char="}" endRegion="conditional_blockregion" />
0238       </context>
0239       <context name="string" attribute="String" lineEndContext="#pop">
0240         <DetectChar attribute="String" context="#pop" char="&quot;" />
0241       </context>
0242       <context name="probe_declaration" attribute="Normal Text" lineEndContext="#stay">
0243         <DetectSpaces />
0244         <DetectChar   attribute="Operator" context="#stay" char="=" />
0245         <DetectChar attribute="Region Marker" context="probe_definition" char="{" beginRegion="probe_block" />
0246         <DetectChar attribute="Normal Text" context="#pop" char=";" />
0247       </context>
0248       <context name="probe_definition" attribute="Normal Text" lineEndContext="#stay">
0249         <RegExpr attribute="Probe Property" context="#stay" String="\.(url|request|window|threshold|initial|expected_response|interval|timeout)" />
0250         <IncludeRules context="definition_code" />
0251         <DetectChar attribute="Region Marker" context="#pop#pop" char="}" endRegion="probe_block" />
0252       </context>
0253       <context name="backend_declaration" attribute="Normal Text" lineEndContext="#stay">
0254         <DetectSpaces />
0255         <DetectChar attribute="Operator" context="#stay" char="=" />
0256         <DetectChar attribute="Region Marker" context="backend_definition" char="{" beginRegion="backend_block" />
0257         <DetectChar attribute="Normal Text" context="#pop" char=";" />
0258       </context>
0259       <context name="backend_definition" attribute="Normal Text" lineEndContext="#stay">
0260         <RegExpr attribute="Backend Property" context="#stay" String="\.(host|port|host_header|connect_timeout|first_byte_timeout|between_bytes_timeout|max_connections)" />
0261         <IncludeRules context="definition_code" />
0262         <StringDetect attribute="Backend Property" context="probe_declaration" String=".probe" />
0263         <DetectChar attribute="Region Marker" context="#pop#pop" char="}" endRegion="backend_block" />
0264       </context>
0265       <context name="director_declaration" attribute="Normal Text" lineEndContext="#stay">
0266         <DetectSpaces />
0267         <keyword      attribute="Director Type" String="vclDirectorTypes" />
0268         <StringDetect attribute="Director Type" String="round-robin" />
0269         <DetectChar attribute="Region Marker" context="director_definition" char="{" beginRegion="director_block" />
0270       </context>
0271       <context name="director_definition" attribute="Normal Text" lineEndContext="#stay">
0272         <IncludeRules context="definition_code" />
0273         <RegExpr attribute="Director Property" context="#stay" String="\.(retries|ttl|suffix)" />
0274         <StringDetect attribute="Director Property" context="backend_declaration" String=".list" />
0275         <DetectChar attribute="Region Marker" context="director_backend" char="{" beginRegion="director_backend_block" />
0276         <DetectChar attribute="Region Marker" context="#pop#pop" char="}" endRegion="backend_block" />
0277       </context>
0278       <context name="director_backend" attribute="Normal Text" lineEndContext="#stay">
0279         <IncludeRules context="definition_code" />
0280         <RegExpr attribute="Director Property" context="#stay" String="\.(weight|suffix)" />
0281         <StringDetect attribute="Director Property" context="backend_declaration" String=".backend" />
0282         <DetectChar attribute="Region Marker" context="#pop" char="}" endRegion="director_backend_block" />
0283       </context>
0284       <context name="acl_declaration" attribute="Normal Text" lineEndContext="#stay">
0285         <DetectChar attribute="Region Marker" context="acl_definition" char="{" beginRegion="acl_block" />
0286       </context>
0287       <context name="acl_definition" attribute="Normal Text" lineEndContext="#stay">
0288         <IncludeRules context="minimal_code" />
0289         <AnyChar attribute="Logical Operator" context="#stay" String="!/" />
0290         <DetectChar attribute="Region Marker" context="#pop#pop" char="}" endRegion="acl_block" />
0291       </context>
0292       <context name="import_declaration" attribute="Normal Text" lineEndContext="#stay">
0293         <keyword attribute="Well-known VMod" context="import_identified" String="knownVMods" />
0294         <DetectIdentifier attribute="VMod Identifier" context="import_identified" />
0295       </context>
0296       <context name="import_identified" attribute="Normal Text" lineEndContext="#stay">
0297         <DetectChar attribute="Normal Text" context="#pop#pop" char=";" />
0298         <StringDetect attribute="Keyword" context="import_from" String="from" />
0299       </context>
0300       <context name="import_from" attribute="Normal Text" lineEndContext="#stay">
0301         <DetectChar char="&quot;" context="import_from_path" attribute="String" />
0302       </context>
0303       <context name="import_from_path" attribute="String" lineEndContext="#stay">
0304         <DetectChar char="&quot;" context="import_from_path_complete" attribute="String" />
0305       </context>
0306       <context name="import_from_path_complete" attribute="Normal Text" lineEndContext="#stay">
0307         <DetectChar attribute="Normal Text" context="#pop#pop#pop#pop#pop" char=";" />
0308       </context>
0309       <context name="include_declaration" attribute="Normal Text" lineEndContext="#stay">
0310         <DetectChar char="&quot;" context="include_path" attribute="String" />
0311       </context>
0312       <context name="include_path" attribute="String" lineEndContext="#stay">
0313         <DetectChar char="&quot;" context="include_path_complete" attribute="String" />
0314       </context>
0315       <context name="include_path_complete" attribute="Normal Text" lineEndContext="#stay">
0316         <DetectChar attribute="Normal Text" context="#pop#pop#pop" char=";" />
0317       </context>
0318       <context name="version_declaration" attribute="Normal Text" lineEndContext="#stay">
0319         <Float attribute="Float" context="#stay" />
0320         <DetectChar attribute="Normal Text" context="#pop" char=";" />
0321       </context>
0322     </contexts>
0323     <itemDatas>
0324       <itemData name="Normal Text"               defStyleNum="dsNormal" />
0325       <itemData name="Comment"                   defStyleNum="dsComment" />
0326       <itemData name="Keyword"                   defStyleNum="dsKeyword" />
0327       <itemData name="Condition Keyword"         defStyleNum="dsKeyword" />
0328       <itemData name="Action Keyword"            defStyleNum="dsKeyword" />
0329       <itemData name="Variable"                  defStyleNum="dsVariable" />
0330       <itemData name="Director Type"             defStyleNum="dsDataType" />
0331       <itemData name="Standard VCL Function"     defStyleNum="dsFunction" />
0332       <itemData name="Standard VCL Sub"          defStyleNum="dsFunction" bold="1" />
0333       <itemData name="Operator"                  defStyleNum="dsOthers" /> <!-- #008000 -->
0334       <itemData name="Comparison Operator"       defStyleNum="dsOthers" /> <!-- #008000 -->
0335       <itemData name="Arithmetic Operator"       defStyleNum="dsOthers" /> <!-- #008000 -->
0336       <itemData name="Logical Operator"          defStyleNum="dsOthers" /> <!-- #008000 -->
0337       <itemData name="String"                    defStyleNum="dsString" />
0338       <itemData name="Region Marker"             defStyleNum="dsNormal" />
0339       <itemData name="Probe Property"            defStyleNum="dsAttribute" bold="1" italic="0" /> <!-- #0000FF -->
0340       <itemData name="Backend Property"          defStyleNum="dsAttribute" bold="1" italic="0" /> <!-- #0000FF -->
0341       <itemData name="Director Property"         defStyleNum="dsAttribute" bold="1" italic="0" /> <!-- #0000FF -->
0342       <itemData name="Storage"                   defStyleNum="dsAttribute" bold="0" italic="0" /> <!-- #0000FF -->
0343       <itemData name="TCP Property"              defStyleNum="dsAttribute" bold="0" italic="1" /> <!-- #0000FF -->
0344       <itemData name="HTTP Property"             defStyleNum="dsAttribute" bold="0" italic="0" /> <!-- #0000FF -->
0345       <itemData name="HTTP Header"               defStyleNum="dsExtension" bold="0" italic="0" /> <!-- #0D62FF -->
0346       <itemData name="HTTP X- Header"            defStyleNum="dsExtension" bold="0" italic="1" /> <!-- #0D62FF -->
0347       <itemData name="Decimal"                   defStyleNum="dsDecVal" />
0348       <itemData name="Duration"                  defStyleNum="dsDecVal" />
0349       <itemData name="Data Size"                 defStyleNum="dsDecVal" />
0350       <itemData name="Float"                     defStyleNum="dsFloat" spellChecking="false"/>
0351       <itemData name="VMod Identifier"           defStyleNum="dsDataType" bold="0" /> <!-- #0000FF -->
0352       <itemData name="Well-known VMod"           defStyleNum="dsDataType" bold="1" /> <!-- #0000FF -->
0353       <itemData name="Known VMod Function"       defStyleNum="dsDataType" bold="0" /> <!-- #0000FF -->
0354     </itemDatas>
0355   </highlighting>
0356   <general>
0357     <comments>
0358       <comment name="singleLine" start="#" />
0359       <comment name="multiLine" start="/*" end="*/" region="BlockComment" />
0360     </comments>
0361     <keywords casesensitive="1" />
0362   </general>
0363 </language>
0364 <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->