Wiki

jEditSupport: cobra.xml

File cobra.xml, 6.5 KB (added by pchapin, 13 years ago)

Cobra editing mode for jEdit

Line 
1<?xml version="1.0"?>
2
3<!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5<!-- This is a Cobra editing mode for jEdit. It was originally based on jEdit's Python mode by
6     Slava Pestov. -->
7
8<MODE>
9    <PROPS>
10        <PROPERTY NAME="indentNextLines" VALUE="^\s*(and|body|branch|catch|class|def|else|ensure|expect|for|get|if|invariant|on|or|post|pro|require|set|shared|success|test|try|using|while)\b.*(#.*)?" />
11        <PROPERTY NAME="unalignedOpenBrackets" VALUE="(" />
12        <PROPERTY NAME="unalignedCloseBrackets" VALUE=")" />
13        <PROPERTY NAME="lineComment" VALUE="#" />
14        <PROPERTY NAME="ignoreWhitespace" VALUE="false" />
15    </PROPS>
16   
17    <RULES IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
18        <!-- Comments -->
19        <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>
20
21        <!-- Triple quoted string literals -->
22        <SPAN TYPE="LITERAL2">
23            <BEGIN>"""</BEGIN>
24            <END>"""</END>
25        </SPAN>
26
27        <SPAN TYPE="LITERAL2">
28            <BEGIN>'''</BEGIN>
29            <END>'''</END>
30        </SPAN>
31
32        <!-- Standard string literals -->
33        <SPAN TYPE="LITERAL1" DELEGATE="INTERPOLATION">
34            <BEGIN>"</BEGIN>
35            <END>"</END>
36        </SPAN>
37        <SPAN TYPE="LITERAL1" DELEGATE="INTERPOLATION">
38            <BEGIN>'</BEGIN>
39            <END>'</END>
40        </SPAN>
41
42        <!-- This operator list is largely from Python. It should be reviewed/updated. -->
43        <SEQ TYPE="OPERATOR">==</SEQ>
44        <SEQ TYPE="OPERATOR">!</SEQ>
45        <SEQ TYPE="OPERATOR">&gt;=</SEQ>
46        <SEQ TYPE="OPERATOR">&lt;=</SEQ>
47        <SEQ TYPE="OPERATOR">&lt;&gt;</SEQ>
48        <SEQ TYPE="OPERATOR">+</SEQ>
49        <SEQ TYPE="OPERATOR">-</SEQ>
50        <SEQ TYPE="OPERATOR">/</SEQ>
51        <SEQ TYPE="OPERATOR">*</SEQ>
52        <SEQ TYPE="OPERATOR">&gt;</SEQ>
53        <SEQ TYPE="OPERATOR">&lt;</SEQ>
54        <SEQ TYPE="OPERATOR">%</SEQ>
55        <SEQ TYPE="OPERATOR">&amp;</SEQ>
56        <SEQ TYPE="OPERATOR">|</SEQ>
57        <SEQ TYPE="OPERATOR">^</SEQ>
58        <SEQ TYPE="OPERATOR">~</SEQ>
59
60        <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
61        <SEQ TYPE="OPERATOR">)</SEQ>
62
63        <KEYWORDS>
64            <!--  Declarations and Modifiers  -->
65            <KEYWORD1>abstract</KEYWORD1>
66            <KEYWORD1>as</KEYWORD1>
67            <KEYWORD1>be</KEYWORD1>
68            <KEYWORD1>callable</KEYWORD1>
69            <KEYWORD1>class</KEYWORD1>
70            <KEYWORD1>cue</KEYWORD1>
71            <KEYWORD1>def</KEYWORD1>
72            <KEYWORD1>enum</KEYWORD1>
73            <KEYWORD1>event</KEYWORD1>
74            <KEYWORD1>extend</KEYWORD1>
75            <KEYWORD1>extern</KEYWORD1>
76            <KEYWORD1>fake</KEYWORD1>
77            <KEYWORD1>from</KEYWORD1>
78            <KEYWORD1>get</KEYWORD1>
79            <KEYWORD1>has</KEYWORD1>
80            <KEYWORD1>implements</KEYWORD1>
81            <KEYWORD1>import</KEYWORD1>
82            <KEYWORD1>inherits</KEYWORD1>
83            <KEYWORD1>inlined</KEYWORD1>
84            <KEYWORD1>interface</KEYWORD1>
85            <KEYWORD1>internal</KEYWORD1>
86            <KEYWORD1>is</KEYWORD1>
87            <KEYWORD1>must</KEYWORD1>
88            <KEYWORD1>namespace</KEYWORD1>
89            <KEYWORD1>new</KEYWORD1>
90            <KEYWORD1>nonvirtual</KEYWORD1>
91            <KEYWORD1>of</KEYWORD1>
92            <KEYWORD1>override</KEYWORD1>
93            <KEYWORD1>partial</KEYWORD1>
94            <KEYWORD1>private</KEYWORD1>
95            <KEYWORD1>pro</KEYWORD1>
96            <KEYWORD1>protected</KEYWORD1>
97            <KEYWORD1>public</KEYWORD1>
98            <KEYWORD1>set</KEYWORD1>
99            <KEYWORD1>shared</KEYWORD1>
100            <KEYWORD1>sig</KEYWORD1>
101            <KEYWORD1>struct</KEYWORD1>
102            <KEYWORD1>use</KEYWORD1>
103            <KEYWORD1>var</KEYWORD1>
104            <KEYWORD1>virtual</KEYWORD1>
105            <KEYWORD1>where</KEYWORD1>
106           
107            <!-- Statements and Expressions -->
108            <KEYWORD2>all</KEYWORD2>
109            <KEYWORD2>and</KEYWORD2>
110            <KEYWORD2>any</KEYWORD2>
111            <KEYWORD2>base</KEYWORD2>
112            <KEYWORD2>branch</KEYWORD2>
113            <KEYWORD2>break</KEYWORD2>
114            <KEYWORD2>catch</KEYWORD2>
115            <KEYWORD2>continue</KEYWORD2>
116            <KEYWORD2>do</KEYWORD2>
117            <KEYWORD2>each</KEYWORD2>
118            <KEYWORD2>else</KEYWORD2>
119            <KEYWORD2>end</KEYWORD2>
120            <KEYWORD2>every</KEYWORD2>
121            <KEYWORD2>expect</KEYWORD2>
122            <KEYWORD2>false</KEYWORD2>
123            <KEYWORD2>finally</KEYWORD2>
124            <KEYWORD2>for</KEYWORD2>
125            <KEYWORD2>if</KEYWORD2>
126            <KEYWORD2>ignore</KEYWORD2>
127            <KEYWORD2>in</KEYWORD2>
128            <KEYWORD2>inout</KEYWORD2>
129            <KEYWORD2>listen</KEYWORD2>
130            <KEYWORD2>nil</KEYWORD2>
131            <KEYWORD2>not</KEYWORD2>
132            <KEYWORD2>off</KEYWORD2>
133            <KEYWORD2>on</KEYWORD2>
134            <KEYWORD2>or</KEYWORD2>
135            <KEYWORD2>out</KEYWORD2>
136            <KEYWORD2>pass</KEYWORD2>
137            <KEYWORD2>passthrough</KEYWORD2>
138            <KEYWORD2>post</KEYWORD2>
139            <KEYWORD2>print</KEYWORD2>
140            <KEYWORD2>raise</KEYWORD2>
141            <KEYWORD2>ref</KEYWORD2>
142            <KEYWORD2>return</KEYWORD2>
143            <KEYWORD2>stop</KEYWORD2>
144            <KEYWORD2>success</KEYWORD2>
145            <KEYWORD2>this</KEYWORD2>
146            <KEYWORD2>throw</KEYWORD2>
147            <KEYWORD2>to</KEYWORD2>
148            <KEYWORD2>to?</KEYWORD2>
149            <KEYWORD2>trace</KEYWORD2>
150            <KEYWORD2>true</KEYWORD2>
151            <KEYWORD2>try</KEYWORD2>
152            <KEYWORD2>using</KEYWORD2>
153            <KEYWORD2>vari</KEYWORD2>
154            <KEYWORD2>while</KEYWORD2>
155            <KEYWORD2>yield</KEYWORD2>
156           
157            <!-- Types -->
158            <KEYWORD3>bool</KEYWORD3>
159            <KEYWORD3>char</KEYWORD3>
160            <KEYWORD3>decimal</KEYWORD3>
161            <KEYWORD3>dynamic</KEYWORD3>
162            <KEYWORD3>float</KEYWORD3>
163            <KEYWORD3>int</KEYWORD3>
164            <KEYWORD3>number</KEYWORD3>
165            <KEYWORD3>same</KEYWORD3>
166            <KEYWORD3>uint</KEYWORD3>
167           
168            <!-- "Code for Quality" Related -->
169            <KEYWORD4>assert</KEYWORD4>
170            <KEYWORD4>body</KEYWORD4>
171            <KEYWORD4>ensure</KEYWORD4>
172            <KEYWORD4>implies</KEYWORD4>
173            <KEYWORD4>invariant</KEYWORD4>
174            <KEYWORD4>require</KEYWORD4>
175            <KEYWORD4>old</KEYWORD4>
176            <KEYWORD4>test</KEYWORD4>
177
178            <!-- There are also 'objc' and 'except' reserved words under "misc" -->
179        </KEYWORDS>
180    </RULES>
181   
182    <RULES SET="INTERPOLATION" DEFAULT="LITERAL1" ESCAPE="\">
183        <SPAN TYPE="NULL" DELEGATE="MAIN">
184            <BEGIN>[</BEGIN>
185            <END>]</END>
186        </SPAN>
187    </RULES>
188</MODE>
189