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  "&amp;(?:#[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="&lt;!--" beginRegion="comment" />
0333                                 <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
0334                                 <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
0335                                 <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
0336                                 <WordDetect attribute="Element" context="CSS" String="&lt;style" insensitive="true" beginRegion="style" />
0337                                 <WordDetect attribute="Element" context="JS" String="&lt;script" insensitive="true" beginRegion="script" />
0338                                 <WordDetect attribute="Element" context="El Open" String="&lt;pre" insensitive="true" beginRegion="pre" />
0339                                 <WordDetect attribute="Element" context="El Open" String="&lt;div" insensitive="true" beginRegion="div" />
0340                                 <WordDetect attribute="Element" context="El Open" String="&lt;table" insensitive="true" beginRegion="table" />
0341                                 <RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
0342                                 <WordDetect attribute="Element" context="El Close" String="&lt;/pre" insensitive="true" endRegion="pre" />
0343                                 <WordDetect attribute="Element" context="El Close" String="&lt;/div" insensitive="true" endRegion="div" />
0344                                 <WordDetect attribute="Element" context="El Close" String="&lt;/table" insensitive="true" endRegion="table" />
0345                                 <RegExpr attribute="Element" context="El Close" String="&lt;/&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="&amp;&lt;" />
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="&amp;%" />
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="&lt;!(?: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="--&gt;" endRegion="comment" />
0374                                 <IncludeRules context="##Comments" />
0375                                 <DetectIdentifier/>
0376                                 <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
0377                         </context>
0378                         
0379                         <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
0380                                 <DetectSpaces/>
0381                                 <DetectIdentifier/>
0382                                 <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
0383                                 <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
0384                         </context>
0385                         
0386                         <context name="PI" attribute="Normal Text" lineEndContext="#stay">
0387                                 <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
0388                         </context>
0389                         
0390                         <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
0391                                 <DetectChar attribute="Doctype" context="#pop" char="&gt;" 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="&lt;!--" beginRegion="comment" />
0399                                 <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\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="&gt;" />
0405                                 <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
0406                                 <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
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="&quot;" />
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="&apos;" />
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="&gt;" />
0427                                 <DetectChar attribute="Element" context="#pop" char="&gt;" />
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="&gt;" />
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="&gt;" />
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="&gt;" />
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="&gt;" endRegion="style" />
0457                                 <DetectChar attribute="Element" context="CSS content" char="&gt;" />
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="&lt;/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="&gt;" endRegion="script" />
0473                                 <DetectChar attribute="Element" context="JS content" char="&gt;" />
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="&lt;/script" insensitive="true" endRegion="script" />
0482                                 <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/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="&lt;/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="&quot;" />
0495                                 <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
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="/(?!&gt;)|[^/&gt;&lt;&quot;&apos;\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="&quot;" />
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="&apos;" />
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="&lt;" 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="-%&gt;" />
0536                                 <Detect2Chars attribute="Ruby Source" context="#pop" char="%" char1="&gt;" />
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_*`\!:?'/\\\-\&amp;]" 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*&lt;&lt;-(?=\w+|[&quot;'])" beginRegion="HereDocument" />
0615                                 <RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'])" beginRegion="HereDocument" />
0616                                 
0617                                 <DetectChar attribute="Operator" char="." context="#stay"/>
0618                                 <Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
0619                                 <Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
0620                                 <!-- \s! is regexp hack -->
0621                                 <RegExpr attribute="Operator" String="\s[\?\:\%/]\s|[|&amp;&lt;&gt;\^\+*~\-=]+|\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="&quot;" 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&gt;])" 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="&quot;" 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="&quot;" 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="=+-*/%|&amp;[]{}~" 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="-%&gt;" lookAhead="true" />
0733                                 <Detect2Chars context="#pop" char="%" char1="&gt;" 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="&quot;?(\w+)&quot;?" />
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="&quot;?(\w+)&quot;?" />
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="&lt;" />
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="&lt;" />
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="&lt;" />
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="&lt;" />
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="&lt;" />
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="&lt;" />
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="&gt;" context="#stay"/>
0878                                 <DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
0879                                 <DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" 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="&lt;" />
0883                                 <DetectChar attribute="String" context="#pop" char="&gt;" />
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="&gt;" context="#stay"/>
0943                                 <DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
0944                                 <DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" 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="&lt;" />
0949                                 <DetectChar attribute="String" context="#pop" char="&gt;" />
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="&gt;" context="#stay"/>
1007                                 <DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
1008                                 <DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" 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="&lt;" />
1013                                 <DetectChar attribute="Raw String" context="#pop" char="&gt;" />
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="&gt;" context="#stay"/>
1071                                 <DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
1072                                 <DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" 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="&lt;" />
1077                                 <DetectChar attribute="Command" context="#pop" char="&gt;" />
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="&gt;" context="#stay"/>
1137                                 <DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
1138                                 <RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[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="&lt;" />
1143                                 <DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />
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="&lt;!--" end="--&gt;" region="comment" />
1238                 </comments>
1239                 <keywords casesensitive="1" weakDeliminator="!?"/> 
1240         </general>
1241 </language>
1242 <!-- kate: replace-tabs off; -->