Updated doc/NEWS file
[midnight-commander.git] / misc / syntax / erlang.syntax
blobc771fa76f57fc1e99c9348315e95ef0d4a711311
1 # -------------------------------
3 # Erlang programming language syntax highlighting
4 # for CoolEdit
6 # Homepage of Erlang: http://www.erlang.org
8 # Author: Witold Baryluk < baryluk at smp if uj edu pl >
9 # Date: 07-07-2009, 08-02-2009
11 # -------------------------------
13 # Usefull links:
14 # http://www.erlang.org/doc/doc-5.4.13/doc/reference_manual/part_frame.html
15 # http://www.erlang.org/doc/reference_manual/data_types.html#2.14
16 # http://www.regular-expressions.info/reference.html
17 # gedit: http://martin.ankerl.com/files/erlang.lang
18 # joe: http://www.straatinvestments.com/~tlack/erlang/joe-editor/erlang.jsf
19 # geshi: http://www.kreisquadratur.de/blog/?p=305
20 # vim: http://erlang.org/pipermail/erlang-questions/2006-July/021362.html
21 # kate: http://bugsfiles.kde.org/attachment.cgi?id=21155
23 # entries for Syntax file:
25 # file ..\*\\.erl$ Erlang\sProgram (-module\\(|#!.*escript)
26 # include erlang.syntax
28 # file ..\*\\.hrl$ Erlang\sHeader -record\\(
29 # include erlang.syntax
31 context default
32     keyword whole after yellow
33     keyword whole and brown
34     keyword whole andalso brown
35     keyword whole band brown
36     keyword whole begin yellow
37     keyword whole bnot brown
38     keyword whole bor brown
39     keyword whole bsl brown
40     keyword whole bsr brown
41     keyword whole bxor brown
42     keyword whole case yellow
43     keyword whole catch yellow
44     keyword whole cond yellow
45     keyword whole div brown
46     keyword whole end yellow
47     keyword whole fun yellow
48     keyword whole if yellow
49     keyword whole let yellow
50     keyword whole not brown
51     keyword whole of yellow
52     keyword whole or brown
53     keyword whole orelse brown
54     keyword whole query yellow
55     keyword whole receive yellow
56     keyword whole rem brown
57     keyword whole try yellow
58     keyword whole throw yellow
59     keyword whole xor brown
61     keyword whole when yellow
63     keyword whole -module brightmagenta
64     keyword whole -compile brightmagenta
65     keyword whole -behaviour brightmagenta
66     keyword whole -record brightmagenta
67     keyword whole -define brightmagenta
68     keyword whole -include brightmagenta
69     keyword whole -include_lib brightmagenta
70     keyword whole -vsn magenta
71     keyword whole -author magenta
72     keyword whole -copyright magenta
73     keyword whole -export brightmagenta
74     keyword whole -\{abcdefghijklmnoprqstuvwxyz\}\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTVWXYZ0123456789_\] red
76 # erlang:*
77     keyword whole abs brightgreen
78     keyword whole accept brightgreen
79     keyword whole alarm brightgreen
80     keyword whole apply brightgreen
81     keyword whole atom_to_list brightgreen
82     keyword whole binary_to_list brightgreen
83     keyword whole binary_to_term brightgreen
84     keyword whole check_process_code brightgreen
85     keyword whole concat_binary brightgreen
86     keyword whole date brightgreen
87     keyword whole delete_module brightgreen
88     keyword whole disconnect_node brightgreen
89     keyword whole element brightgreen
90     keyword whole erase brightgreen
91     keyword whole exit brightgreen
92     keyword whole float brightgreen
93     keyword whole float_to_list brightgreen
94     keyword whole garbage_collect brightgreen
95     keyword whole get brightgreen
96     keyword whole get_keys brightgreen
97     keyword whole group_leader brightgreen
98     keyword whole halt brightgreen
99     keyword whole hd brightgreen
100     keyword whole integer_to_list brightgreen
101     keyword whole is_alive brightgreen
102     keyword whole is_atom brightgreen
103     keyword whole is_binary brightgreen
104     keyword whole is_boolean brightgreen
105     keyword whole is_float brightgreen
106     keyword whole is_function brightgreen
107     keyword whole is_integer brightgreen
108     keyword whole is_list brightgreen
109     keyword whole is_number brightgreen
110     keyword whole is_pid brightgreen
111     keyword whole is_port brightgreen
112     keyword whole is_process_alive brightgreen
113     keyword whole is_record brightgreen
114     keyword whole is_reference brightgreen
115     keyword whole is_tuple brightgreen
116     keyword whole length brightgreen
117     keyword whole link brightgreen
118     keyword whole list_to_atom brightgreen
119     keyword whole list_to_binary brightgreen
120     keyword whole list_to_float brightgreen
121     keyword whole list_to_integer brightgreen
122     keyword whole list_to_pid brightgreen
123     keyword whole list_to_tuple brightgreen
124     keyword whole load_module brightgreen
125     keyword whole loaded brightgreen
126     keyword whole localtime brightgreen
127     keyword whole make_ref brightgreen
128     keyword whole module_loaded brightgreen
129     keyword whole node brightgreen
130     keyword whole nodes brightgreen
131     keyword whole now brightgreen
132     keyword whole open_port brightgreen
133     keyword whole pid_to_list brightgreen
134     keyword whole port_close brightgreen
135     keyword whole port_command brightgreen
136     keyword whole port_connect brightgreen
137     keyword whole port_control brightgreen
138     keyword whole ports brightgreen
139     keyword whole pre_loaded brightgreen
140     keyword whole process_flag brightgreen
141     keyword whole process_info brightgreen
142     keyword whole processes brightgreen
143     keyword whole purge_module brightgreen
144     keyword whole put brightgreen
145     keyword whole register brightgreen
146     keyword whole registered brightgreen
147     keyword whole round brightgreen
148     keyword whole self brightgreen
149     keyword whole setelement brightgreen
150     keyword whole size brightgreen
151     keyword whole spawn brightgreen
152     keyword whole spawn_link brightgreen
153     keyword whole spawn_opt brightgreen
154     keyword whole split_binary brightgreen
155     keyword whole statistics brightgreen
156     keyword whole term_to_binary brightgreen
157     keyword whole throw brightgreen
158     keyword whole time brightgreen
159     keyword whole tl brightgreen
160     keyword whole trunc brightgreen
161     keyword whole tuple_to_list brightgreen
162     keyword whole unlink brightgreen
163     keyword whole unregister brightgreen
164     keyword whole whereis brightgreen
166     keyword whole gen_server:cast brightgreen
167     keyword whole gen_server:call brightgreen
168     keyword whole gen_server:reply brightgreen
169     keyword whole gen_server:start_link brightgreen
170     keyword whole gen_server:start brightgreen
171     keyword whole io:format brightgreen
173     keyword whole init white
174     keyword whole handle_cast white
175     keyword whole handle_call white
176     keyword whole handle_info white
177     keyword whole handle_event white
178     keyword whole handle_sync_event white
179     keyword whole terminate white
180     keyword whole code_change white
182 # list comprehension
183     keyword <- yellow
184 # clause
185     keyword -> yellow
186 # guards
187     keyword =:= brown
188     keyword == brown
189     keyword /= brown
190     keyword =/= brown
191 # binary
192     keyword << brightcyan
193     keyword >> brightcyan
194 # guards
195     keyword < brown
196     keyword =< brown
197     keyword >= brown
198     keyword > brown
199 # ops
200     keyword - yellow
201     keyword \+ yellow
202     keyword / yellow
203     keyword \* yellow
205     keyword ; brightcyan
206     keyword , brightcyan
207     keyword . brightcyan
208     keyword = yellow
209     keyword % brown
211     keyword \+\+ yellow
212     keyword -- yellow
213     keyword ! yellow
214 # TODO this does not work for $" or $', use $\" or $\' instead. ?
215     keyword $\{abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_{}[]()(\\/`~!@#$%^&\*+-=;:'"|,./?<>\} red
216     keyword $\ red
218 #    keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen
220 # TODO: integers, inegers of form Base#digits, 2#1010101
221 # todo: records access via #state{}
223     keyword whole ?MODULE red
224     keyword whole ?LINE red
225     keyword whole ?FILE red
226     keyword whole ?\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_@\] red
228 # gray operatory
229 # cyan - moduly
232     keyword whole true red
233     keyword whole false red
235     keyword [ brightcyan
236     keyword || brightcyan
237     keyword | brightcyan
238     keyword ] brightcyan
239     keyword ( brightcyan
240     keyword ) brightcyan
241     keyword { cyan
242     keyword } cyan
244     keyword whole lists:seq gray
245     keyword whole lists:map gray
246     keyword whole lists:filter gray
247     keyword whole lists:reduce gray
248     keyword whole lists:foldl gray
249     keyword whole lists:foldr gray
250     keyword whole lists:append gray
251     keyword whole lists:nth gray
252     keyword whole behaviour_info gray
253     keyword whole dict:find gray
254     keyword whole dict:is_key gray
255     keyword whole dict:erase gray
256     keyword whole dict:new gray
257     keyword whole dict:map gray
258     keyword whole dict:store gray
259     keyword whole dict:fetch_keys gray
260     keyword whole dict:append gray
261     keyword whole dict:update gray
262     keyword whole dict:update_counter gray
263     keyword whole dict:fold gray
264     keyword whole dict:to_list gray
265     keyword whole dict:fetch gray
267 # todo: no more than one dot in atom, and not at the end
268     keyword whole \{abcdefghijklmnoprqstuvwxyz\}\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_.@\] lightgray
269     keyword whole \{_ABCDEFGHIJKLMNOPRQSTUVWXYZ\}\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_@\] white
271 context exclusive % \n brown
272     spellcheck
274 context " " green
275     spellcheck
276     keyword ~p brightgreen
277     keyword ~n brightgreen
278     keyword ~w brightgreen
279     keyword ~~ brightgreen
280     keyword \\" brightgreen
281     keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen
282     keyword \\\{01234567\}\{01234567\} brightgreen
283     keyword \\\{01234567\} brightgreen
284     keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightgreen
285     keyword \\\\ brightgreen
286     keyword \\' brightgreen
287     keyword \\\{bdefrstv\} brightgreen
288     keyword \\^\{abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ\} brightgreen
290 context ' ' red
291     keyword \\" brightred
292     keyword \\\{0123\}\{01234567\}\{01234567\} brightred
293     keyword \\\{01234567\}\{01234567\} brightred
294     keyword \\\{01234567\} brightred
295     keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightred
296     keyword \\\\ brightred
297     keyword \\' brightred
298     keyword \\\{bdefrstv\} brightred
299     keyword \\^\{abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ\} brightred