joe-syntax/erlang.jsf

501 lines
8.3 KiB
Plaintext
Raw Normal View History

# JOE syntax highlight file for Erlang
2015-03-03 14:44:05 +01:00
# by Christian Nicolai (http://mycrobase.de)
# with contributions from Jonas Rosling and Andrew Lisin
# TODO Handle type information ::
# TODO implement subroutines for cleaner and more correct implementation.
# TODO Probably use less colors to be less distractive.
=Idle
=Comment green
=String cyan #fg_110
=String_mod cyan bold #fg_200 bold
=String_esc cyan bold #fg_000 bold
=Int cyan #fg_033
=Record blue #fg_530
2012-07-10 16:32:40 +02:00
=Recatt
=Fun
=Module #fg_101
=Keyword bold
=Guard #fg_200
=Bif #fg_501
=Type bold #fg_141
=Brace magenta #fg_440
=Brack magenta #fg_311
=Macro #fg_330
=Variable yellow #fg_310
=Attribute red #fg_505
=Char cyan #fg_330 bold
:idle Idle
* idle
2012-07-03 14:48:49 +02:00
"A-Z_" variable noeat
"%" line_comment noeat
"\"" string recolor=-1
"'" quoted_atom mark
"0-9" decimal recolor=-1
2012-07-03 14:48:49 +02:00
"[]" brack recolor=-1
"{}" brace recolor=-1
"-" maybe_attribute buffer
2012-07-03 14:48:49 +02:00
"a-z" atom buffer mark noeat
"#" record recolor=-1
2012-07-22 21:41:03 +02:00
"$" char recolor=-1
"?" is_macro mark
"<|" lc buffer
:lc Idle
* idle noeat strings
"<-" kw
"||" kw
done
"-<|" lc
:pipe Idle
* idle noeat
"|" kw recolormark
:is_macro Idle
* macro recolormark noeat
"a-zA-Z0-9_@" is_macro
:macro Macro
* idle noeat
2012-07-22 21:41:03 +02:00
:char Char
* idle
2012-07-22 21:41:03 +02:00
"\\" charesc
2012-07-22 21:41:03 +02:00
:charesc Char
* idle
:line_comment Comment
* line_comment
2012-07-10 14:49:42 +02:00
"@" is_edoc noeat buffer
"\n" idle
2012-07-10 14:49:42 +02:00
:is_edoc Comment
* line_comment noeat strings
"@clear" edoc
"@docfile" edoc
"@headerfle" edoc
"@todo" edoc
"@TODO" edoc
"@type" edoc
"@reference" edoc
"@see" edoc
"@since" edoc
"@deprecated" edoc
"@hidden" edoc
"@private" edoc
"@equiv" edoc
"@throws" edoc
"@author" edoc
"@copyright" edoc
"@version" edoc
"@title" edoc
"@spec" edoc
"@doc" edoc
"@end" edoc
done
2012-07-21 16:30:42 +02:00
"A-Za-z@" is_edoc
2012-07-10 14:49:42 +02:00
:edoc Keyword
* line_comment noeat
:variable Variable
* idle noeat
2012-07-03 14:48:49 +02:00
"a-zA-Z0-9_" variable
2012-07-03 14:48:49 +02:00
:record Record
* idle noeat
2012-07-24 22:05:52 +02:00
"a-z" rec noeat
"'" qtrec recolor=-1
:rec Record
* idle noeat
"a-zA-Z0-9_@" rec
2012-07-03 14:48:49 +02:00
"." recatt recolor=-1
2012-07-24 22:05:52 +02:00
:qtrec Record
* qtrec
"'" rec
2012-07-03 14:48:49 +02:00
:recatt Recatt
* idle noeat
"a-zA-Z_" recatt
"#" record
2012-07-03 14:48:49 +02:00
2012-07-09 09:49:38 +02:00
# STRINGS
2012-07-03 14:48:49 +02:00
:string String
* string
2012-07-03 16:02:37 +02:00
"\\" string_escape recolor=-1
"~" string_ mark
"\"" idle
2012-07-03 16:02:37 +02:00
:string_escape String_esc
2012-07-03 14:48:49 +02:00
* string
2012-07-03 16:02:37 +02:00
:string_ String
* string_mod noeat
"0-9" string_f
"t" string_mod
:string_f String
* string_mod noeat
"0-9*" string_f
"." string_p
2012-07-03 14:48:49 +02:00
2012-07-03 16:02:37 +02:00
:string_p String
* string_mod noeat
"0-9*" string_p
:string_mod String
2012-07-09 09:49:38 +02:00
* string
"cfegswpWPBX#bx+ni" string_modifier recolormark noeat
2012-07-03 16:02:37 +02:00
2012-07-09 09:49:38 +02:00
:string_modifier String_mod
2012-07-03 16:02:37 +02:00
* string
# END STRINGS
2012-07-03 14:48:49 +02:00
:decimal Int
* idle noeat
"0-9" decimal
"." float
"#" base
2012-07-03 14:48:49 +02:00
:float Int
* idle noeat
"0-9" float
2012-07-24 22:05:52 +02:00
"Ee" eintval
:base Int
* idle noeat
2012-07-22 21:41:03 +02:00
"0-9A-Fa-f" base
:eintval Int
* eint noeat
"-" eint
:eint Int
* idle noeat
"0-9" eint
:brace Brace
* idle noeat
2012-07-03 14:48:49 +02:00
:brack Brack
* idle noeat
:maybe_attribute Idle
* idle noeat strings
"-module" attribute
"-export" attribute
2012-07-22 21:48:49 +02:00
"-import" attribute
"-compile" attribute
"-ifdef" attribute
"-endif" attribute
2012-07-22 21:48:49 +02:00
"-define" attribute
"-file" attribute
"-type" attribute
"-opaque" attribute
"-export_type" attribute
"-spec" attribute
"-author" attribute
"-copyright" attribute
"-include" attribute
"-include_lib" attribute
"-vsn" attribute
"-behaviour" attribute
2012-07-22 23:52:55 +02:00
"-behavior" attribute
"-record" attribute
2012-07-22 21:48:49 +02:00
"-on_load" attribute
2012-07-22 23:40:56 +02:00
"-connect_all" attribute
"-hidden" attribute
"-name" attribute
"-setcookie" attribute
"-sname" attribute
"-mode" attribute
done
2012-07-03 14:48:49 +02:00
"a-z_" maybe_attribute
:attribute Attribute
* idle noeat
:no_atom Idle
* idle noeat
" " no_atom
"(" function recolormark noeat
":" module recolormark noeat
"/" funarity
:module Module
* idle noeat
:function Fun
* idle noeat
:funarity Fun
* function recolormark noeat
2015-01-08 16:47:20 +01:00
"0-9" idle
:kw Keyword
* idle noeat
:guard Guard
* idle noeat
2012-07-22 23:40:56 +02:00
:rterr Guard
* idle noeat
:bif Bif
* idle recolormark noeat
" " bif
"(" idle noeat
2012-07-24 23:12:33 +02:00
:type Type
* idle recolormark noeat
"(" idle noeat
":" module recolormark noeat
:quoted_atom Idle
* quoted_atom
"'" no_atom
2012-07-24 23:12:33 +02:00
# This implementation is sort of funky.
# Most of the cases it's correct but some highlighting may be wrong.
# Should be looked over...
:atom Idle
2012-07-09 09:49:38 +02:00
* no_atom noeat strings
"after" kw
"and" kw
"andalso" kw
"band" kw
"begin" kw
"bnot" kw
"bor" kw
"bsl" kw
"bsr" kw
"bxor" kw
"case" kw
"catch" kw
"cond" kw
"div" kw
"end" kw
"fun" kw
"if" kw
"let" kw
"not" kw
"of" kw
"or" kw
"orelse" kw
"query" kw
"receive" kw
"rem" kw
"try" kw
"when" kw
"xor" kw
2012-07-24 23:12:33 +02:00
"any" type
"none" type
"pid" type
"port" type
"reference" type
"float" type
"atom" type
"binary" type
"integer" type
"list" type
"improper_list" type
"maybe_improper_list" type
"tuple" type
"term" type
"boolean" type
"byte" type
"char" type
"non_neg_integer" type
"pos_integer" type
"neg_integer" type
"number" type
"string" type
"nonempty_string" type
"iolist" type
"module" type
"mfa" type
#interfears with the bif "node" type
"timeout" type
"no_return" type
2012-07-22 23:40:56 +02:00
"badarg" rterr
"badarith" rterr
"badmatch" rterr
"function_clause" rterr
2012-07-22 23:52:55 +02:00
"case_clause" rterr
2012-07-22 23:40:56 +02:00
"if_clause" rterr
"try_clause" rterr
"undef" rterr
"badfun" rterr
"badarity" rterr
"timeout_value" rterr
"noproc" rterr
"nocatch" rterr
"system_limit" rterr
"is_atom" guard
"is_binary" guard
"is_bitstream" guard
"is_boolean" guard
"is_float" guard
"is_function" guard
"is_integer" guard
"is_list" guard
"is_number" guard
"is_pid" guard
"is_port" guard
"is_record" guard
"is_reference" guard
"is_tuple" guard
"abs" bif
"adler32" bif
"adler32_combine" bif
"append_element" bif
"apply" bif
"atom_to_binary" bif
"atom_to_list" bif
"binary_part" bif
"binary_to_atom" bif
"binary_to_existing_atom" bif
"binary_to_list" bif
"bitstring_to_list" bif
"binary_to_term" bif
"bit_size" bif
"bump_reductions" bif
"byte_size" bif
"cancel_timer" bif
"check_old_code" bif
"check_process_code" bif
"crc32" bif
"crc32_combine" bif
"date" bif
"decode_packet" bif
"delete_module" bif
"demonitor" bif
"disconnect_node" bif
"display" bif
"element" bif
"erase" bif
"error" bif
"exit" bif
"external_size" bif
"float" bif
"float_to_list" bif
"fun_info" bif
"fun_to_list" bif
"function_exported" bif
"garbage_collect" bif
"get" bif
"get_cookie" bif
"get_keys" bif
"get_stacktrace" bif
"group_leader" bif
"halt" bif
"hash" bif
"hd" bif
"hibernate" bif
"integer_to_list" bif
"iolist_to_binary" bif
"iolist_size" bif
"is_alive" bif
"is_builtin" bif
"is_process_alive" bif
"length" bif
"link" bif
"list_to_atom" bif
"list_to_binary" bif
"list_to_bitstring" bif
"list_to_existing_atom" bif
"list_to_float" bif
"list_to_integer" bif
"list_to_pid" bif
"list_to_tuple" bif
"load_module" bif
"load_nif" bif
"loaded" bif
"local_time" bif
"local_time_to_universaltime" bif
"make_ref" bif
"make_tuple" bif
"max" bif
"md5" bif
"md5_final" bif
"md5_init" bif
"md5_update" bif
"memory" bif
"min" bif
"module_loaded" bif
"monitor" bif
"monitor_node" bif
"nif_error" bif
"node" bif
"nodes" bif
"now" bif
"open_port" bif
"phash" bif
"phash2" bif
"pid_to_list" bif
"port_close" bif
"port_command" bif
"port_connect" bif
"port_control" bif
"port_call" bif
"port_info" bif
"port_to_list" bif
"ports" bif
"pre_loaded" bif
"process_display" bif
"process_flag" bif
"process_info" bif
"processes" bif
"purge_module" bif
"put" bif
"raise" bif
"read_timer" bif
"ref_to_list" bif
"register" bif
"registered" bif
"resume_process" bif
"round" bif
"self" bif
"send" bif
"send_after" bif
"send_nosuspend" bif
"set_cookie" bif
"setelement" bif
"size" bif
"spawn" bif
"spawn_link" bif
"spawn_monitor" bif
"spawn_opt" bif
"split_binary" bif
"start_timer" bif
"statistics" bif
"suspended_process" bif
"system_flag" bif
"system_info" bif
"system_monitor" bif
"system_profile" bif
"term_to_binary" bif
"throw" bif
"time" bif
"tl" bif
"trace" bif
"trace_deliviered" bif
"trace_info" bif
"trace_pattern" bif
"trunc" bif
"tuple_size" bif
"tuple_to_list" bif
"universaltime" bif
"universaltime_to_localtime" bif
"unlink" bif
"unregister" bif
"whereis" bif
"yield" bif
2012-07-03 14:48:49 +02:00
done
2012-07-09 09:49:38 +02:00
"a-zA-Z0-9_@" atom