]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/ical.xml
xmode.modes: updating with recent xmode files
[factor.git] / basis / xmode / modes / ical.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <!-- iCalendar mode by Victor Engmark <victor.engmark@gmail.com> -->\r
6 \r
7 <MODE>\r
8         <PROPS>\r
9                 <PROPERTY NAME="lineComment" VALUE="COMMENT"/>\r
10 \r
11                 <PROPERTY NAME="wordBreakChars" VALUE=",;:=+/?^*&amp;"/>\r
12 \r
13                 <!-- Indentation -->\r
14                 <PROPERTY NAME="maxLineLen" VALUE="75"/>\r
15                 <PROPERTY NAME="wrap" VALUE="hard"/>\r
16                 <PROPERTY NAME="indentSize" VALUE="1"/>\r
17 \r
18                 <!-- Use single space instead of tabs -->\r
19                 <PROPERTY NAME="noTabs" VALUE="1"/>\r
20                 <PROPERTY NAME="tabSize" VALUE="1"/>\r
21         </PROPS>\r
22         \r
23         <!-- General rules -->\r
24         <RULES IGNORE_CASE="FALSE">\r
25                 <SPAN AT_LINE_START="TRUE" DELEGATE="VCALENDAR" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
26                         <BEGIN>BEGIN:VCALENDAR</BEGIN>\r
27                         <END>END:VCALENDAR</END>\r
28                 </SPAN>\r
29         </RULES>\r
30 \r
31         <!-- Entire calendar -->\r
32         <RULES SET="VCALENDAR" IGNORE_CASE="FALSE">\r
33                 <!-- Time zone settings -->\r
34                 <SPAN AT_LINE_START="TRUE" DELEGATE="VTIMEZONE" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
35                         <BEGIN>BEGIN:VTIMEZONE</BEGIN>\r
36                         <END>END:VTIMEZONE</END>\r
37                 </SPAN>\r
38 \r
39                 <!-- Event -->\r
40                 <SPAN AT_LINE_START="TRUE" DELEGATE="VEVENT" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
41                         <BEGIN>BEGIN:VEVENT</BEGIN>\r
42                         <END>END:VEVENT</END>\r
43                 </SPAN>\r
44 \r
45                 <!-- TODO (treated like event for now) -->\r
46                 <SPAN AT_LINE_START="TRUE" DELEGATE="VEVENT" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
47                         <BEGIN>BEGIN:VTODO</BEGIN>\r
48                         <END>END:VTODO</END>\r
49                 </SPAN>\r
50 \r
51                 <!-- Journal (treated like event for now) -->\r
52                 <SPAN AT_LINE_START="TRUE" DELEGATE="VEVENT" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
53                         <BEGIN>BEGIN:VJOURNAL</BEGIN>\r
54                         <END>END:VJOURNAL</END>\r
55                 </SPAN>\r
56 \r
57                 <KEYWORDS>\r
58                         <KEYWORD2>CALSCALE</KEYWORD2>\r
59                         <LITERAL2>GREGORIAN</LITERAL2>\r
60                         <KEYWORD2>METHOD</KEYWORD2>\r
61                         <KEYWORD2>PRODID</KEYWORD2>\r
62                         <KEYWORD2>VERSION</KEYWORD2>\r
63                         <LITERAL2>2.0</LITERAL2>\r
64                 </KEYWORDS>\r
65         </RULES>\r
66 \r
67         <!-- Time zone settings -->\r
68         <RULES SET="VTIMEZONE" IGNORE_CASE="FALSE">\r
69                 <!-- Daylight savings settings -->\r
70                 <SPAN AT_LINE_START="TRUE" DELEGATE="DAYLIGHT" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
71                         <BEGIN>BEGIN:DAYLIGHT</BEGIN>\r
72                         <END>END:DAYLIGHT</END>\r
73                 </SPAN>\r
74 \r
75                 <!-- Time zone standard settings -->\r
76                 <SPAN AT_LINE_START="TRUE" DELEGATE="STANDARD" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
77                         <BEGIN>BEGIN:STANDARD</BEGIN>\r
78                         <END>END:STANDARD</END>\r
79                 </SPAN>\r
80 \r
81                 <IMPORT DELEGATE="CUSTOM_KEYWORDS"/>\r
82 \r
83                 <KEYWORDS>\r
84                         <KEYWORD2>TZID</KEYWORD2>\r
85                 </KEYWORDS>\r
86         </RULES>\r
87 \r
88         <!-- Daylight savings settings -->\r
89         <RULES SET="DAYLIGHT" IGNORE_CASE="FALSE">\r
90                 <IMPORT DELEGATE="VCALENDAR_KEYWORDS"/>\r
91                 <IMPORT DELEGATE="VTIMEZONE_KEYWORDS"/>\r
92         </RULES>\r
93 \r
94         <!-- Time zone standard settings -->\r
95         <RULES SET="STANDARD" IGNORE_CASE="FALSE">\r
96                 <IMPORT DELEGATE="VCALENDAR_KEYWORDS"/>\r
97                 <IMPORT DELEGATE="VTIMEZONE_KEYWORDS"/>\r
98         </RULES>\r
99         \r
100         <!-- Event -->\r
101         <RULES SET="VEVENT" IGNORE_CASE="FALSE">\r
102                 <!-- Alarm -->\r
103                 <SPAN AT_LINE_START="TRUE" DELEGATE="VALARM" NO_LINE_BREAK="FALSE" MATCH_TYPE="KEYWORD1">\r
104                         <BEGIN>BEGIN:VALARM</BEGIN>\r
105                         <END>END:VALARM</END>\r
106                 </SPAN>\r
107 \r
108                 <IMPORT DELEGATE="VCALENDAR_KEYWORDS"/>\r
109                 <IMPORT DELEGATE="CUSTOM_KEYWORDS"/>\r
110                 <IMPORT DELEGATE="VEVENT_KEYWORDS"/>\r
111 \r
112                 <KEYWORDS>\r
113                         <KEYWORD2>ATTENDEE</KEYWORD2>\r
114                         <KEYWORD2>CATEGORIES</KEYWORD2>\r
115                         <KEYWORD2>CLASS</KEYWORD2>\r
116                         <LITERAL2>CONFIDENTIAL</LITERAL2>\r
117                         <LITERAL2>PRIVATE</LITERAL2>\r
118                         <LITERAL2>PUBLIC</LITERAL2>\r
119                         <KEYWORD2>COMPLETED</KEYWORD2>\r
120                         <KEYWORD2>CREATED</KEYWORD2>\r
121                         <KEYWORD2>DESCRIPTION</KEYWORD2>\r
122                         <KEYWORD2>DTEND</KEYWORD2>\r
123                         <KEYWORD2>DTSTAMP</KEYWORD2>\r
124                         <KEYWORD2>DTSTART</KEYWORD2>\r
125                         <KEYWORD2>DUE</KEYWORD2>\r
126                         <KEYWORD2>LAST-MODIFIED</KEYWORD2>\r
127                         <KEYWORD2>LOCATION</KEYWORD2>\r
128                         <KEYWORD2>PERCENT-COMPLETE</KEYWORD2>\r
129                         <KEYWORD2>PRIORITY</KEYWORD2>\r
130                         <KEYWORD2>RECURRENCE-ID</KEYWORD2>\r
131                         <KEYWORD3>RSVP</KEYWORD3>\r
132                         <LITERAL3>FALSE</LITERAL3>\r
133                         <LITERAL3>TRUE</LITERAL3>\r
134                         <KEYWORD2>SEQUENCE</KEYWORD2>\r
135                         <KEYWORD2>STATUS</KEYWORD2>\r
136                         <KEYWORD2>SUMMARY</KEYWORD2>\r
137                         <KEYWORD2>TRANSP</KEYWORD2>\r
138                         <LITERAL2>OPAQUE</LITERAL2>\r
139                         <LITERAL2>TRANSPARENT</LITERAL2>\r
140                         <KEYWORD2>UID</KEYWORD2>\r
141                         <KEYWORD2>URL</KEYWORD2>\r
142                         <KEYWORD3>TZID</KEYWORD3>\r
143                 </KEYWORDS>\r
144         </RULES>\r
145 \r
146         <!-- Alarm -->\r
147         <RULES SET="VALARM" IGNORE_CASE="FALSE">\r
148                 <IMPORT DELEGATE="RIGHT"/>\r
149                 <IMPORT DELEGATE="CUSTOM_KEYWORDS"/>\r
150                 <IMPORT DELEGATE="VEVENT_KEYWORDS"/>\r
151 \r
152                 <KEYWORDS>\r
153                         <KEYWORD2>ACTION</KEYWORD2>\r
154                         <KEYWORD2>DESCRIPTION</KEYWORD2>\r
155                         <KEYWORD2>TRIGGER</KEYWORD2>\r
156                 </KEYWORDS>\r
157         </RULES>\r
158 \r
159         <!-- Colon + right side text -->\r
160         <RULES SET="RIGHT" IGNORE_CASE="FALSE">\r
161                 <EOL_SPAN AT_LINE_START="FALSE" MATCH_TYPE="OPERATOR" DELEGATE="RIGHT_TEXT">:</EOL_SPAN>\r
162         </RULES>\r
163 \r
164         <!-- Right side of the colon -->\r
165         <RULES SET="RIGHT_TEXT" IGNORE_CASE="FALSE" DEFAULT="LITERAL4">\r
166         </RULES>\r
167 \r
168         <RULES SET="VCALENDAR_KEYWORDS" IGNORE_CASE="FALSE">\r
169                 <KEYWORDS>\r
170                         <KEYWORD2>RRULE</KEYWORD2>\r
171                         <KEYWORD4>BYDAY</KEYWORD4>\r
172                         <KEYWORD4>BYMONTH</KEYWORD4>\r
173                         <KEYWORD4>FREQ</KEYWORD4>\r
174                         <KEYWORD4>INTERVAL</KEYWORD4>\r
175                         <LITERAL4>YEARLY</LITERAL4>\r
176                 </KEYWORDS>\r
177         </RULES>\r
178 \r
179         <RULES SET="VTIMEZONE_KEYWORDS" IGNORE_CASE="FALSE">\r
180                 <KEYWORDS>\r
181                         <KEYWORD2>DTSTART</KEYWORD2>\r
182                         <KEYWORD2>TZNAME</KEYWORD2>\r
183                         <KEYWORD2>TZOFFSETFROM</KEYWORD2>\r
184                         <KEYWORD2>TZOFFSETTO</KEYWORD2>\r
185                 </KEYWORDS>\r
186         </RULES>\r
187 \r
188         <RULES SET="VEVENT_KEYWORDS" IGNORE_CASE="FALSE">\r
189                 <KEYWORDS>\r
190                         <LITERAL2>CONFIRMED</LITERAL2>\r
191                         <LITERAL2>PRIVATE</LITERAL2>\r
192                         <KEYWORD3>VALUE</KEYWORD3>\r
193                         <LITERAL3>DATE</LITERAL3>\r
194                         <LITERAL3>DURATION</LITERAL3>\r
195                 </KEYWORDS>\r
196         </RULES>\r
197 \r
198         <!-- Custom keywords -->\r
199         <RULES SET="CUSTOM_KEYWORDS" IGNORE_CASE="FALSE">\r
200                 <SEQ_REGEXP HASH_CHAR="X" AT_LINE_START="TRUE" TYPE="INVALID">X-[A-Za-z-]+</SEQ_REGEXP>\r
201         </RULES>\r
202 </MODE>\r
203
204