# Define SciTE settings for Erlang files.

# M: Erlang M-Files
file.patterns.erlang=*.erl;*.hrl

# M: Erlang M-Files
filter.erlang=Erlang (erl hrl)|$(file.patterns.erlang)|

lexer.$(file.patterns.erlang)=erlang

# Reserved Erlang words
keywords.$(file.patterns.erlang)=after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xor
# Erlang built-in functions (BIFs)
keywords2.$(file.patterns.erlang)=erlang: abs adler32 adler32_combine erlang:append_element apply atom_to_binary atom_to_list binary_to_atom binary_to_existing_atom binary_to_list bitstring_to_list binary_to_term bit_size erlang:bump_reductions byte_size erlang:cancel_timer check_process_code concat_binary crc32 crc32_combine date decode_packet delete_module erlang:demonitor disconnect_node erlang:display element erase erlang:error exit float float_to_list erlang:fun_info erlang:fun_to_list erlang:function_exported garbage_collect get erlang:get_cookie get_keys erlang:get_stacktrace group_leader halt erlang:hash hd erlang:hibernate integer_to_list erlang:integer_to_list iolist_to_binary iolist_size is_alive is_atom is_binary is_bitstring is_boolean erlang:is_builtin is_float is_function is_integer is_list is_number is_pid is_port is_process_alive is_record is_reference is_tuple length link list_to_atom list_to_binary list_to_bitstring list_to_existing_atom list_to_float list_to_integer erlang:list_to_integer list_to_pid list_to_tuple load_module erlang:load_nif erlang:loaded erlang:localtime erlang:localtime_to_universaltime make_ref erlang:make_tuple erlang:max erlang:md5 erlang:md5_final erlang:md5_init erlang:md5_update erlang:memory erlang:min module_loaded erlang:monitor monitor_node node nodes now open_port erlang:phash erlang:phash2 pid_to_list port_close port_command erlang:port_command port_connect port_control erlang:port_call erlang:port_info erlang:port_to_list erlang:ports pre_loaded erlang:process_display process_flag process_info processes purge_module put erlang:raise erlang:read_timer erlang:ref_to_list register registered erlang:resume_process round self erlang:send erlang:send_after erlang:send_nosuspend erlang:set_cookie setelement size spawn spawn_link spawn_monitor spawn_opt split_binary erlang:start_timer statistics erlang:suspend_process erlang:system_flag erlang:system_info erlang:system_monitor erlang:system_profile term_to_binary throw time tl erlang:trace erlang:trace_delivered erlang:trace_info erlang:trace_pattern trunc tuple_size tuple_to_list erlang:universaltime erlang:universaltime_to_localtime unlink unregister whereis erlang:yield
# Erlang preprocessor instructions
keywords3.$(file.patterns.erlang)=-define -else -endif -ifdef -ifndef -include -include_lib -undef
# Erlang module attributes
keywords4.$(file.patterns.erlang)=-behavior -behaviour -compile -created -created_by -export -file -import -module -modified -modified_by -record -revision -spec -type -vsn
# Erlang documentation helpers
keywords5.$(file.patterns.erlang)=@author @clear @copyright @deprecated @doc @docfile @end @equiv @headerfile @hidden @private @reference @see @since @spec @throws @title @todo @TODO @type @version
# Erlang documentation macros
keywords6.$(file.patterns.erlang)=@date @docRoot @link @module @package @section @time @type @version

# Comment start
comment.block.erlang=%~

# Erlang styles
# foreground;background;bold;italic

# Default style
style.erlang.0=fore:#000000

# Comments
#---------------------------
# Default comment
style.erlang.1=fore:#d00000
# Function comment
style.erlang.14=fore:#3f5fbf
# Module comment
style.erlang.15=fore:#3f5fbf
# Documentation helper in comment
style.erlang.16=fore:#3f5fbf,bold
# Documentation macro in comment
style.erlang.17=fore:#3f5fbf,bold,italics

# Types
#---------------------------
# Variable
style.erlang.2=fore:#7f0000
# Number
style.erlang.3=fore:#007f00
# String
style.erlang.5=fore:#ff901e
# Character
style.erlang.9=fore:#007f00
# Macro
style.erlang.10=fore:#7f007f
# Macro quoted
style.erlang.19=fore:#7f007f
# Record
style.erlang.11=fore:#7f7f00,bold
# Record quoted
style.erlang.20=fore:#7f7f00,bold
# Atom
style.erlang.7=fore:#7f7f00
# Atom quoted
style.erlang.18=fore:#7f7f00
# Node name
style.erlang.13=fore:#007f7f
# Node name quoted
style.erlang.21=fore:#007f7f

# Special
#---------------------------
# Reserved words
style.erlang.4=fore:#00007f,bold
# Built-in functions
style.erlang.22=fore:#0000ff,bold
# Function name
style.erlang.8=fore:#00007f
# Module name
style.erlang.23=fore:#00cccc
# Module attributes
style.erlang.24=fore:#007f7f
# Preprocessor
style.erlang.12=fore:#007f7f
# Operators
style.erlang.6=fore:#000000
