3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
7 <PROPERTY NAME="lineComment" VALUE="#" />
8 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
9 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
10 <PROPERTY NAME="indentNextLines"
11 VALUE="^.*(then|do|else|case.*in)\s*(#.*)?$" />
12 <PROPERTY NAME="unindentThisLine"
13 VALUE="^\s*(fi|else|done|esac|[^(]*\).*)\s*(#.*)?$" />
14 <PROPERTY NAME="unindentNextLines"
15 VALUE="^\s*(fi|else|done|esac)\s*(#.*)?$" />
16 <!-- 3 possible values for electricKeys may be considered
17 1. electric enter and the bracket: ")
"
18 2. letters ending unindent rules ")iec"
19 3. all letters ")abcdefghijklmnopqrstuvwxyz"
20 details: http://jedit.9.n6.nabble.com/jEdit-devel-electric-keys-for-shell-mode-tp4998749.html
22 <PROPERTY NAME="electricKeys" VALUE=")abcdefghijklmnopqrstuvwxyz" />
24 <RULES IGNORE_CASE="TRUE" HIGHLIGHT_DIGITS="TRUE">
26 <EOL_SPAN TYPE="COMMENT2">#!</EOL_SPAN>
27 <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
29 <!-- BUG #3594428 (Bash Syntax Highlighting) -->
30 <SPAN TYPE="KEYWORD2" DELEGATE="LITERAL" NO_LINE_BREAK="TRUE">
35 <MARK_FOLLOWING TYPE="KEYWORD2">$#</MARK_FOLLOWING>
36 <MARK_FOLLOWING TYPE="KEYWORD2">$?</MARK_FOLLOWING>
37 <MARK_FOLLOWING TYPE="KEYWORD2">$*</MARK_FOLLOWING>
38 <MARK_FOLLOWING TYPE="KEYWORD2">$@</MARK_FOLLOWING>
39 <MARK_FOLLOWING TYPE="KEYWORD2">$$</MARK_FOLLOWING>
40 <MARK_FOLLOWING TYPE="KEYWORD2">$<</MARK_FOLLOWING>
41 <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
42 <MARK_PREVIOUS TYPE="KEYWORD2" MATCH_TYPE="OPERATOR">=</MARK_PREVIOUS>
45 <SPAN TYPE="KEYWORD3" DELEGATE="EXEC" ESCAPE="\">
49 <SPAN TYPE="KEYWORD3" DELEGATE="EXEC" ESCAPE="\">
53 <SPAN TYPE="KEYWORD3" DELEGATE="EXEC" ESCAPE="\">
57 <SPAN TYPE="KEYWORD3" DELEGATE="EXEC" ESCAPE="\">
63 <SPAN TYPE="LITERAL1" DELEGATE="LITERAL" ESCAPE="\">
67 <SPAN TYPE="LITERAL1">
73 <SPAN_REGEXP HASH_CHAR="<<" TYPE="LITERAL1" DELEGATE="LITERAL" ESCAPE="\">
74 <BEGIN><![CDATA[<<[\p{Space}'"]*([\p{Alnum}_]+)[\p{Space}'"]*]]></BEGIN>
75 <END AT_LINE_START="TRUE">$1</END>
79 <SEQ TYPE="OPERATOR">|</SEQ>
80 <SEQ TYPE="OPERATOR">&</SEQ>
81 <SEQ TYPE="OPERATOR">!</SEQ>
82 <SEQ TYPE="OPERATOR">></SEQ>
83 <SEQ TYPE="OPERATOR"><</SEQ>
86 <MARK_FOLLOWING TYPE="KEYWORD2">%</MARK_FOLLOWING>
89 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
90 <SEQ TYPE="OPERATOR">)</SEQ>
93 <KEYWORD1>if</KEYWORD1>
94 <KEYWORD1>then</KEYWORD1>
95 <KEYWORD1>elif</KEYWORD1>
96 <KEYWORD1>else</KEYWORD1>
97 <KEYWORD1>fi</KEYWORD1>
98 <KEYWORD1>case</KEYWORD1>
99 <KEYWORD1>in</KEYWORD1>
100 <OPERATOR>;;</OPERATOR>
101 <KEYWORD1>esac</KEYWORD1>
102 <KEYWORD1>while</KEYWORD1>
103 <KEYWORD1>for</KEYWORD1>
104 <KEYWORD1>do</KEYWORD1>
105 <KEYWORD1>done</KEYWORD1>
106 <KEYWORD1>continue</KEYWORD1>
108 <KEYWORD1>local</KEYWORD1>
109 <KEYWORD1>return</KEYWORD1>
112 <!-- some of these should be marked OPERATOR -->
113 <!-- <SEQ TYPE="NULL">)</SEQ>
114 <SEQ TYPE="NULL">(</SEQ>
115 <SEQ TYPE="NULL">=</SEQ>
116 <SEQ TYPE="NULL">!</SEQ>
117 <SEQ TYPE="NULL">>=</SEQ>
118 <SEQ TYPE="NULL"><=</SEQ>
119 <SEQ TYPE="NULL">+</SEQ>
120 <SEQ TYPE="NULL">-</SEQ>
121 <SEQ TYPE="NULL">/</SEQ>
122 <SEQ TYPE="NULL">*</SEQ>
123 <SEQ TYPE="NULL">^</SEQ>
124 <SEQ TYPE="NULL">~</SEQ>
125 <SEQ TYPE="NULL">}</SEQ>
126 <SEQ TYPE="NULL">{</SEQ>
127 SEQ TYPE="NULL">.</SEQ
128 <SEQ TYPE="NULL">,</SEQ>
129 <SEQ TYPE="NULL">;</SEQ>
130 <SEQ TYPE="NULL">]</SEQ>
131 <SEQ TYPE="NULL">[</SEQ>
132 <SEQ TYPE="NULL">?</SEQ>
133 <SEQ TYPE="NULL">:</SEQ> -->
136 <RULES SET="LITERAL" DEFAULT="LITERAL1" ESCAPE="\">
138 <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
143 <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
146 <RULES SET="EXEC" DEFAULT="KEYWORD3" ESCAPE="\">
148 <SPAN TYPE="KEYWORD2" NO_LINE_BREAK="TRUE">
153 <SPAN TYPE="KEYWORD3">
158 <SPAN TYPE="KEYWORD3">
163 <SPAN TYPE="KEYWORD3">
168 <MARK_FOLLOWING TYPE="KEYWORD2">$</MARK_FOLLOWING>
170 <SEQ TYPE="OPERATOR">|</SEQ>
171 <SEQ TYPE="OPERATOR">&</SEQ>
172 <SEQ TYPE="OPERATOR">!</SEQ>
173 <SEQ TYPE="OPERATOR">></SEQ>
174 <SEQ TYPE="OPERATOR"><</SEQ>