]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/moin.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / moin.xml
1 <?xml version="1.0"?>
2
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
4
5 <MODE>
6         <PROPS>
7                 <PROPERTY NAME="lineComment" VALUE="##" />
8                 <PROPERTY NAME="wrap" VALUE="soft" />
9         </PROPS>
10         <RULES HIGHLIGHT_DIGITS="FALSE" IGNORE_CASE="FALSE">
11
12                 <!-- comment -->
13                 <EOL_SPAN TYPE="COMMENT1">##</EOL_SPAN>
14
15                 <!-- directive -->
16                 <EOL_SPAN TYPE="KEYWORD2">#pragma</EOL_SPAN>
17
18                 <!-- macro -->
19                 <SPAN TYPE="KEYWORD4">
20                         <BEGIN>[[</BEGIN>
21                         <END>]]</END>
22                 </SPAN>
23
24                 <!-- term definition -->
25                 <SEQ_REGEXP
26                         HASH_CHAR=' '
27                         AT_LINE_START='TRUE'
28                         TYPE="LABEL"
29                 >\s+(?:\(|\)|\w)[\p{Alnum}\p{Blank}.()]+::</SEQ_REGEXP>
30
31                 <!-- smileys -->
32                 <!-- not on by default because it slows things down a bit
33                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\)\s</SEQ_REGEXP>
34                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\sB\)\s</SEQ_REGEXP>
35                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\)\)\s</SEQ_REGEXP>
36                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\;\)\s</SEQ_REGEXP>
37                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:D\s</SEQ_REGEXP>
38                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\%lt;\:\(\s</SEQ_REGEXP>
39                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\sX\-\(\s</SEQ_REGEXP>
40                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:o\s</SEQ_REGEXP>
41                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\(\s</SEQ_REGEXP>
42                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\/\!\\\s</SEQ_REGEXP>
43                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\%lt;\!\b\s</SEQ_REGEXP>
44                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\(\!\)\s</SEQ_REGEXP>
45                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\-\?\s</SEQ_REGEXP>
46                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\:\b\:\b\s</SEQ_REGEXP>
47                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\%\)\s</SEQ_REGEXP>
48                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\@\)\s</SEQ_REGEXP>
49                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\|\)\s</SEQ_REGEXP>
50                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\;\)\)\s</SEQ_REGEXP>
51                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\(\.\/\)\s</SEQ_REGEXP>
52                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{OK\}\s</SEQ_REGEXP>
53                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{X\}\s</SEQ_REGEXP>
54                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{i\}\s</SEQ_REGEXP>
55                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{1\}\s</SEQ_REGEXP>
56                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{2\}\s</SEQ_REGEXP>
57                 <SEQ_REGEXP HASH_CHAR=' ' AT_LINE_START='FALSE' TYPE="LITERAL3">\s\{3\}\s</SEQ_REGEXP>
58                 -->
59
60                 <!-- code or literal -->
61                 <SPAN TYPE="LITERAL2">
62                         <BEGIN>{{{</BEGIN>
63                         <END>}}}</END>
64                 </SPAN>
65
66                 <!-- code or literal -->
67                 <SPAN TYPE="LITERAL2" ESCAPE="\">
68                         <BEGIN>`</BEGIN>
69                         <END>`</END>
70                 </SPAN>
71
72                 <!-- bold or italic -->
73                 <SEQ_REGEXP
74                         HASH_CHAR="''"
75                         TYPE="LITERAL1"
76                 >('{2,5})[^']+\1[^']</SEQ_REGEXP>
77
78                 <!-- horizontal rule -->
79                 <SEQ_REGEXP
80                         HASH_CHAR="----"
81                         TYPE="LITERAL4"
82                 >-{4,}</SEQ_REGEXP>
83
84                 <!-- section header -->
85                 <SPAN_REGEXP
86                         HASH_CHAR="="
87                         TYPE="KEYWORD1"
88                         AT_LINE_START="TRUE"
89                 >
90                         <BEGIN>(={1,5}) </BEGIN>
91                         <END> $1</END>
92                 </SPAN_REGEXP>
93
94                 <!-- implicit WikiWords - a bit of a hack, but I can't think of a better way... -->
95                 <SEQ_REGEXP HASH_CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZ" AT_WORD_START="TRUE" TYPE="KEYWORD2">[A-Z][a-z]+[A-Z][a-zA-Z]+</SEQ_REGEXP>
96
97                 <!-- explicit WikiWord -->
98                 <SPAN TYPE="KEYWORD2">
99                         <BEGIN>[&quot;</BEGIN>
100                         <END>&quot;]</END>
101                 </SPAN>
102
103                 <!-- url -->
104                 <SPAN TYPE="KEYWORD3">
105                         <BEGIN>[</BEGIN>
106                         <END>]</END>
107                 </SPAN>
108
109         </RULES>
110 </MODE>
111