diff options
Diffstat (limited to 'misc/syntax/erlang.syntax')
-rw-r--r-- | misc/syntax/erlang.syntax | 299 |
1 files changed, 299 insertions, 0 deletions
diff --git a/misc/syntax/erlang.syntax b/misc/syntax/erlang.syntax new file mode 100644 index 0000000..cfed3ce --- /dev/null +++ b/misc/syntax/erlang.syntax @@ -0,0 +1,299 @@ +# ------------------------------- +# +# Erlang programming language syntax highlighting +# for CoolEdit +# +# Homepage of Erlang: http://www.erlang.org +# +# Author: Witold Baryluk < baryluk at smp if uj edu pl > +# Date: 07-07-2009, 08-02-2009 +# +# ------------------------------- +# +# Useful links: +# http://www.erlang.org/doc/doc-5.4.13/doc/reference_manual/part_frame.html +# http://www.erlang.org/doc/reference_manual/data_types.html#2.14 +# http://www.regular-expressions.info/reference.html +# gedit: http://martin.ankerl.com/files/erlang.lang +# joe: http://www.straatinvestments.com/~tlack/erlang/joe-editor/erlang.jsf +# geshi: http://www.kreisquadratur.de/blog/?p=305 +# vim: http://erlang.org/pipermail/erlang-questions/2006-July/021362.html +# kate: http://bugsfiles.kde.org/attachment.cgi?id=21155 +# +# entries for Syntax file: +# +# file ..\*\\.erl$ Erlang\sProgram (-module\\(|#!.*escript) +# include erlang.syntax +# +# file ..\*\\.hrl$ Erlang\sHeader -record\\( +# include erlang.syntax + +context default + keyword whole after yellow + keyword whole and brown + keyword whole andalso brown + keyword whole band brown + keyword whole begin yellow + keyword whole bnot brown + keyword whole bor brown + keyword whole bsl brown + keyword whole bsr brown + keyword whole bxor brown + keyword whole case yellow + keyword whole catch yellow + keyword whole cond yellow + keyword whole div brown + keyword whole end yellow + keyword whole fun yellow + keyword whole if yellow + keyword whole let yellow + keyword whole not brown + keyword whole of yellow + keyword whole or brown + keyword whole orelse brown + keyword whole query yellow + keyword whole receive yellow + keyword whole rem brown + keyword whole try yellow + keyword whole throw yellow + keyword whole xor brown + + keyword whole when yellow + + keyword whole -module brightmagenta + keyword whole -compile brightmagenta + keyword whole -behaviour brightmagenta + keyword whole -record brightmagenta + keyword whole -define brightmagenta + keyword whole -include brightmagenta + keyword whole -include_lib brightmagenta + keyword whole -vsn magenta + keyword whole -author magenta + keyword whole -copyright magenta + keyword whole -export brightmagenta + keyword whole -\{abcdefghijklmnoprqstuvwxyz\}\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTVWXYZ0123456789_\] red + +# erlang:* + keyword whole abs brightgreen + keyword whole accept brightgreen + keyword whole alarm brightgreen + keyword whole apply brightgreen + keyword whole atom_to_list brightgreen + keyword whole binary_to_list brightgreen + keyword whole binary_to_term brightgreen + keyword whole check_process_code brightgreen + keyword whole concat_binary brightgreen + keyword whole date brightgreen + keyword whole delete_module brightgreen + keyword whole disconnect_node brightgreen + keyword whole element brightgreen + keyword whole erase brightgreen + keyword whole exit brightgreen + keyword whole float brightgreen + keyword whole float_to_list brightgreen + keyword whole garbage_collect brightgreen + keyword whole get brightgreen + keyword whole get_keys brightgreen + keyword whole group_leader brightgreen + keyword whole halt brightgreen + keyword whole hd brightgreen + keyword whole integer_to_list brightgreen + keyword whole is_alive brightgreen + keyword whole is_atom brightgreen + keyword whole is_binary brightgreen + keyword whole is_boolean brightgreen + keyword whole is_float brightgreen + keyword whole is_function brightgreen + keyword whole is_integer brightgreen + keyword whole is_list brightgreen + keyword whole is_number brightgreen + keyword whole is_pid brightgreen + keyword whole is_port brightgreen + keyword whole is_process_alive brightgreen + keyword whole is_record brightgreen + keyword whole is_reference brightgreen + keyword whole is_tuple brightgreen + keyword whole length brightgreen + keyword whole link brightgreen + keyword whole list_to_atom brightgreen + keyword whole list_to_binary brightgreen + keyword whole list_to_float brightgreen + keyword whole list_to_integer brightgreen + keyword whole list_to_pid brightgreen + keyword whole list_to_tuple brightgreen + keyword whole load_module brightgreen + keyword whole loaded brightgreen + keyword whole localtime brightgreen + keyword whole make_ref brightgreen + keyword whole module_loaded brightgreen + keyword whole node brightgreen + keyword whole nodes brightgreen + keyword whole now brightgreen + keyword whole open_port brightgreen + keyword whole pid_to_list brightgreen + keyword whole port_close brightgreen + keyword whole port_command brightgreen + keyword whole port_connect brightgreen + keyword whole port_control brightgreen + keyword whole ports brightgreen + keyword whole pre_loaded brightgreen + keyword whole process_flag brightgreen + keyword whole process_info brightgreen + keyword whole processes brightgreen + keyword whole purge_module brightgreen + keyword whole put brightgreen + keyword whole register brightgreen + keyword whole registered brightgreen + keyword whole round brightgreen + keyword whole self brightgreen + keyword whole setelement brightgreen + keyword whole size brightgreen + keyword whole spawn brightgreen + keyword whole spawn_link brightgreen + keyword whole spawn_opt brightgreen + keyword whole split_binary brightgreen + keyword whole statistics brightgreen + keyword whole term_to_binary brightgreen + keyword whole throw brightgreen + keyword whole time brightgreen + keyword whole tl brightgreen + keyword whole trunc brightgreen + keyword whole tuple_to_list brightgreen + keyword whole unlink brightgreen + keyword whole unregister brightgreen + keyword whole whereis brightgreen + + keyword whole gen_server:cast brightgreen + keyword whole gen_server:call brightgreen + keyword whole gen_server:reply brightgreen + keyword whole gen_server:start_link brightgreen + keyword whole gen_server:start brightgreen + keyword whole io:format brightgreen + + keyword whole init white + keyword whole handle_cast white + keyword whole handle_call white + keyword whole handle_info white + keyword whole handle_event white + keyword whole handle_sync_event white + keyword whole terminate white + keyword whole code_change white + +# list comprehension + keyword <- yellow +# clause + keyword -> yellow +# guards + keyword =:= brown + keyword == brown + keyword /= brown + keyword =/= brown +# binary + keyword << brightcyan + keyword >> brightcyan +# guards + keyword < brown + keyword =< brown + keyword >= brown + keyword > brown +# ops + keyword - yellow + keyword \+ yellow + keyword / yellow + keyword \* yellow + + keyword ; brightcyan + keyword , brightcyan + keyword . brightcyan + keyword = yellow + keyword % brown + + keyword \+\+ yellow + keyword -- yellow + keyword ! yellow +# TODO this does not work for $" or $', use $\" or $\' instead. ? + keyword $\{abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_{}[]()(\\/`~!@#$%^&\*+-=;:'"|,./?<>\} red + keyword $\ red + +# keyword '\\\{0123\}\{01234567\}\{01234567\}' brightgreen + +# TODO: integers, inegers of form Base#digits, 2#1010101 +# todo: records access via #state{} + + keyword whole ?MODULE red + keyword whole ?LINE red + keyword whole ?FILE red + keyword whole ?\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_@\] red + +# gray operatory +# cyan - moduly + + + keyword whole true red + keyword whole false red + + keyword [ brightcyan + keyword || brightcyan + keyword | brightcyan + keyword ] brightcyan + keyword ( brightcyan + keyword ) brightcyan + keyword { cyan + keyword } cyan + + keyword whole lists:seq gray + keyword whole lists:map gray + keyword whole lists:filter gray + keyword whole lists:reduce gray + keyword whole lists:foldl gray + keyword whole lists:foldr gray + keyword whole lists:append gray + keyword whole lists:nth gray + keyword whole behaviour_info gray + keyword whole dict:find gray + keyword whole dict:is_key gray + keyword whole dict:erase gray + keyword whole dict:new gray + keyword whole dict:map gray + keyword whole dict:store gray + keyword whole dict:fetch_keys gray + keyword whole dict:append gray + keyword whole dict:update gray + keyword whole dict:update_counter gray + keyword whole dict:fold gray + keyword whole dict:to_list gray + keyword whole dict:fetch gray + +# todo: no more than one dot in atom, and not at the end + keyword whole \{abcdefghijklmnoprqstuvwxyz\}\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_.@\] lightgray + keyword whole \{_ABCDEFGHIJKLMNOPRQSTUVWXYZ\}\[abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ0123456789_@\] white + +context exclusive % \n brown + spellcheck + +context " " green + spellcheck + keyword ~p brightgreen + keyword ~n brightgreen + keyword ~w brightgreen + keyword ~~ brightgreen + keyword \\" brightgreen + keyword \\\{0123\}\{01234567\}\{01234567\} brightgreen + keyword \\\{01234567\}\{01234567\} brightgreen + keyword \\\{01234567\} brightgreen + keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightgreen + keyword \\\\ brightgreen + keyword \\' brightgreen + keyword \\\{bdefrstv\} brightgreen + keyword \\^\{abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ\} brightgreen + +context ' ' red + keyword \\" brightred + keyword \\\{0123\}\{01234567\}\{01234567\} brightred + keyword \\\{01234567\}\{01234567\} brightred + keyword \\\{01234567\} brightred + keyword \\x\{0123456789abcdefABCDEF\}\{0123456789abcdefABCDEF\} brightred + keyword \\\\ brightred + keyword \\' brightred + keyword \\\{bdefrstv\} brightred + keyword \\^\{abcdefghijklmnoprqstuvwxyzABCDEFGHIJKLMNOPRQSTUVWXYZ\} brightred |