org_mode.xml

  1<lexer>
  2  <config>
  3    <name>Org Mode</name>
  4    <alias>org</alias>
  5    <alias>orgmode</alias>
  6    <filename>*.org</filename>
  7    <mime_type>text/org</mime_type>
  8  </config>
  9  <rules>
 10    <state name="root">
 11      <rule pattern="^# .*$">
 12        <token type="Comment"/>
 13      </rule>
 14      <rule pattern="^(\*)( COMMENT)( .*)$">
 15        <bygroups>
 16          <token type="GenericHeading"/>
 17          <token type="NameEntity"/>
 18          <token type="GenericStrong"/>
 19        </bygroups>
 20      </rule>
 21      <rule pattern="^(\*\*+)( COMMENT)( .*)$">
 22        <bygroups>
 23          <token type="GenericSubheading"/>
 24          <token type="NameEntity"/>
 25          <token type="Text"/>
 26        </bygroups>
 27      </rule>
 28      <rule pattern="^(\*)( DONE)( .*)$">
 29        <bygroups>
 30          <token type="GenericHeading"/>
 31          <token type="LiteralStringRegex"/>
 32          <token type="GenericStrong"/>
 33        </bygroups>
 34      </rule>
 35      <rule pattern="^(\*\*+)( DONE)( .*)$">
 36        <bygroups>
 37          <token type="GenericSubheading"/>
 38          <token type="LiteralStringRegex"/>
 39          <token type="Text"/>
 40        </bygroups>
 41      </rule>
 42      <rule pattern="^(\*)( TODO)( .*)$">
 43        <bygroups>
 44          <token type="GenericHeading"/>
 45          <token type="Error"/>
 46          <token type="GenericStrong"/>
 47        </bygroups>
 48      </rule>
 49      <rule pattern="^(\*\*+)( TODO)( .*)$">
 50        <bygroups>
 51          <token type="GenericSubheading"/>
 52          <token type="Error"/>
 53          <token type="Text"/>
 54        </bygroups>
 55      </rule>
 56      <rule pattern="^(\*)( .+?)( :[a-zA-Z0-9_@:]+:)$">
 57        <bygroups>
 58          <token type="GenericHeading"/>
 59          <token type="GenericStrong"/>
 60          <token type="GenericEmph"/>
 61        </bygroups>
 62      </rule>
 63      <rule pattern="^(\*)( .+)$">
 64        <bygroups>
 65          <token type="GenericHeading"/>
 66          <token type="GenericStrong"/>
 67        </bygroups>
 68      </rule>
 69      <rule pattern="^(\*\*+)( .+?)( :[a-zA-Z0-9_@:]+:)$">
 70        <bygroups>
 71          <token type="GenericSubheading"/>
 72          <token type="Text"/>
 73          <token type="GenericEmph"/>
 74        </bygroups>
 75      </rule>
 76      <rule pattern="^(\*\*+)( .+)$">
 77        <bygroups>
 78          <token type="GenericSubheading"/>
 79          <token type="Text"/>
 80        </bygroups>
 81      </rule>
 82      <rule pattern="^( *)([+-] )(\[[ X]\])( .+)$">
 83        <bygroups>
 84          <token type="Text"/>
 85          <token type="Keyword"/>
 86          <token type="Keyword"/>
 87          <usingself state="inline"/>
 88        </bygroups>
 89      </rule>
 90      <rule pattern="^( +)(\* )(\[[ X]\])( .+)$">
 91        <bygroups>
 92          <token type="Text"/>
 93          <token type="Keyword"/>
 94          <token type="Keyword"/>
 95          <usingself state="inline"/>
 96        </bygroups>
 97      </rule>
 98      <rule pattern="^( *)([+-] )([^ \n]+ ::)( .+)$">
 99        <bygroups>
100          <token type="Text"/>
101          <token type="Keyword"/>
102          <token type="Keyword"/>
103          <usingself state="inline"/>
104        </bygroups>
105      </rule>
106      <rule pattern="^( +)(\* )([^ \n]+ ::)( .+)$">
107        <bygroups>
108          <token type="Text"/>
109          <token type="Keyword"/>
110          <token type="Keyword"/>
111          <usingself state="inline"/>
112        </bygroups>
113      </rule>
114      <rule pattern="^( *)([+-] )(.+)$">
115        <bygroups>
116          <token type="Text"/>
117          <token type="Keyword"/>
118          <usingself state="inline"/>
119        </bygroups>
120      </rule>
121      <rule pattern="^( +)(\* )(.+)$">
122        <bygroups>
123          <token type="Text"/>
124          <token type="Keyword"/>
125          <usingself state="inline"/>
126        </bygroups>
127      </rule>
128      <rule pattern="^( *)([0-9]+[.)])( \[@[0-9]+\])( .+)$">
129        <bygroups>
130          <token type="Text"/>
131          <token type="Keyword"/>
132          <token type="GenericEmph"/>
133          <usingself state="inline"/>
134        </bygroups>
135      </rule>
136      <rule pattern="^( *)([0-9]+[.)])( .+)$">
137        <bygroups>
138          <token type="Text"/>
139          <token type="Keyword"/>
140          <usingself state="inline"/>
141        </bygroups>
142      </rule>
143      <rule pattern="(?i)^( *#\+begin: )([^ ]+)([\w\W]*?\n)([\w\W]*?)(^ *#\+end: *$)">
144        <bygroups>
145          <token type="Comment"/>
146          <token type="CommentSpecial"/>
147          <token type="Comment"/>
148          <usingself state="inline"/>
149          <token type="Comment"/>
150        </bygroups>
151      </rule>
152      <rule pattern="(?i)^( *#\+begin_comment *\n)([\w\W]*?)(^ *#\+end_comment *$)">
153        <bygroups>
154          <token type="Comment"/>
155          <token type="Comment"/>
156          <token type="Comment"/>
157        </bygroups>
158      </rule>
159      <rule pattern="(?i)^( *#\+begin_src )([^ \n]+)(.*?\n)([\w\W]*?)(^ *#\+end_src *$)">
160        <usingbygroup>
161          <sublexer_name_group>2</sublexer_name_group>
162          <code_group>4</code_group>
163          <emitters>
164            <token type="Comment"/>
165            <token type="CommentSpecial"/>
166            <token type="Comment"/>
167            <token type="Text"/>
168            <token type="Comment"/>
169          </emitters>
170        </usingbygroup>
171      </rule>
172      <rule pattern="(?i)^( *#\+begin_export )(\w+)( *\n)([\w\W]*?)(^ *#\+end_export *$)">
173        <usingbygroup>
174          <sublexer_name_group>2</sublexer_name_group>
175          <code_group>4</code_group>
176          <emitters>
177            <token type="Comment"/>
178            <token type="CommentSpecial"/>
179            <token type="Text"/>
180            <token type="Text"/>
181            <token type="Comment"/>
182          </emitters>
183        </usingbygroup>
184      </rule>
185      <rule pattern="(?i)^( *#\+begin_)(\w+)( *\n)([\w\W]*?)(^ *#\+end_\2)( *$)">
186        <bygroups>
187          <token type="Comment"/>
188          <token type="Comment"/>
189          <token type="Text"/>
190          <token type="Text"/>
191          <token type="Comment"/>
192          <token type="Text"/>
193        </bygroups>
194      </rule>
195      <rule pattern="^(#\+\w+)(:.*)$">
196        <bygroups>
197          <token type="CommentSpecial"/>
198          <token type="Comment"/>
199        </bygroups>
200      </rule>
201      <rule pattern="(?i)^( *:\w+: *\n)([\w\W]*?)(^ *:end: *$)">
202        <bygroups>
203          <token type="Comment"/>
204          <token type="CommentSpecial"/>
205          <token type="Comment"/>
206        </bygroups>
207      </rule>
208      <rule pattern="^(.*)(\\\\)$">
209        <bygroups>
210          <usingself state="inline"/>
211          <token type="Operator"/>
212        </bygroups>
213      </rule>
214      <rule pattern="(?i)^( *(?:DEADLINE|SCHEDULED): )(&lt;[^&lt;&gt;]+?&gt; *)$">
215        <bygroups>
216          <token type="Comment"/>
217          <token type="CommentSpecial"/>
218        </bygroups>
219      </rule>
220      <rule pattern="(?i)^( *CLOSED: )(\[[^][]+?\] *)$">
221        <bygroups>
222          <token type="Comment"/>
223          <token type="CommentSpecial"/>
224        </bygroups>
225      </rule>
226      <rule>
227        <include state="inline"/>
228      </rule>
229    </state>
230    <state name="inline">
231      <rule pattern="(\s*)(\*[^ \n*][^*]+?[^ \n*]\*)((?=\W|\n|$))">
232        <bygroups>
233          <token type="Text"/>
234          <token type="GenericStrong"/>
235          <token type="Text"/>
236        </bygroups>
237      </rule>
238      <rule pattern="(\s*)(/[^/]+?/)((?=\W|\n|$))">
239        <bygroups>
240          <token type="Text"/>
241          <token type="GenericEmph"/>
242          <token type="Text"/>
243        </bygroups>
244      </rule>
245      <rule pattern="(\s*)(=[^\n=]+?=)((?=\W|\n|$))">
246        <bygroups>
247          <token type="Text"/>
248          <token type="NameClass"/>
249          <token type="Text"/>
250        </bygroups>
251      </rule>
252      <rule pattern="(\s*)(~[^\n~]+?~)((?=\W|\n|$))">
253        <bygroups>
254          <token type="Text"/>
255          <token type="NameClass"/>
256          <token type="Text"/>
257        </bygroups>
258      </rule>
259      <rule pattern="(\s*)(\+[^+]+?\+)((?=\W|\n|$))">
260        <bygroups>
261          <token type="Text"/>
262          <token type="GenericDeleted"/>
263          <token type="Text"/>
264        </bygroups>
265      </rule>
266      <rule pattern="(\s*)(_[^_]+?_)((?=\W|\n|$))">
267        <bygroups>
268          <token type="Text"/>
269          <token type="GenericUnderline"/>
270          <token type="Text"/>
271        </bygroups>
272      </rule>
273      <rule pattern="(&lt;)([^&lt;&gt;]+?)(&gt;)">
274        <bygroups>
275          <token type="Text"/>
276          <token type="LiteralString"/>
277          <token type="Text"/>
278        </bygroups>
279      </rule>
280      <rule pattern="[{]{3}[^}]+[}]{3}">
281        <token type="NameBuiltin"/>
282      </rule>
283      <rule pattern="([^[])(\[fn:)([^]]+?)(\])([^]])">
284        <bygroups>
285          <token type="Text"/>
286          <token type="NameBuiltinPseudo"/>
287          <token type="LiteralString"/>
288          <token type="NameBuiltinPseudo"/>
289          <token type="Text"/>
290        </bygroups>
291      </rule>
292      <rule pattern="(\[\[)([^][]+?)(\]\[)([^][]+)(\]\])">
293        <bygroups>
294          <token type="Text"/>
295          <token type="NameAttribute"/>
296          <token type="Text"/>
297          <token type="NameTag"/>
298          <token type="Text"/>
299        </bygroups>
300      </rule>
301      <rule pattern="(\[\[)([^][]+?)(\]\])">
302        <bygroups>
303          <token type="Text"/>
304          <token type="NameAttribute"/>
305          <token type="Text"/>
306        </bygroups>
307      </rule>
308      <rule pattern="(&lt;&lt;)([^&lt;&gt;]+?)(&gt;&gt;)">
309        <bygroups>
310          <token type="Text"/>
311          <token type="NameAttribute"/>
312          <token type="Text"/>
313        </bygroups>
314      </rule>
315      <rule pattern="^( *)(\|[ -].*?[ -]\|)$">
316        <bygroups>
317          <token type="Text"/>
318          <token type="LiteralString"/>
319        </bygroups>
320      </rule>
321      <rule pattern="\n">
322        <token type="Text"/>
323      </rule>
324      <rule pattern=".">
325        <token type="Text"/>
326      </rule>
327    </state>
328  </rules>
329</lexer>