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="&" char1="&" />
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="<" char1="=" />
0153 <Detect2Chars attribute="Comparison Operator" context="#stay" char=">" 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=">" char1=">" />
0167 <Detect2Chars attribute="Arithmetic Operator" context="#stay" char="<" char1="<" />
0168
0169 <AnyChar attribute="Comparison Operator" context="#stay" String="<>" />
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=""" context="string" attribute="String" />
0183 <Detect2Chars attribute="String" char="{" char1=""" 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=""" 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=""" />
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=""" context="import_from_path" attribute="String" />
0302 </context>
0303 <context name="import_from_path" attribute="String" lineEndContext="#stay">
0304 <DetectChar char=""" 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=""" context="include_path" attribute="String" />
0311 </context>
0312 <context name="include_path" attribute="String" lineEndContext="#stay">
0313 <DetectChar char=""" 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; -->