Warning, /frameworks/syntax-highlighting/data/syntax/rhtml.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language 0003 [ 0004 <!ENTITY name "[A-Za-z_:][\w.:_-]*"> 0005 <!ENTITY entref "&(?:#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);"> 0006 ]> 0007 0008 <!-- 0009 RHTML syntax highlighting definition for Kate. It combines the ruby and 0010 html syntax grammars. Some ideas, and the list of Rails method names were 0011 taken from an rhtml kate grammar for Quanta based on earlier versions of 0012 the syntax highlighters. 0013 0014 Copyright (C) 2004 by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi) 0015 Copyright (C) 2004 by Stefan Lang (langstefan@gmx.at) 0016 Copyright (C) 2006 by Wilbert Berendsen (wilbert@kde.nl 0017 Copyright (C) 2005 by Chris Martin (linux@chriscodes.com 0018 Copyright (C) 2006 by Richard Dale (rdale@foton.es) 0019 0020 This library is free software; you can redistribute it and/or 0021 modify it under the terms of the GNU Library General Public 0022 License as published by the Free Software Foundation; either 0023 version 2 of the License, or (at your option) any later version. 0024 0025 This library is distributed in the hope that it will be useful, 0026 but WITHOUT ANY WARRANTY; without even the implied warranty of 0027 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0028 Library General Public License for more details. 0029 0030 You should have received a copy of the GNU Library General Public 0031 License along with this library; if not, write to the 0032 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 0033 Boston, MA 02110-1301, USA. 0034 --> 0035 0036 <!-- 0037 TODO: * Regular expressions spanning over multiple lines 0038 work only if newlines are escaped. 0039 * "Nested" HERE documents aren't recognized. 0040 * Division is detected correctly only, if whitespace 0041 is around the "/" operator. 0042 E.g.: detected correctly: 1 / 2 0043 "/" interpreted as regex start: 1/2 0044 --> 0045 0046 <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". --> 0047 <language name="Ruby/Rails/RHTML" version="14" kateversion="5.63" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+"> 0048 0049 <highlighting> 0050 0051 <list name="keywords"> 0052 <item>BEGIN</item> 0053 <item>END</item> 0054 <item>and</item> 0055 <item>begin</item> 0056 <item>break</item> 0057 <item>case</item> 0058 <item>defined?</item> 0059 <item>do</item> 0060 <item>else</item> 0061 <item>elsif</item> 0062 <item>end</item> 0063 <item>ensure</item> 0064 <item>for</item> 0065 <item>if</item> 0066 <item>in</item> 0067 <item>include</item> 0068 <item>next</item> 0069 <item>not</item> 0070 <item>or</item> 0071 <item>redo</item> 0072 <item>rescue</item> 0073 <item>retry</item> 0074 <item>return</item> 0075 <item>then</item> 0076 <item>unless</item> 0077 <item>until</item> 0078 <item>when</item> 0079 <item>while</item> 0080 <item>yield</item> 0081 </list> 0082 0083 <list name="access-control"> 0084 <item>private_class_method</item> 0085 <item>private</item> 0086 <item>protected</item> 0087 <item>public_class_method</item> 0088 <item>public</item> 0089 </list> 0090 0091 <list name="attribute-definitions"> 0092 <item>attr_reader</item> 0093 <item>attr_writer</item> 0094 <item>attr_accessor</item> 0095 </list> 0096 0097 <list name="definitions"> 0098 <item>alias</item> 0099 <item>module</item> 0100 <item>class</item> 0101 <item>def</item> 0102 <item>undef</item> 0103 </list> 0104 0105 <list name="pseudo-variables"> 0106 <item>self</item> 0107 <item>super</item> 0108 <item>nil</item> 0109 <item>false</item> 0110 <item>true</item> 0111 <item>caller</item> 0112 <item>__FILE__</item> 0113 <item>__LINE__</item> 0114 </list> 0115 0116 <list name="default-globals"> 0117 <item>$stdout</item> 0118 <item>$defout</item> 0119 <item>$stderr</item> 0120 <item>$deferr</item> 0121 <item>$stdin</item> 0122 </list> 0123 0124 <!-- Kernel module methods. 0125 NOTE: Methods ending in ? or ! 0126 are included below as regexes. 0127 --> 0128 <list name="kernel-methods"> 0129 <!-- backquote ` --> 0130 <item>abort</item> 0131 <item>at_exit</item> 0132 <item>autoload</item> 0133 <item>autoload?</item> 0134 <item>binding</item> 0135 <item>block_given?</item> 0136 <item>callcc</item> 0137 <item>caller</item> 0138 <item>catch</item> 0139 <item>chomp</item> 0140 <item>chomp!</item> 0141 <item>chop</item> 0142 <item>chop!</item> 0143 <item>eval</item> 0144 <item>exec</item> 0145 <item>exit</item> 0146 <item>exit!</item> 0147 <item>fail</item> 0148 <item>fork</item> 0149 <item>format</item> 0150 <item>getc</item> 0151 <item>gets</item> 0152 <item>global_variables</item> 0153 <item>gsub</item> 0154 <item>gsub!</item> 0155 <item>iterator?</item> 0156 <item>lambda</item> 0157 <item>load</item> 0158 <item>local_variables</item> 0159 <item>loop</item> 0160 <item>method_missing</item> 0161 <item>open</item> 0162 <item>p</item> 0163 <item>print</item> 0164 <item>printf</item> 0165 <item>proc</item> 0166 <item>putc</item> 0167 <item>puts</item> 0168 <item>raise</item> 0169 <item>rand</item> 0170 <item>readline</item> 0171 <item>readlines</item> 0172 <item>require</item> 0173 <item>scan</item> 0174 <item>select</item> 0175 <item>set_trace_func</item> 0176 <item>sleep</item> 0177 <item>split</item> 0178 <item>sprintf</item> 0179 <item>srand</item> 0180 <item>sub</item> 0181 <item>sub!</item> 0182 <item>syscall</item> 0183 <item>system</item> 0184 <item>test</item> 0185 <item>throw</item> 0186 <item>trace_var</item> 0187 <item>trap</item> 0188 <item>untrace_var</item> 0189 <item>warn</item> 0190 0191 <!-- ActionView methods from Rails docs --> 0192 <item>auto_complete_field</item> 0193 <item>auto_complete_result</item> 0194 <item>auto_discovery_link_tag</item> 0195 <item>auto_link</item> 0196 <item>benchmark</item> 0197 <item>button_to</item> 0198 <item>cache</item> 0199 <item>capture</item> 0200 <item>check_box</item> 0201 <item>check_box_tag</item> 0202 <item>collection_select</item> 0203 <item>concat</item> 0204 <item>content_for</item> 0205 <item>content_tag</item> 0206 <item>country_options_for_select</item> 0207 <item>country_select</item> 0208 <item>current_page?</item> 0209 <item>date_select</item> 0210 <item>datetime_select</item> 0211 <item>debug</item> 0212 <item>define_javascript_functions</item> 0213 <item>distance_of_time_in_words</item> 0214 <item>distance_of_time_in_words_to_now</item> 0215 <item>draggable_element</item> 0216 <item>drop_receiving_element</item> 0217 <item>end_form_tag</item> 0218 <item>error_message_on</item> 0219 <item>error_messages_for</item> 0220 <item>escape_javascript</item> 0221 <item>evaluate_remote_response</item> 0222 <item>excerpt</item> 0223 <item>file_field</item> 0224 <item>file_field_tag</item> 0225 <item>finish_upload_status</item> 0226 <item>form</item> 0227 <item>form_remote_tag</item> 0228 <item>form_tag</item> 0229 <item>form_tag_with_upload_progress</item> 0230 <item>h</item> 0231 <item>hidden_field</item> 0232 <item>hidden_field_tag</item> 0233 <item>highlight</item> 0234 <item>human_size</item> 0235 <item>image_path</item> 0236 <item>image_submit_tag</item> 0237 <item>image_tag</item> 0238 <item>input</item> 0239 <item>javascript_include_tag</item> 0240 <item>javascript_path</item> 0241 <item>javascript_tag</item> 0242 <item>link_image_to</item> 0243 <item>link_to</item> 0244 <item>link_to_function</item> 0245 <item>link_to_if</item> 0246 <item>link_to_image</item> 0247 <item>link_to_remote</item> 0248 <item>link_to_unless</item> 0249 <item>link_to_unless_current</item> 0250 <item>mail_to</item> 0251 <item>markdown</item> 0252 <item>number_to_currency</item> 0253 <item>number_to_human_size</item> 0254 <item>number_to_percentage</item> 0255 <item>number_to_phone</item> 0256 <item>number_with_delimiter</item> 0257 <item>number_with_precision</item> 0258 <item>observe_field</item> 0259 <item>observe_form</item> 0260 <item>option_groups_from_collection_for_select</item> 0261 <item>options_for_select</item> 0262 <item>options_from_collection_for_select</item> 0263 <item>pagination_links</item> 0264 <item>password_field</item> 0265 <item>password_field_tag</item> 0266 <item>periodically_call_remote</item> 0267 <item>pluralize</item> 0268 <item>radio_button</item> 0269 <item>radio_button_tag</item> 0270 <item>register_template_handler</item> 0271 <item>render</item> 0272 <item>render_file</item> 0273 <item>render_template</item> 0274 <item>sanitize</item> 0275 <item>select</item> 0276 <item>select_date</item> 0277 <item>select_datetime</item> 0278 <item>select_day</item> 0279 <item>select_hour</item> 0280 <item>select_minute</item> 0281 <item>select_month</item> 0282 <item>select_second</item> 0283 <item>select_tag</item> 0284 <item>select_time</item> 0285 <item>select_year</item> 0286 <item>simple_format</item> 0287 <item>sortable_element</item> 0288 <item>start_form_tag</item> 0289 <item>strip_links</item> 0290 <item>stylesheet_link_tag</item> 0291 <item>stylesheet_path</item> 0292 <item>submit_tag</item> 0293 <item>submit_to_remote</item> 0294 <item>tag</item> 0295 <item>text_area</item> 0296 <item>text_area_tag</item> 0297 <item>text_field</item> 0298 <item>text_field_tag</item> 0299 <item>text_field_with_auto_complete</item> 0300 <item>textilize</item> 0301 <item>textilize_without_paragraph</item> 0302 <item>time_ago_in_words</item> 0303 <item>time_zone_options_for_select</item> 0304 <item>time_zone_select</item> 0305 <item>truncate</item> 0306 <item>update_element_function</item> 0307 <item>upload_progress_status</item> 0308 <item>upload_progress_text</item> 0309 <item>upload_progress_update_bar_js</item> 0310 <item>upload_status_progress_bar_tag</item> 0311 <item>upload_status_tag</item> 0312 <item>upload_status_text_tag</item> 0313 <item>url_for</item> 0314 <item>visual_effect</item> 0315 <item>word_wrap</item> 0316 </list> 0317 0318 <contexts> 0319 0320 <!-- BEGIN HTML contexts --> 0321 <context name="Start" attribute="Normal Text" lineEndContext="#stay"> 0322 <IncludeRules context="FindHTML" /> 0323 </context> 0324 0325 <context name="FindHTML" attribute="Normal Text" lineEndContext="#stay"> 0326 <DetectSpaces/> 0327 <DetectIdentifier/> 0328 0329 <IncludeRules context="find-rubysource" /> 0330 <DetectChar attribute="Ruby Source" context="rubysourceline" char="%" /> 0331 0332 <StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" /> 0333 <StringDetect attribute="CDATA" context="CDATA" String="<![CDATA[" beginRegion="cdata" /> 0334 <RegExpr attribute="Doctype" context="Doctype" String="<!DOCTYPE\s+" beginRegion="doctype" /> 0335 <RegExpr attribute="Processing Instruction" context="PI" String="<\?[\w:-]*" beginRegion="pi" /> 0336 <WordDetect attribute="Element" context="CSS" String="<style" insensitive="true" beginRegion="style" /> 0337 <WordDetect attribute="Element" context="JS" String="<script" insensitive="true" beginRegion="script" /> 0338 <WordDetect attribute="Element" context="El Open" String="<pre" insensitive="true" beginRegion="pre" /> 0339 <WordDetect attribute="Element" context="El Open" String="<div" insensitive="true" beginRegion="div" /> 0340 <WordDetect attribute="Element" context="El Open" String="<table" insensitive="true" beginRegion="table" /> 0341 <RegExpr attribute="Element" context="El Open" String="<&name;" /> 0342 <WordDetect attribute="Element" context="El Close" String="</pre" insensitive="true" endRegion="pre" /> 0343 <WordDetect attribute="Element" context="El Close" String="</div" insensitive="true" endRegion="div" /> 0344 <WordDetect attribute="Element" context="El Close" String="</table" insensitive="true" endRegion="table" /> 0345 <RegExpr attribute="Element" context="El Close" String="</&name;" /> 0346 <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" /> 0347 <IncludeRules context="FindEntityRefs" /> 0348 </context> 0349 0350 <context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay"> 0351 <RegExpr attribute="EntityRef" context="#stay" String="&entref;" /> 0352 <AnyChar attribute="Error" context="#stay" String="&<" /> 0353 </context> 0354 0355 <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay"> 0356 <RegExpr attribute="EntityRef" context="#stay" String="&entref;" /> 0357 <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" /> 0358 <AnyChar attribute="Error" context="#stay" String="&%" /> 0359 </context> 0360 0361 <context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay"> 0362 <RegExpr attribute="Attribute" context="#stay" String="^&name;|\s+&name;" /> 0363 <DetectChar attribute="Attribute" context="Value" char="=" /> 0364 </context> 0365 0366 <context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay"> 0367 <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="<!(?:ELEMENT|ENTITY|ATTLIST|NOTATION)\b" /> 0368 </context> 0369 0370 0371 <context name="Comment" attribute="Comment" lineEndContext="#stay"> 0372 <DetectSpaces/> 0373 <StringDetect attribute="Comment" context="#pop" String="-->" endRegion="comment" /> 0374 <IncludeRules context="##Comments" /> 0375 <DetectIdentifier/> 0376 <RegExpr attribute="Error" context="#stay" String="-(-(?!->))+" /> 0377 </context> 0378 0379 <context name="CDATA" attribute="Normal Text" lineEndContext="#stay"> 0380 <DetectSpaces/> 0381 <DetectIdentifier/> 0382 <StringDetect attribute="CDATA" context="#pop" String="]]>" endRegion="cdata" /> 0383 <StringDetect attribute="EntityRef" context="#stay" String="]]&gt;" /> 0384 </context> 0385 0386 <context name="PI" attribute="Normal Text" lineEndContext="#stay"> 0387 <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1=">" endRegion="pi" /> 0388 </context> 0389 0390 <context name="Doctype" attribute="Normal Text" lineEndContext="#stay"> 0391 <DetectChar attribute="Doctype" context="#pop" char=">" endRegion="doctype" /> 0392 <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" /> 0393 </context> 0394 0395 <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay"> 0396 <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" /> 0397 <IncludeRules context="FindDTDRules" /> 0398 <StringDetect attribute="Comment" context="Comment" String="<!--" beginRegion="comment" /> 0399 <RegExpr attribute="Processing Instruction" context="PI" String="<\?[\w:-]*" beginRegion="pi" /> 0400 <IncludeRules context="FindPEntityRefs" /> 0401 </context> 0402 0403 <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay"> 0404 <DetectChar attribute="Doctype" context="#pop" char=">" /> 0405 <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char=""" /> 0406 <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="'" /> 0407 </context> 0408 0409 <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay"> 0410 <IncludeRules context="find-rubysource" /> 0411 0412 <DetectChar attribute="Value" context="#pop" char=""" /> 0413 <IncludeRules context="FindPEntityRefs" /> 0414 </context> 0415 0416 <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay"> 0417 <IncludeRules context="find-rubysource" /> 0418 0419 <DetectChar attribute="Value" context="#pop" char="'" /> 0420 <IncludeRules context="FindPEntityRefs" /> 0421 </context> 0422 0423 <context name="El Open" attribute="Normal Text" lineEndContext="#stay"> 0424 <IncludeRules context="find-rubysource" /> 0425 0426 <Detect2Chars attribute="Element" context="#pop" char="/" char1=">" /> 0427 <DetectChar attribute="Element" context="#pop" char=">" /> 0428 <IncludeRules context="FindAttributes" /> 0429 <RegExpr attribute="Error" context="#stay" String="\S" /> 0430 </context> 0431 0432 <context name="El Close" attribute="Normal Text" lineEndContext="#stay"> 0433 <IncludeRules context="find-rubysource" /> 0434 0435 <DetectChar attribute="Element" context="#pop" char=">" /> 0436 <RegExpr attribute="Error" context="#stay" String="\S" /> 0437 </context> 0438 0439 <context name="El Close 2" attribute="Normal Text" lineEndContext="#stay"> 0440 <IncludeRules context="find-rubysource" /> 0441 0442 <DetectChar attribute="Element" context="#pop#pop#pop" char=">" /> 0443 <RegExpr attribute="Error" context="#stay" String="\S" /> 0444 </context> 0445 0446 <context name="El Close 3" attribute="Normal Text" lineEndContext="#stay"> 0447 <IncludeRules context="find-rubysource" /> 0448 0449 <DetectChar attribute="Element" context="#pop#pop#pop#pop" char=">" /> 0450 <RegExpr attribute="Error" context="#stay" String="\S" /> 0451 </context> 0452 0453 <context name="CSS" attribute="Normal Text" lineEndContext="#stay"> 0454 <IncludeRules context="find-rubysource" /> 0455 0456 <Detect2Chars attribute="Element" context="#pop" char="/" char1=">" endRegion="style" /> 0457 <DetectChar attribute="Element" context="CSS content" char=">" /> 0458 <IncludeRules context="FindAttributes" /> 0459 <RegExpr attribute="Error" context="#stay" String="\S" /> 0460 </context> 0461 0462 <context name="CSS content" attribute="Normal Text" lineEndContext="#stay"> 0463 <IncludeRules context="find-rubysource" /> 0464 0465 <WordDetect attribute="Element" context="El Close 2" String="</style" insensitive="true" endRegion="style" /> 0466 <IncludeRules context="##CSS" includeAttrib="true"/> 0467 </context> 0468 0469 <context name="JS" attribute="Normal Text" lineEndContext="#stay"> 0470 <IncludeRules context="find-rubysource" /> 0471 0472 <Detect2Chars attribute="Element" context="#pop" char="/" char1=">" endRegion="script" /> 0473 <DetectChar attribute="Element" context="JS content" char=">" /> 0474 <IncludeRules context="FindAttributes" /> 0475 <RegExpr attribute="Error" context="#stay" String="\S" /> 0476 </context> 0477 0478 <context name="JS content" attribute="Normal Text" lineEndContext="#stay"> 0479 <IncludeRules context="find-rubysource" /> 0480 0481 <WordDetect attribute="Element" context="El Close 2" String="</script" insensitive="true" endRegion="script" /> 0482 <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*</script\b)" insensitive="true" /> 0483 <IncludeRules context="Normal##JavaScript" includeAttrib="true"/> 0484 </context> 0485 0486 <context name="JS comment close" attribute="Comment" lineEndContext="#pop"> 0487 <RegExpr attribute="Element" context="El Close 3" String="</script\b" insensitive="true" endRegion="script" /> 0488 <IncludeRules context="##Comments" /> 0489 </context> 0490 0491 <context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="Value NQ"> 0492 <IncludeRules context="find-rubysource" /> 0493 0494 <DetectChar attribute="Value" context="Value DQ" char=""" /> 0495 <DetectChar attribute="Value" context="Value SQ" char="'" /> 0496 <DetectSpaces /> 0497 </context> 0498 0499 <context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthroughContext="#pop#pop"> 0500 <IncludeRules context="find-rubysource" /> 0501 0502 <IncludeRules context="FindEntityRefs" /> 0503 <RegExpr attribute="Value" context="#stay" String="/(?!>)|[^/><"'\s]" /> 0504 </context> 0505 0506 <context name="Value DQ" attribute="Value" lineEndContext="#stay"> 0507 <IncludeRules context="find-rubysource" /> 0508 0509 <DetectChar attribute="Value" context="#pop#pop" char=""" /> 0510 <IncludeRules context="FindEntityRefs" /> 0511 </context> 0512 0513 <context name="Value SQ" attribute="Value" lineEndContext="#stay"> 0514 <IncludeRules context="find-rubysource" /> 0515 0516 <DetectChar attribute="Value" context="#pop#pop" char="'" /> 0517 <IncludeRules context="FindEntityRefs" /> 0518 </context> 0519 <!-- END HTML contexts --> 0520 0521 <!-- BEGIN Ruby contexts --> 0522 0523 <!-- A single line of ruby source after a '%' ERB tag --> 0524 <context name="rubysourceline" attribute="RUBY RAILS ERB Text" lineEndContext="#pop"> 0525 <IncludeRules context="rubysource" /> 0526 </context> 0527 0528 <context name="find-rubysource" attribute="Normal Text" lineEndContext="#stay"> 0529 <Detect2Chars attribute="Ruby Source" context="rubysource-markup" char="<" char1="%" /> 0530 </context> 0531 <context name="rubysource-markup" attribute="Ruby Source" lineEndContext="#pop!rubysource-block-content" fallthroughContext="#pop!rubysource-block-content"> 0532 <AnyChar attribute="Ruby Source" context="#pop!rubysource-block-content" String="=-" /> <!-- <%= and <%- --> 0533 </context> 0534 <context name="rubysource-block-content" attribute="RUBY RAILS ERB Text" lineEndContext="#stay"> 0535 <StringDetect attribute="Ruby Source" context="#pop" String="-%>" /> 0536 <Detect2Chars attribute="Ruby Source" context="#pop" char="%" char1=">" /> 0537 <IncludeRules context="rubysource" /> 0538 </context> 0539 0540 <context name="rubysource" attribute="RUBY RAILS ERB Text" lineEndContext="#stay"> 0541 <!-- ruby ignores newline after \ --> 0542 <LineContinue attribute="Ruby Normal Text" context="Line Continue"/> 0543 0544 <!-- __END__ token on own line. --> 0545 <RegExpr attribute="Keyword" String="^__END__$" context="DATA" column="0"/> 0546 0547 <!-- "shebang" line --> 0548 <StringDetect attribute="Keyword" String="^#!/" context="ShebangLine" column="0"/> 0549 0550 <!-- "def" - "end" blocks --> 0551 <!-- check for statement modifiers with regexes --> 0552 <RegExpr attribute="Keyword" String="(?:\=|\(|\[|\{)\s*(?:if|unless|while|until)\b" context="#stay" beginRegion="def block"/> 0553 <RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block" firstNonSpace="true"/> 0554 <RegExpr attribute="Keyword" String="\;\s*(?:while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/> 0555 <WordDetect attribute="Keyword" String="if" context="#stay" beginRegion="def block" firstNonSpace="true"/> 0556 <WordDetect attribute="Keyword" String="unless" context="#stay" beginRegion="def block" firstNonSpace="true"/> 0557 <RegExpr attribute="Keyword" String="\;\s*(?:if|unless)\b" context="#stay" beginRegion="def block"/> 0558 <WordDetect attribute="Keyword" String="class" context="#stay" beginRegion="def block"/> 0559 <WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/> 0560 <WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/> 0561 <RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/> 0562 <WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/> 0563 <WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/> 0564 <WordDetect attribute="Keyword" String="def" context="#stay" beginRegion="def block"/> 0565 <WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/> 0566 <!-- elsif/else close the current block and start a new one --> 0567 <RegExpr attribute="Keyword" String="(?:\b|^\s*)(?:else|elsif|rescue|ensure)(?:\s+|$)" context="#stay" endRegion="def block" beginRegion="def block"/> 0568 0569 <StringDetect attribute="Operator" String="..." context="#stay"/> 0570 <Detect2Chars attribute="Operator" char="." char1="." context="#stay"/> 0571 0572 <!-- marks a message (being sent, not defined) --> 0573 <RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(?:\?|\!|\b)" context="#stay"/> 0574 0575 <!-- Check for "ASCII code operator". e.g.: ?a --> 0576 <RegExpr attribute="Dec" String="\s\?(?:\\M\-)?(?:\\C\-)?\\?\S" context="#stay"/> 0577 0578 <keyword attribute="Keyword" String="keywords" context="#stay"/> 0579 <keyword attribute="Attribute Definition" String="attribute-definitions" context="#stay"/> 0580 <keyword attribute="Access Control" String="access-control" context="#stay"/> 0581 <keyword attribute="Definition" String="definitions" context="#stay" /> 0582 <keyword attribute="Pseudo variable" String="pseudo-variables" context="#stay"/> 0583 <keyword attribute="Default globals" String="default-globals" context="#stay"/> 0584 <keyword attribute="Kernel methods" String="kernel-methods" context="#stay"/> 0585 0586 <!-- (global) vars starting with $ 0587 Match them before $_. 0588 --> 0589 <RegExpr attribute="Global Variable" String="\$(?:\w+|\-[a-zA-Z_]\b)" context="#stay"/> 0590 <!-- special-character globals --> 0591 <RegExpr attribute="Default globals" String="\$[\d_*`\!:?'/\\\-\&]" context="#stay"/> 0592 <RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="#stay"/> 0593 <!-- Generally a module or class name like "File", "MyModule_1", .. --> 0594 <RegExpr attribute="Constant" String="\b[A-Z]+_*(?:[0-9]|[a-z])[_a-zA-Z0-9]*\b" context="#stay"/> 0595 0596 <RegExpr attribute="Hex" String="(?:\-|\b)0[xX][_0-9a-fA-F]+" context="#stay"/> 0597 <RegExpr attribute="Bin" String="(?:\-|\b)0[bB][_01]+" context="#stay"/> 0598 <RegExpr attribute="Octal" String="(?:\-|\b)0[1-7][_0-7]*" context="#stay"/> 0599 <RegExpr attribute="Float" String="(?:\-|\b)[0-9][0-9_]*\.[0-9][0-9_]*(?:[eE]\-?[1-9][0-9]*(?:\.[0-9]*)?)?" context="#stay"/> 0600 <RegExpr attribute="Dec" String="(?:\-|\b)[1-9][0-9_]*\b" context="#stay"/> 0601 <Int attribute="Dec" context="#stay"/> 0602 <HlCChar attribute="Char" context="#stay"/> 0603 0604 <!-- Check for =begin before assignment operator. --> 0605 <StringDetect attribute="Blockcomment" String="=begin" context="Embedded documentation" beginRegion="comment block" column="0"/> 0606 0607 <!-- recognize the beginning of a HEREDOC 0608 This uses new features in Kate 2.3 and later 0609 0610 There is no other chance of keeping heredoc apart from the 0611 push operator '<<' than requiring to put space between the operator 0612 and the string. 0613 --> 0614 <RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*<<-(?=\w+|["'])" beginRegion="HereDocument" /> 0615 <RegExpr attribute="Operator" context="find_heredoc" String="\s*<<(?=\w+|["'])" beginRegion="HereDocument" /> 0616 0617 <DetectChar attribute="Operator" char="." context="#stay"/> 0618 <Detect2Chars attribute="Operator" char="&" char1="&" context="#stay"/> 0619 <Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/> 0620 <!-- \s! is regexp hack --> 0621 <RegExpr attribute="Operator" String="\s[\?\:\%/]\s|[|&<>\^\+*~\-=]+|\s!|/=\s" context="#stay"/> 0622 <Detect2Chars attribute="Operator" char="%" char1="=" context="#stay"/> 0623 <Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/> 0624 0625 <RegExpr attribute="Symbol" String=":[a-zA-Z_][a-zA-Z0-9_]*" context="#stay"/> 0626 0627 <DetectChar attribute="String" char=""" context="Quoted String"/> 0628 <DetectChar attribute="Raw String" char="'" context="Apostrophed String"/> 0629 <DetectChar attribute="Command" char="`" context="Command String"/> 0630 0631 <Detect2Chars attribute="Normal Text" char="?" char1="#" context="#stay"/> 0632 0633 <RegExpr attribute="Comment" String="^#\s*BEGIN.*$" context="#stay" beginRegion="marker" column="0"/> 0634 <RegExpr attribute="Comment" String="^#\s*END.*$" context="#stay" endRegion="marker" column="0"/> 0635 <DetectChar attribute="Comment" char="#" context="Comment Line" firstNonSpace="true"/> 0636 <RegExpr attribute="Comment" String="\s#" context="General Comment"/> 0637 0638 <RegExpr attribute="Delimiter" String="[\[\]]+" context="#stay"/> 0639 <DetectChar attribute="Delimiter" char="{" context="#stay" beginRegion="def block"/> 0640 <DetectChar attribute="Delimiter" char="}" context="#stay" endRegion="def block"/> 0641 0642 <RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="#stay"/> 0643 <RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="#stay"/> 0644 0645 <!-- handle the different regular expression formats --> 0646 <DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/> 0647 0648 <!-- recognize the beginning of a general delimited input format --> 0649 <!-- this moves to the next context to separate out the exact nature of the GDL input --> 0650 <RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[Qqxw]?[^\s>])" beginRegion="GdlInput" /> 0651 </context> 0652 0653 <context name="ShebangLine" attribute="Keyword" lineEndContext="#pop" /> 0654 0655 <context name="Line Continue" attribute="Ruby Normal Text" lineEndContext="#pop"> 0656 <RegExpr attribute="Keyword" String="(?:while|until)\b(?!.*\bdo\b)" context="#stay" firstNonSpace="true"/> 0657 <WordDetect attribute="Keyword" String="if" context="#stay" firstNonSpace="true"/> 0658 <WordDetect attribute="Keyword" String="unless" context="#stay" firstNonSpace="true"/> 0659 <IncludeRules context="rubysource"/> 0660 </context> 0661 0662 <context name="Quoted String" attribute="String" lineEndContext="#stay"> 0663 <Detect2Chars attribute="String" char="\" char1="\" context="#stay"/> 0664 <Detect2Chars attribute="String" char="\" char1=""" context="#stay"/> 0665 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 0666 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 0667 <!--HlCChar attribute="Char" context="#pop"/--> 0668 <DetectChar char=""" attribute="String" context="#pop"/> 0669 </context> 0670 0671 <context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay"> 0672 <!-- <HlCChar attribute="Char" context="#pop"/> --> 0673 <Detect2Chars attribute="String" char="\" char1="\" context="#stay"/> 0674 <Detect2Chars attribute="String" char="\" char1="'" context="#stay"/> 0675 <DetectChar char="'" attribute="Raw String" context="#pop"/> 0676 </context> 0677 0678 <context name="Command String" attribute="Command" lineEndContext="#stay"> 0679 <Detect2Chars attribute="String" char="\" char1="\" context="#stay"/> 0680 <Detect2Chars attribute="String" char="\" char1="`" context="#stay"/> 0681 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 0682 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 0683 <HlCChar attribute="Char" context="#pop"/> 0684 <DetectChar char="`" attribute="Command" context="#pop"/> 0685 </context> 0686 0687 <context name="Embedded documentation" attribute="Ruby Comment" lineEndContext="#stay"> 0688 <StringDetect attribute="Ruby Comment" String="=end" context="#pop" endRegion="comment block" column="0"/> 0689 </context> 0690 0691 <context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay"> 0692 <Detect2Chars attribute="Regular Expression" char="\" char1="/" context="#stay"/> 0693 <RegExpr attribute="Regular Expression" String="[^\\]$" context="#pop"/> 0694 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 0695 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 0696 <RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="#pop"/> 0697 </context> 0698 0699 <!-- Substitutions can be nested --> 0700 <context name="Subst" attribute="Ruby Normal Text" lineEndContext="#stay"> 0701 <DetectChar attribute="Substitution" char="}" context="#pop"/> 0702 <!-- Highlight substitution as code. --> 0703 <IncludeRules context="rubysource"/> 0704 </context> 0705 0706 <context name="Short Subst" attribute="Substitution" lineEndContext="#pop"> 0707 <!-- Check for e.g.: "#@var#@@xy" --> 0708 <RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/> 0709 <RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/> 0710 </context> 0711 0712 <!-- This handles access of nested module classes and class methods --> 0713 <context name="Member Access" attribute="Member" lineEndContext="#pop"> 0714 <!-- marks a message (being sent, not defined) --> 0715 <RegExpr attribute="Message" String="\.?[_a-z]\w*[\?\!]?(?=[^\w\d\.\:])" context="#pop"/> 0716 <RegExpr attribute="Message" String="\.?[_a-z]\w*[\?\!]?" context="#stay"/> 0717 <RegExpr attribute="Constant" String="[A-Z]+_*[\da-z]\w*(?=[^\w\d\.\:])" context="#pop"/> 0718 <RegExpr attribute="Constant" String="[A-Z]+_*[0-9a-z]\w*" context="#stay"/> 0719 <RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="#pop"/> 0720 <RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/> 0721 <Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/> 0722 <DetectChar attribute="Member" char="." context="#stay"/> 0723 0724 <AnyChar attribute="Operator" String="=+-*/%|&[]{}~" context="#pop"/> 0725 <DetectChar attribute="Ruby Comment" char="#" context="#pop"/> 0726 <AnyChar attribute="Ruby Normal Text" String="()\" context="#pop"/> 0727 <RegExpr attribute="Member" String="\W" context="#pop"/> 0728 </context> 0729 0730 <context name="Comment Line" attribute="Ruby Comment" lineEndContext="#pop"> 0731 <DetectSpaces /> 0732 <StringDetect context="#pop" String="-%>" lookAhead="true" /> 0733 <Detect2Chars context="#pop" char="%" char1=">" lookAhead="true" /> 0734 <RegExpr attribute="Ruby Comment" String="\w\:\:\s" context="RDoc Label"/> 0735 <IncludeRules context="##Comments"/> 0736 </context> 0737 0738 <context name="General Comment" attribute="Ruby Comment" lineEndContext="#pop"> 0739 <DetectSpaces/> 0740 <IncludeRules context="##Comments"/> 0741 </context> 0742 0743 <context name="RDoc Label" attribute="RDoc Value" lineEndContext="#pop"/> 0744 0745 <!-- HEREDOC support 0746 The contexts below support both normal and indented heredocs 0747 --> 0748 <!-- here we markup the heredoc markers --> 0749 <context name="find_heredoc" attribute="Ruby Normal Text" lineEndContext="#pop" > 0750 <RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" /> 0751 <RegExpr attribute="Keyword" context="normal_heredoc" String=""?(\w+)"?" /> 0752 </context> 0753 <context name="find_indented_heredoc" attribute="Ruby Normal Text" lineEndContext="#pop" > 0754 <RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" /> 0755 <RegExpr attribute="Keyword" context="indented_heredoc" String=""?(\w+)"?" /> 0756 </context> 0757 <!-- these are the real heredoc contexts --> 0758 <context name="indented_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true"> 0759 <!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^\s*%1$" dynamic="true" endRegion="HereDocument"/>--> 0760 <RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/> 0761 <IncludeRules context="heredoc_rules" /> 0762 </context> 0763 <context name="apostrophed_indented_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true"> 0764 <!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^\s*%1$" dynamic="true" endRegion="HereDocument"/>--> 0765 <RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/> 0766 </context> 0767 0768 <context name="normal_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true"> 0769 <!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>--> 0770 <RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/> 0771 <IncludeRules context="heredoc_rules" /> 0772 </context> 0773 <context name="apostrophed_normal_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true"> 0774 <!-- <RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>--> 0775 <RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument" column="0"/> 0776 </context> 0777 0778 <!-- rules for heredoc types --> 0779 <context name="heredoc_rules" attribute="Ruby Normal Text" lineEndContext="#stay"> 0780 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 0781 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 0782 </context> 0783 0784 <!-- General delimited input support 0785 The contexts below handle the various gdl formats 0786 --> 0787 <context name="find_gdl_input" attribute="Ruby Normal Text" lineEndContext="#pop"> 0788 0789 <!-- handle token arrays --> 0790 <Detect2Chars attribute="GDL input" context="gdl_token_array_1" char="w" char1="(" /> 0791 <Detect2Chars attribute="GDL input" context="gdl_token_array_2" char="w" char1="{" /> 0792 <Detect2Chars attribute="GDL input" context="gdl_token_array_3" char="w" char1="[" /> 0793 <Detect2Chars attribute="GDL input" context="gdl_token_array_4" char="w" char1="<" /> 0794 <!-- then we handle the 'any char' format --> 0795 <RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" /> 0796 0797 <!-- handle apostrophed strings --> 0798 <Detect2Chars attribute="GDL input" context="gdl_apostrophed_1" char="q" char1="(" /> 0799 <Detect2Chars attribute="GDL input" context="gdl_apostrophed_2" char="q" char1="{" /> 0800 <Detect2Chars attribute="GDL input" context="gdl_apostrophed_3" char="q" char1="[" /> 0801 <Detect2Chars attribute="GDL input" context="gdl_apostrophed_4" char="q" char1="<" /> 0802 <!-- then we handle the 'any char' format --> 0803 <RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" /> 0804 0805 <!-- handle shell commands --> 0806 <Detect2Chars attribute="GDL input" context="gdl_shell_command_1" char="x" char1="(" /> 0807 <Detect2Chars attribute="GDL input" context="gdl_shell_command_2" char="x" char1="{" /> 0808 <Detect2Chars attribute="GDL input" context="gdl_shell_command_3" char="x" char1="[" /> 0809 <Detect2Chars attribute="GDL input" context="gdl_shell_command_4" char="x" char1="<" /> 0810 <!-- then we handle the 'any char' format --> 0811 <RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" /> 0812 0813 <!-- handle regular expressions --> 0814 <Detect2Chars attribute="GDL input" context="gdl_regexpr_1" char="r" char1="(" /> 0815 <Detect2Chars attribute="GDL input" context="gdl_regexpr_2" char="r" char1="{" /> 0816 <Detect2Chars attribute="GDL input" context="gdl_regexpr_3" char="r" char1="[" /> 0817 <Detect2Chars attribute="GDL input" context="gdl_regexpr_4" char="r" char1="<" /> 0818 <!-- then we handle the 'any char' format --> 0819 <RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" /> 0820 0821 <!-- handle double-quoted strings --> 0822 <!-- 0823 be careful to make this the last GDL ruleset, because the rule for 0824 the short form %?foo? will otherwise catch any of the other formats 0825 --> 0826 <Detect2Chars attribute="GDL input" context="gdl_dq_string_1" char="Q" char1="(" /> 0827 <Detect2Chars attribute="GDL input" context="gdl_dq_string_2" char="Q" char1="{" /> 0828 <Detect2Chars attribute="GDL input" context="gdl_dq_string_3" char="Q" char1="[" /> 0829 <Detect2Chars attribute="GDL input" context="gdl_dq_string_4" char="Q" char1="<" /> 0830 <DetectChar attribute="GDL input" context="gdl_dq_string_1" char="(" /> 0831 <DetectChar attribute="GDL input" context="gdl_dq_string_2" char="{" /> 0832 <DetectChar attribute="GDL input" context="gdl_dq_string_3" char="[" /> 0833 <DetectChar attribute="GDL input" context="gdl_dq_string_4" char="<" /> 0834 <!-- then we handle the 'any char' format --> 0835 <RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" /> 0836 0837 </context> 0838 <!-- double-quoted string specific contexts follow --> 0839 <context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" > 0840 <IncludeRules context="dq_string_rules" /> 0841 <Detect2Chars attribute="String" char="\" char1=")" context="#stay"/> 0842 <DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" /> 0843 <DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" /> 0844 </context> 0845 <context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" > 0846 <IncludeRules context="dq_string_rules" /> 0847 <DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" /> 0848 <DetectChar attribute="String" context="#pop" char=")" /> 0849 </context> 0850 <!-- note that here substitution should win over nesting --> 0851 <context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" > 0852 <IncludeRules context="dq_string_rules" /> 0853 <Detect2Chars attribute="String" char="\" char1="}" context="#stay"/> 0854 <DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" /> 0855 <DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" /> 0856 </context> 0857 <context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" > 0858 <DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" /> 0859 <DetectChar attribute="String" context="#pop" char="}" /> 0860 <IncludeRules context="dq_string_rules" /> 0861 </context> 0862 0863 <context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" > 0864 <IncludeRules context="dq_string_rules" /> 0865 <Detect2Chars attribute="String" char="\" char1="]" context="#stay"/> 0866 <DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" /> 0867 <DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" /> 0868 </context> 0869 <context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" > 0870 <DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" /> 0871 <DetectChar attribute="String" context="#pop" char="]" /> 0872 <IncludeRules context="dq_string_rules" /> 0873 </context> 0874 0875 <context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" > 0876 <IncludeRules context="dq_string_rules" /> 0877 <Detect2Chars attribute="String" char="\" char1=">" context="#stay"/> 0878 <DetectChar attribute="String" context="gdl_dq_string_4_nested" char="<" /> 0879 <DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" /> 0880 </context> 0881 <context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" > 0882 <DetectChar attribute="String" context="gdl_dq_string_4_nested" char="<" /> 0883 <DetectChar attribute="String" context="#pop" char=">" /> 0884 <IncludeRules context="dq_string_rules" /> 0885 </context> 0886 0887 <!-- this format doesn't allow nesting. it is terminated by the next occurrence of the 0888 delimiter character 0889 --> 0890 <context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true"> 0891 <IncludeRules context="dq_string_rules" /> 0892 <StringDetect attribute="String" String="\%1" context="#stay" dynamic="true" /> 0893 <RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" /> 0894 </context> 0895 <!-- rules to be included in all dq_string contexts --> 0896 <context name="dq_string_rules" attribute="String" lineEndContext="#stay" > 0897 <Detect2Chars attribute="String" char="\" char1="\" context="#stay"/> 0898 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 0899 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 0900 </context> 0901 0902 <!-- token array specific contexts --> 0903 0904 <context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" > 0905 <IncludeRules context="token_array_rules" /> 0906 <Detect2Chars attribute="String" char="\" char1=")" context="#stay"/> 0907 <DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" /> 0908 <DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" /> 0909 </context> 0910 <context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" > 0911 <IncludeRules context="token_array_rules" /> 0912 <DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" /> 0913 <DetectChar attribute="String" context="#pop" char=")" /> 0914 </context> 0915 0916 <context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" > 0917 <IncludeRules context="token_array_rules" /> 0918 <Detect2Chars attribute="String" char="\" char1="}" context="#stay"/> 0919 <DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" /> 0920 <DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" /> 0921 </context> 0922 <context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" > 0923 <IncludeRules context="token_array_rules" /> 0924 <DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" /> 0925 <DetectChar attribute="String" context="#pop" char="}" /> 0926 </context> 0927 0928 <context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" > 0929 <IncludeRules context="token_array_rules" /> 0930 <Detect2Chars attribute="String" char="\" char1="]" context="#stay"/> 0931 <DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" /> 0932 <DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" /> 0933 </context> 0934 <context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" > 0935 <IncludeRules context="token_array_rules" /> 0936 <DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" /> 0937 <DetectChar attribute="String" context="#pop" char="]" /> 0938 </context> 0939 0940 <context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" > 0941 <IncludeRules context="token_array_rules" /> 0942 <Detect2Chars attribute="String" char="\" char1=">" context="#stay"/> 0943 <DetectChar attribute="String" context="gdl_token_array_4_nested" char="<" /> 0944 <DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" /> 0945 </context> 0946 <context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" > 0947 <IncludeRules context="token_array_rules" /> 0948 <DetectChar attribute="String" context="gdl_token_array_4_nested" char="<" /> 0949 <DetectChar attribute="String" context="#pop" char=">" /> 0950 </context> 0951 0952 <!-- this format doesn't allow nesting. it is terminated by the next occurrence of the 0953 delimiter character 0954 --> 0955 <context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true"> 0956 <IncludeRules context="token_array_rules" /> 0957 <StringDetect attribute="String" String="\%1" context="#stay" dynamic="true"/> 0958 <RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" /> 0959 </context> 0960 0961 <!-- rules to be included in all token_array contexts --> 0962 <context name="token_array_rules" attribute="String" lineEndContext="#stay" > 0963 <Detect2Chars attribute="String" char="\" char1="\" context="#stay"/> 0964 </context> 0965 0966 <!-- apostrophed string specific contexts --> 0967 0968 <context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" > 0969 <IncludeRules context="apostrophed_rules" /> 0970 <Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/> 0971 <DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" /> 0972 <DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" /> 0973 </context> 0974 <context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" > 0975 <IncludeRules context="apostrophed_rules" /> 0976 <DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" /> 0977 <DetectChar attribute="Raw String" context="#pop" char=")" /> 0978 </context> 0979 0980 <context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" > 0981 <IncludeRules context="apostrophed_rules" /> 0982 <Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/> 0983 <DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" /> 0984 <DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" /> 0985 </context> 0986 <context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" > 0987 <IncludeRules context="apostrophed_rules" /> 0988 <DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" /> 0989 <DetectChar attribute="Raw String" context="#pop" char="}" /> 0990 </context> 0991 0992 <context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" > 0993 <IncludeRules context="apostrophed_rules" /> 0994 <Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/> 0995 <DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" /> 0996 <DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" /> 0997 </context> 0998 <context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" > 0999 <IncludeRules context="apostrophed_rules" /> 1000 <DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" /> 1001 <DetectChar attribute="Raw String" context="#pop" char="]" /> 1002 </context> 1003 1004 <context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" > 1005 <IncludeRules context="apostrophed_rules" /> 1006 <Detect2Chars attribute="Raw String" char="\" char1=">" context="#stay"/> 1007 <DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="<" /> 1008 <DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" /> 1009 </context> 1010 <context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" > 1011 <IncludeRules context="apostrophed_rules" /> 1012 <DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="<" /> 1013 <DetectChar attribute="Raw String" context="#pop" char=">" /> 1014 </context> 1015 1016 <!-- this format doesn't allow nesting. it is terminated by the next occurrence of the 1017 delimiter character 1018 --> 1019 <context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true"> 1020 <IncludeRules context="apostrophed_rules" /> 1021 <StringDetect attribute="Raw String" String="\%1" context="#stay" dynamic="true"/> 1022 <RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" /> 1023 </context> 1024 1025 <!-- rules to be included in all apostrophed contexts --> 1026 <context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" > 1027 <Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/> 1028 </context> 1029 1030 <!-- shell command specific contexts --> 1031 1032 <context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" > 1033 <IncludeRules context="shell_command_rules" /> 1034 <Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/> 1035 <DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" /> 1036 <DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" /> 1037 </context> 1038 <context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" > 1039 <IncludeRules context="shell_command_rules" /> 1040 <DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" /> 1041 <DetectChar attribute="Command" context="#pop" char=")" /> 1042 </context> 1043 1044 <context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" > 1045 <IncludeRules context="shell_command_rules" /> 1046 <Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/> 1047 <DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" /> 1048 <DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" /> 1049 </context> 1050 <context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" > 1051 <IncludeRules context="shell_command_rules" /> 1052 <DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" /> 1053 <DetectChar attribute="Command" context="#pop" char="}" /> 1054 </context> 1055 1056 <context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" > 1057 <IncludeRules context="shell_command_rules" /> 1058 <Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/> 1059 <DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" /> 1060 <DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" /> 1061 </context> 1062 <context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" > 1063 <IncludeRules context="shell_command_rules" /> 1064 <DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" /> 1065 <DetectChar attribute="Command" context="#pop" char="]" /> 1066 </context> 1067 1068 <context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" > 1069 <IncludeRules context="shell_command_rules" /> 1070 <Detect2Chars attribute="Command" char="\" char1=">" context="#stay"/> 1071 <DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="<" /> 1072 <DetectChar attribute="GDL input" context="#pop#pop" char=">" endRegion="GdlInput" /> 1073 </context> 1074 <context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" > 1075 <IncludeRules context="shell_command_rules" /> 1076 <DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="<" /> 1077 <DetectChar attribute="Command" context="#pop" char=">" /> 1078 </context> 1079 1080 <!-- this format doesn't allow nesting. it is terminated by the next occurrence of the 1081 delimiter character 1082 --> 1083 <context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true"> 1084 <IncludeRules context="shell_command_rules" /> 1085 <StringDetect attribute="Command" String="\%1" context="#stay" dynamic="true" /> 1086 <RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" /> 1087 </context> 1088 1089 <!-- rules to be included in all shell_command contexts --> 1090 <context name="shell_command_rules" attribute="Command" lineEndContext="#stay" > 1091 <Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/> 1092 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 1093 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 1094 </context> 1095 1096 <!-- regular expression specific contexts --> 1097 1098 <context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" > 1099 <IncludeRules context="regexpr_rules" /> 1100 <Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/> 1101 <DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" /> 1102 <RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" /> 1103 </context> 1104 <context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" > 1105 <IncludeRules context="regexpr_rules" /> 1106 <DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" /> 1107 <DetectChar attribute="Regular Expression" context="#pop" char=")" /> 1108 </context> 1109 1110 <context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" > 1111 <IncludeRules context="regexpr_rules" /> 1112 <Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/> 1113 <RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" /> 1114 <DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" /> 1115 </context> 1116 <context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" > 1117 <IncludeRules context="regexpr_rules" /> 1118 <DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" /> 1119 <DetectChar attribute="Regular Expression" context="#pop" char="}" /> 1120 </context> 1121 1122 <context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" > 1123 <IncludeRules context="regexpr_rules" /> 1124 <Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/> 1125 <DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" /> 1126 <RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" /> 1127 </context> 1128 <context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" > 1129 <IncludeRules context="regexpr_rules" /> 1130 <DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" /> 1131 <DetectChar attribute="Regular Expression" context="#pop" char="]" /> 1132 </context> 1133 1134 <context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" > 1135 <IncludeRules context="regexpr_rules" /> 1136 <Detect2Chars attribute="Regular Expression" char="\" char1=">" context="#stay"/> 1137 <DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="<" /> 1138 <RegExpr attribute="GDL input" context="#pop#pop" String=">[uiomxn]*" endRegion="GdlInput" /> 1139 </context> 1140 <context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" > 1141 <IncludeRules context="regexpr_rules" /> 1142 <DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="<" /> 1143 <DetectChar attribute="Regular Expression" context="#pop" char=">" /> 1144 </context> 1145 1146 <!-- this format doesn't allow nesting. it is terminated by the next occurrence of the 1147 delimiter character 1148 --> 1149 <context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true"> 1150 <IncludeRules context="regexpr_rules" /> 1151 <StringDetect attribute="Regular Expression" String="\%1" context="#stay" dynamic="true" /> 1152 <RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" /> 1153 </context> 1154 1155 <!-- rules to be included in all regexpr contexts --> 1156 <context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" > 1157 <Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/> 1158 <RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/> 1159 <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/> 1160 </context> 1161 1162 <!-- END of General delimited input support --> 1163 1164 <!-- handle data in script --> 1165 <context name="DATA" attribute="Data" lineEndContext="#stay"/> 1166 <!-- END Ruby contexts --> 1167 </contexts> 1168 1169 <itemDatas> 1170 <!-- BEGIN Ruby itemData --> 1171 <itemData name="Ruby Normal Text" defStyleNum="dsNormal"/> 1172 <itemData name="RUBY RAILS ERB Text" defStyleNum="dsExtension" bold="0" spellChecking="false"/> 1173 <itemData name="Ruby Source" defStyleNum="dsDataType" bold="1" spellChecking="false"/> 1174 1175 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/> 1176 <itemData name="Attribute Definition" defStyleNum="dsOthers" spellChecking="false"/> 1177 <itemData name="Access Control" defStyleNum="dsAttribute" bold="1" spellChecking="false"/> <!-- #0000FF --> 1178 <itemData name="Definition" defStyleNum="dsKeyword" spellChecking="false"/> 1179 <itemData name="Pseudo variable" defStyleNum="dsDecVal" spellChecking="false"/> 1180 1181 <itemData name="Dec" defStyleNum="dsDecVal" spellChecking="false"/> 1182 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> 1183 <itemData name="Char" defStyleNum="dsChar" spellChecking="false"/> 1184 <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/> 1185 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> 1186 <itemData name="Bin" defStyleNum="dsBaseN" spellChecking="false"/> 1187 1188 <itemData name="Symbol" defStyleNum="dsWarning" bold="0" underline="0" spellChecking="false"/> <!-- #D40000 --> 1189 <itemData name="String" defStyleNum="dsString"/> 1190 <itemData name="Raw String" defStyleNum="dsVerbatimString"/> <!-- #DD4A4A --> 1191 <itemData name="Command" defStyleNum="dsInformation"/> <!-- #AA3000 --> 1192 <itemData name="Message" defStyleNum="dsAttribute" spellChecking="false"/> <!-- #4000A7 --> 1193 <itemData name="Regular Expression" defStyleNum="dsSpecialString" spellChecking="false"/> <!-- #4A5704 --> 1194 <itemData name="Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/> 1195 <itemData name="Data" defStyleNum="dsNormal"/> 1196 <!-- short for 'general delimited input' --> 1197 <itemData name="GDL input" defStyleNum="dsOthers" /> 1198 1199 <itemData name="Default globals" defStyleNum="dsVariable" bold="1" spellChecking="false"/> <!-- #C00000 --> 1200 <itemData name="Global Variable" defStyleNum="dsVariable" spellChecking="false"/> <!-- #C00000 --> 1201 <itemData name="Global Constant" defStyleNum="dsConstant" bold="1" spellChecking="false"/> <!-- #bb1188 --> 1202 <itemData name="Constant" defStyleNum="dsDataType" spellChecking="false"/> 1203 <itemData name="Constant Value" defStyleNum="dsConstant" bold="0" spellChecking="false"/> <!-- #bb1188 --> 1204 <itemData name="Kernel methods" defStyleNum="dsFunction" bold="1" spellChecking="false"/> <!-- #000080, #CC0E86 --> 1205 <itemData name="Member" defStyleNum="dsNormal" spellChecking="false"/> 1206 <itemData name="Instance Variable" defStyleNum="dsOthers" spellChecking="false"/> 1207 <itemData name="Class Variable" defStyleNum="dsOthers" spellChecking="false"/> 1208 1209 <itemData name="Ruby Comment" defStyleNum="dsComment"/> 1210 <itemData name="Blockcomment" defStyleNum="dsComment"/> 1211 <itemData name="RDoc Value" defStyleNum="dsOthers"/> 1212 1213 <!-- use these to mark errors and alerts things --> 1214 <itemData name="Error" defStyleNum="dsError" spellChecking="false"/> 1215 1216 <itemData name="Delimiter" defStyleNum="dsChar" spellChecking="false"/> 1217 <itemData name="Operator" defStyleNum="dsChar" spellChecking="false"/> 1218 <!-- END Ruby itemData --> 1219 1220 <!-- BEGIN HTML itemData --> 1221 <itemData name="Normal Text" defStyleNum="dsNormal" /> 1222 <itemData name="Comment" defStyleNum="dsComment" /> 1223 <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" spellChecking="false"/> 1224 <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false"/> 1225 <itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false"/> 1226 <itemData name="Element" defStyleNum="dsKeyword" spellChecking="false"/> 1227 <itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false"/> 1228 <itemData name="Value" defStyleNum="dsString" spellChecking="false"/> 1229 <itemData name="EntityRef" defStyleNum="dsDecVal" spellChecking="false"/> 1230 <itemData name="PEntityRef" defStyleNum="dsDecVal" spellChecking="false"/> 1231 <!-- END HTML itemData --> 1232 1233 </itemDatas> 1234 </highlighting> 1235 <general> 1236 <comments> 1237 <comment name="multiLine" start="<!--" end="-->" region="comment" /> 1238 </comments> 1239 <keywords casesensitive="1" weakDeliminator="!?"/> 1240 </general> 1241 </language> 1242 <!-- kate: replace-tabs off; -->