<patterns>
 <class pattern="((/\.(((t?c)|ba)?sh)rc)|(/\w+\.(((t?c)|ba)?sh))|(/\w+\.cmake)|(/configure(\.in)?)|\.alias|CMakeLists\.txt|\.jdl)$" icon="text-x-script.png" first_line_pattern="^\s*#\s*!\s*(/.*bin/)?((t?c|k|ba)?sh)" name="shell" >

<!--Options-->
  <Option>
   <Name>wrap</Name>
   <Value>0</Value>
   <flags>2</flags>
  </Option>
  <Option>
   <Name>emulate_tabs</Name>
   <Value>1</Value>
   <flags>2</flags>
  </Option>
  <Option>
   <Name>default</Name>
   <Value>0</Value>
   <flags>2</flags>
  </Option>
  <Option>
   <Name>base_indentation</Name>
   <Value>0</Value>
   <flags>2</flags>
  </Option>

<!--Highlight styles-->
  <style format="2" name="Comment" color="#ff8c00" />
  <style format="0" name="End Of Line" color="#aa0000" />
  <style format="0" name="Function" color="#aa0000" />
  <style format="0" name="Keyword" color="#0000ff" />
  <style format="0" name="Keyword2" color="#0000aa" />
  <style format="0" name="String" color="#00cd00" />

<!--Highlight patterns-->
  <range_pattern options="no_indent comments" style="Comment" parent="" name="Comment" >
   <comments></comments>
   <begin>#|(dnl\s+)</begin>
   <end>$</end>
  </range_pattern>
  <range_pattern style="String" parent="" name="String" >
   <comments></comments>
   <begin>XML_QUOTE</begin>
   <end>[^\\]XML_QUOTE</end>
  </range_pattern>
  <range_pattern style="String" parent="" name="String2" >
   <comments></comments>
   <begin>'</begin>
   <end>([^\\]'|$)</end>
  </range_pattern>
  <range_pattern options="span no_indent " style="String" parent="" name="String3" >
   <comments></comments>
   <begin>XML_QUOTE.*\\</begin>
   <end>([^\\]XML_QUOTE)|([^\\].$)</end>
  </range_pattern>
  <keyword_pattern style="Keyword2" parent="String3" name="Separator" >
   <comments></comments>
   <keyword>\\</keyword>
  </keyword_pattern>
  <keyword_pattern style="Keyword2" parent="" name="Variable" >
   <comments></comments>
   <keyword>\$((\w+\b)|\{(\?)?(\w+)\})</keyword>
  </keyword_pattern>
  <keyword_pattern style="Keyword2" parent="" name="Assigned variables" >
   <comments></comments>
   <keyword>\b(set(env)?|alias)\s+\w+\b</keyword>
  </keyword_pattern>
  <keyword_pattern style="Keyword2" parent="Assigned variables" name="Keyword2" >
   <comments></comments>
   <keyword>\b(set(env)?|alias)\b</keyword>
  </keyword_pattern>
  <keyword_pattern style="Keyword" parent="" name="Keyword" >
   <comments></comments>
   <keyword>\b((set)?env|eval|export|umask|bindkey|(end)?if|break|end|then|else|source|echo|fi|test|in|case|esac|for(each)?|print|cd|cp|exit|rm|ls|do(ne)?)\b</keyword>
  </keyword_pattern>
  <keyword_pattern style="Keyword" parent="" name="Braces" >
   <comments></comments>
   <keyword>((\{|\[|\(|\)|\]|\})*(\{|\[|\(|\)|\]|\})(\{|\[|\(|\)|\]|\})*)</keyword>
  </keyword_pattern>
  <keyword_pattern style="Keyword" parent="" name="Logical" >
   <comments></comments>
   <keyword>((\!|\=)?=)|(XML_AND?XML_AND)|(\|?\|)</keyword>
  </keyword_pattern>
  <keyword_pattern style="End Of Line" parent="" name="End Of Line" >
   <comments></comments>
   <keyword>;</keyword>
  </keyword_pattern>
  <keyword_pattern style="Function" parent="" name="Function" >
   <comments></comments>
   <keyword>(\b|XML_AND)([^\s]+)\s*(?=\()</keyword>
  </keyword_pattern>

<!--Indentation patterns-->

<!--Parenthesis-->
  <parenthesis begin="(" end=")" regexp="\(|\)" />
  <parenthesis begin="[" end="]" regexp="\[|\]" />
  <parenthesis begin="{" end="}" regexp="\{|\}" />

<!--Block delimiters-->

<!--Text macros-->
  <macro accelerator="Alt+T" name="Add one tab indentation" >
   <rule>
    <regexp>^</regexp>
    <replacement>XML_TAB</replacement>
   </rule>
  </macro>
  <macro accelerator="Shift+Alt+T" name="Remove one tab indentation" >
   <rule>
    <regexp>^\t</regexp>
    <replacement></replacement>
   </rule>
  </macro>
  <macro name="Remove all tab indentations" >
   <rule>
    <regexp>^\t+</regexp>
    <replacement></replacement>
   </rule>
  </macro>
  <macro name="Clean end of line" options="automatic" >
   <rule>
    <regexp>\s+$</regexp>
    <replacement></replacement>
   </rule>
  </macro>
  <macro options="separator" name="generic" />
  <macro accelerator="Alt+C" name="Add comments" >
   <rule>
    <regexp>^</regexp>
    <replacement># </replacement>
   </rule>
  </macro>
  <macro accelerator="Shift+Alt+C" name="Remove comments" >
   <rule>
    <regexp>^# </regexp>
    <replacement></replacement>
   </rule>
  </macro>
 </class>
</patterns>
