Update runtime files.
This commit is contained in:
@ -1,229 +1,126 @@
|
||||
" Vim syntax file
|
||||
" Language: erlang (ERicsson LANGuage)
|
||||
" http://www.erlang.se
|
||||
" http://www.erlang.org
|
||||
" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
|
||||
" Former Maintainer: Kreąimir Marľić (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
|
||||
" Last update: 12-Mar-2008
|
||||
" Filenames: .erl
|
||||
" Language: Erlang
|
||||
" Author: Oscar Hellstr<74>m <oscar@oscarh.net> (http://oscar.hellstrom.st)
|
||||
" Contributors: Ricardo Catalinas Jim<69>nez <jimenezrick@gmail.com>
|
||||
" License: Vim license
|
||||
" Version: 2011/09/11
|
||||
|
||||
|
||||
" There are three sets of highlighting in here:
|
||||
" One is "erlang_characters", second is "erlang_functions" and third
|
||||
" is "erlang_keywords".
|
||||
" If you want to disable keywords highlighting, put in your .vimrc:
|
||||
" let erlang_keywords=1
|
||||
" If you want to disable erlang BIF highlighting, put in your .vimrc
|
||||
" this:
|
||||
" let erlang_functions=1
|
||||
" If you want to disable special characters highlighting, put in
|
||||
" your .vimrc:
|
||||
" let erlang_characters=1
|
||||
|
||||
|
||||
" For version 5.x: Clear all syntax items
|
||||
" For version 6.x: Quit when a syntax file was already loaded
|
||||
if version < 600
|
||||
syntax clear
|
||||
elseif exists ("b:current_syntax")
|
||||
finish
|
||||
if exists("b:current_syntax")
|
||||
finish
|
||||
else
|
||||
let b:current_syntax = "erlang"
|
||||
endif
|
||||
|
||||
if !exists("g:erlang_highlight_bif")
|
||||
let g:erlang_highlight_bif = 1
|
||||
endif
|
||||
|
||||
" Case sensitive
|
||||
" Erlang is case sensitive
|
||||
syn case match
|
||||
|
||||
" Match groups
|
||||
syn match erlangStringModifier /\\./ contained
|
||||
syn match erlangStringModifier /\~\%(-\?[0-9*]\+\)\?\%(\.[0-9*]\+\..\?\)\?\%(c\|f\|e\|g\|s\|w\|p\|W\|P\|B\|X\|#\|b\|+\|n\|i\)/ contained
|
||||
syn match erlangModifier /\$\\\?./
|
||||
|
||||
if ! exists ("erlang_characters")
|
||||
syn match erlangInteger /\<\%([0-9]\+#[0-9a-fA-F]\+\|[0-9]\+\)\>/
|
||||
syn match erlangFloat /\<[0-9]\+\.[0-9]\+\%(e-\?[0-9]\+\)\?\>/
|
||||
|
||||
" Basic elements
|
||||
syn match erlangComment "%.*$" contains=erlangAnnotation,erlangTodo
|
||||
syn match erlangAnnotation " \@<=@\%(clear\|docfile\|end\|headerfile\|todo\|TODO\|type\|author\|copyright\|doc\|reference\|see\|since\|title\|version\|deprecated\|hidden\|private\|equiv\|spec\|throws\)" contained
|
||||
syn match erlangAnnotation "`[^']*'" contained
|
||||
syn keyword erlangTodo TODO FIXME XXX contained
|
||||
syn match erlangModifier "\~\a\|\\\a\|\\\\" contained
|
||||
syn match erlangSpecialCharacter ":\|_\|@\|\\\|\"\|\."
|
||||
syn match erlangSeparator "(\|)\|{\|}\|\[\|]\||\|||\|;\|,\|?\|->\|#" contained
|
||||
syn region erlangString start=+"+ skip=+\\.+ end=+"+ contains=erlangModifier
|
||||
syn region erlangAtom start=+'+ skip=+\\'+ end=+'+
|
||||
syn keyword erlangTodo TODO FIXME XXX contained
|
||||
syn match erlangComment /%.*$/ contains=@Spell,erlangTodo,erlangAnnotation
|
||||
syn match erlangAnnotation /\%(%\s\)\@<=@\%(author\|clear\|copyright\|deprecated\|doc\|docfile\|end\|equiv\|headerfile\|hidden\|private\|reference\|see\|since\|spec\|throws\|title\|todo\|TODO\|type\|version\)/ contained
|
||||
syn match erlangAnnotation /`[^']\+'/ contained
|
||||
|
||||
" Operators
|
||||
syn match erlangOperator "+\|-\|\*\|\/"
|
||||
syn keyword erlangOperator div rem or xor bor bxor bsl bsr
|
||||
syn keyword erlangOperator and band not bnot andalso orelse
|
||||
syn match erlangOperator "==\|/=\|=:=\|=/=\|<\|=<\|>\|>="
|
||||
syn match erlangOperator "++\|--\|=\|!\|<-"
|
||||
syn keyword erlangKeyword band bor bnot bsl bsr bxor div rem xor
|
||||
syn keyword erlangKeyword try catch begin receive after cond fun let query
|
||||
|
||||
" Numbers
|
||||
syn match erlangNumberInteger "\d\+" contains=erlangSeparator
|
||||
syn match erlangNumberFloat1 "\d\+\.\d\+" contains=erlangSeparator
|
||||
syn match erlangNumberFloat2 "\d\+\(\.\d\+\)\=[eE][+-]\=\d\+\(\.\d\+\)\=" contains=erlangSeparator
|
||||
syn match erlangNumberFloat3 "\d\+[#]\x\+" contains=erlangSeparator
|
||||
syn match erlangNumberHex "$\x\+" contains=erlangSeparator
|
||||
syn keyword erlangConditional case if of end
|
||||
syn keyword erlangConditional not and or andalso orelse
|
||||
syn keyword erlangConditional when
|
||||
|
||||
" Ignore '_' and '-' in words
|
||||
syn match erlangWord "\h\+\w*"
|
||||
syn keyword erlangBoolean true false
|
||||
|
||||
syn match erlangChar /\$./
|
||||
syn keyword erlangGuard is_list is_alive is_atom is_binary is_bitstring is_boolean is_tuple is_number is_integer is_float is_function is_constant is_pid is_port is_reference is_record is_process_alive
|
||||
|
||||
syn match erlangOperator /\/\|*\|+\|-\|++\|--/
|
||||
syn match erlangOperator /->\|<-\|||\||\|!\|=/
|
||||
syn match erlangOperator /=:=\|==\|\/=\|=\/=\|<\|>\|=<\|>=/
|
||||
syn keyword erlangOperator div rem
|
||||
|
||||
syn region erlangString start=/"/ end=/"/ skip=/\\/ contains=@Spell,erlangStringModifier
|
||||
|
||||
syn match erlangVariable /\<[A-Z_]\w*\>/
|
||||
syn match erlangAtom /\%(\%(^-\)\|#\)\@<!\<[a-z][A-Za-z0-9_]*\>\%(\s*[(:]\)\@!/
|
||||
syn match erlangAtom /\\\@<!'[^']*\\\@<!'/
|
||||
|
||||
syn match erlangRecord /#\w\+/
|
||||
|
||||
syn match erlangTuple /{\|}/
|
||||
syn match erlangList /\[\|\]/
|
||||
|
||||
syn match erlangAttribute /^-\%(vsn\|author\|copyright\|compile\|deprecated\|module\|export\|import\|behaviour\|behavior\|export_type\|ignore_xref\|on_load\)\s*(\@=/
|
||||
syn match erlangInclude /^-include\%(_lib\)\?\s*(\@=/
|
||||
syn match erlangRecordDef /^-record\s*(\@=/
|
||||
syn match erlangDefine /^-\%(define\|undef\)\s*(\@=/
|
||||
syn match erlangPreCondit /^-\%(ifdef\|ifndef\|else\|endif\)\%(\s*(\@=\)\?/
|
||||
|
||||
syn match erlangType /^-\%(spec\|type\)[( ]\@=/
|
||||
|
||||
syn match erlangMacro /\%(-define(\)\@<=\w\+/
|
||||
syn match erlangMacro /?\??\w\+/
|
||||
|
||||
syn match erlangBitType /\%(\/\|-\)\@<=\%(bits\|bitstring\|binary\|integer\|float\|unit\)\>/
|
||||
syn match erlangBitSize /:\@<=[0-9]\+/
|
||||
|
||||
syn match erlangBinary /<<\|>>/
|
||||
|
||||
" BIFs
|
||||
syn match erlangBIF /\%([^:0-9A-Za-z_]\|\<erlang:\)\@<=\%(abs\|apply\|atom_to_binary\|atom_to_list\|binary_part\|binary_to_atom\|binary_to_existing_atom\|binary_to_list\|binary_to_term\|bit_size\|bitstring_to_list\|byte_size\|check_process_code\|date\|delete_module\|demonitor\|disconnect_node\|element\|erase\|exit\|float\|float_to_list\|garbage_collect\|get\|get_keys\|group_leader\|hd\|integer_to_list\|iolist_size\|iolist_to_binary\|is_alive\|is_atom\|is_binary\|is_bitstring\|is_boolean\|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\|list_to_pid\|list_to_tuple\|load_module\|make_ref\|max\|min\|module_loaded\|monitor\|monitor_node\|node\|nodes\|now\|open_port\|pid_to_list\|port_close\|port_command\|port_connect\|port_control\|pre_loaded\|processes\|process_flag\|process_info\|purge_module\|put\|register\|registered\|round\|self\|setelement\|size\|spawn\|spawn_link\|spawn_monitor\|spawn_opt\|split_binary\|statistics\|term_to_binary\|time\|tl\|trunc\|tuple_size\|tuple_to_list\|unlink\|unregister\|whereis\)\%((\|\/[0-9]\)\@=/
|
||||
syn match erlangBIF /\<\%(erlang:\)\@<=\%(append_element\|bump_reductions\|cancel_timer\|decode_packet\|display\|function_exported\|fun_info\|fun_to_list\|get_cookie\|get_stacktrace\|hash\|is_builtin\|loaded\|load_nif\|localtime\|localtime_to_universaltime\|make_tuple\|memory\|monitor_node\|phash\|port_call\|port_info\|ports\|port_to_list\|process_display\|read_timer\|ref_to_list\|resume_process\|send\|send_after\|send_nosuspend\|set_cookie\|start_timer\|suspend_process\|system_flag\|system_info\|system_monitor\|system_profile\|trace\|trace_delivered\|trace_info\|trace_pattern\|universaltime\|universaltime_to_localtime\|yield\)(\@=/
|
||||
syn match erlangGBIF /erlang\%(:\w\)\@=/
|
||||
|
||||
" Link Erlang stuff to Vim groups
|
||||
hi link erlangTodo Todo
|
||||
hi link erlangString String
|
||||
hi link erlangNoSpellString String
|
||||
hi link erlangModifier SpecialChar
|
||||
hi link erlangStringModifier SpecialChar
|
||||
hi link erlangComment Comment
|
||||
hi link erlangAnnotation Special
|
||||
hi link erlangVariable Identifier
|
||||
hi link erlangInclude Include
|
||||
hi link erlangRecordDef Keyword
|
||||
hi link erlangAttribute Keyword
|
||||
hi link erlangKeyword Keyword
|
||||
hi link erlangMacro Macro
|
||||
hi link erlangDefine Define
|
||||
hi link erlangPreCondit PreCondit
|
||||
hi link erlangPreProc PreProc
|
||||
hi link erlangDelimiter Delimiter
|
||||
hi link erlangBitDelimiter Normal
|
||||
hi link erlangOperator Operator
|
||||
hi link erlangConditional Conditional
|
||||
hi link erlangGuard Conditional
|
||||
hi link erlangBoolean Boolean
|
||||
hi link erlangAtom Constant
|
||||
hi link erlangRecord Structure
|
||||
hi link erlangInteger Number
|
||||
hi link erlangFloat Number
|
||||
hi link erlangFloat Number
|
||||
hi link erlangFloat Number
|
||||
hi link erlangFloat Number
|
||||
hi link erlangHex Number
|
||||
hi link erlangFun Keyword
|
||||
hi link erlangList Delimiter
|
||||
hi link erlangTuple Delimiter
|
||||
hi link erlangBinary Keyword
|
||||
hi link erlangBitVariable Identifier
|
||||
hi link erlangBitType Type
|
||||
hi link erlangType Type
|
||||
hi link erlangBitSize Number
|
||||
|
||||
" Optional highlighting
|
||||
if g:erlang_highlight_bif
|
||||
hi link erlangBIF Keyword
|
||||
hi link erlangGBIF Keyword
|
||||
endif
|
||||
|
||||
if ! exists ("erlang_functions")
|
||||
" Functions call
|
||||
syn match erlangFCall "\%(\w\+\s*\.\s*\)*\w\+\s*[:@]\s*\w\+"
|
||||
|
||||
" build-in-functions (BIFs)
|
||||
syn keyword erlangBIF abs alive apply atom_to_list
|
||||
syn keyword erlangBIF binary_to_list binary_to_term
|
||||
syn keyword erlangBIF concat_binary
|
||||
syn keyword erlangBIF date disconnect_node
|
||||
syn keyword erlangBIF element erase exit
|
||||
syn keyword erlangBIF float float_to_list
|
||||
syn keyword erlangBIF get get_keys group_leader
|
||||
syn keyword erlangBIF halt hd
|
||||
syn keyword erlangBIF integer_to_list is_alive
|
||||
syn keyword erlangBIF length link list_to_atom list_to_binary
|
||||
syn keyword erlangBIF list_to_float list_to_integer list_to_pid
|
||||
syn keyword erlangBIF list_to_tuple load_module
|
||||
syn keyword erlangBIF make_ref monitor_node
|
||||
syn keyword erlangBIF node nodes now
|
||||
syn keyword erlangBIF open_port
|
||||
syn keyword erlangBIF pid_to_list process_flag
|
||||
syn keyword erlangBIF process_info process put
|
||||
syn keyword erlangBIF register registered round
|
||||
syn keyword erlangBIF self setelement size spawn
|
||||
syn keyword erlangBIF spawn_link split_binary statistics
|
||||
syn keyword erlangBIF term_to_binary throw time tl trunc
|
||||
syn keyword erlangBIF tuple_to_list
|
||||
syn keyword erlangBIF unlink unregister
|
||||
syn keyword erlangBIF whereis
|
||||
|
||||
" Other BIFs
|
||||
syn keyword erlangBIF atom binary constant function integer
|
||||
syn keyword erlangBIF list number pid ports port_close port_info
|
||||
syn keyword erlangBIF reference record
|
||||
|
||||
" erlang:BIFs
|
||||
syn keyword erlangBIF check_process_code delete_module
|
||||
syn keyword erlangBIF get_cookie hash math module_loaded
|
||||
syn keyword erlangBIF preloaded processes purge_module set_cookie
|
||||
syn keyword erlangBIF set_node
|
||||
|
||||
" functions of math library
|
||||
syn keyword erlangFunction acos asin atan atan2 cos cosh exp
|
||||
syn keyword erlangFunction log log10 pi pow power sin sinh sqrt
|
||||
syn keyword erlangFunction tan tanh
|
||||
|
||||
" Other functions
|
||||
syn keyword erlangFunction call module_info parse_transform
|
||||
syn keyword erlangFunction undefined_function
|
||||
|
||||
" Modules
|
||||
syn keyword erlangModule error_handler
|
||||
endif
|
||||
|
||||
if ! exists ("erlang_keywords")
|
||||
" Constants and Directives
|
||||
syn match erlangDirective "-behaviour\|-behavior"
|
||||
syn match erlangDirective "-compile\|-define\|-else\|-endif\|-export\|-file"
|
||||
syn match erlangDirective "-ifdef\|-ifndef\|-import\|-include_lib\|-include"
|
||||
syn match erlangDirective "-module\|-record\|-undef"
|
||||
|
||||
syn match erlangConstant "-author\|-copyright\|-doc\|-vsn"
|
||||
|
||||
" Keywords
|
||||
syn keyword erlangKeyword after begin case catch
|
||||
syn keyword erlangKeyword cond end fun if
|
||||
syn keyword erlangKeyword let of query receive
|
||||
syn keyword erlangKeyword when
|
||||
syn keyword erlangKeyword try
|
||||
|
||||
" Processes
|
||||
syn keyword erlangProcess creation current_function dictionary
|
||||
syn keyword erlangProcess group_leader heap_size high initial_call
|
||||
syn keyword erlangProcess linked low memory_in_use message_queue
|
||||
syn keyword erlangProcess net_kernel node normal priority
|
||||
syn keyword erlangProcess reductions registered_name runnable
|
||||
syn keyword erlangProcess running stack_trace status timer
|
||||
syn keyword erlangProcess trap_exit waiting
|
||||
|
||||
" Ports
|
||||
syn keyword erlangPort command count_in count_out creation in
|
||||
syn keyword erlangPort in_format linked node out owner packeting
|
||||
|
||||
" Nodes
|
||||
syn keyword erlangNode atom_tables communicating creation
|
||||
syn keyword erlangNode current_gc current_reductions current_runtime
|
||||
syn keyword erlangNode current_wall_clock distribution_port
|
||||
syn keyword erlangNode entry_points error_handler friends
|
||||
syn keyword erlangNode garbage_collection magic_cookie magic_cookies
|
||||
syn keyword erlangNode module_table monitored_nodes name next_ref
|
||||
syn keyword erlangNode ports preloaded processes reductions
|
||||
syn keyword erlangNode ref_state registry runtime wall_clock
|
||||
|
||||
" Reserved
|
||||
syn keyword erlangReserved apply_lambda module_info module_lambdas
|
||||
syn keyword erlangReserved record record_index record_info
|
||||
|
||||
" Extras
|
||||
syn keyword erlangExtra badarg nocookie false fun true
|
||||
|
||||
" Signals
|
||||
syn keyword erlangSignal badsig kill killed exit normal
|
||||
endif
|
||||
|
||||
|
||||
|
||||
" Define the default highlighting.
|
||||
" For version 5.7 and earlier: only when not done already
|
||||
" For version 5.8 and later: only when an item doesn't have highlighting yet
|
||||
if version >= 508 || !exists ("did_erlang_inits")
|
||||
if version < 508
|
||||
let did_erlang_inits = 1
|
||||
command -nargs=+ HiLink hi link <args>
|
||||
else
|
||||
command -nargs=+ HiLink hi def link <args>
|
||||
endif
|
||||
|
||||
" erlang_characters
|
||||
HiLink erlangComment Comment
|
||||
HiLink erlangAnnotation Special
|
||||
HiLink erlangTodo Todo
|
||||
HiLink erlangSpecialCharacter Special
|
||||
HiLink erlangSeparator Normal
|
||||
HiLink erlangModifier Special
|
||||
HiLink erlangOperator Operator
|
||||
HiLink erlangString String
|
||||
HiLink erlangAtom Type
|
||||
|
||||
HiLink erlangNumberInteger Number
|
||||
HiLink erlangNumberFloat1 Float
|
||||
HiLink erlangNumberFloat2 Float
|
||||
HiLink erlangNumberFloat3 Float
|
||||
HiLink erlangNumberFloat4 Float
|
||||
HiLink erlangNumberHex Number
|
||||
|
||||
HiLink erlangWord Normal
|
||||
|
||||
" erlang_functions
|
||||
HiLink erlangFCall Function
|
||||
HiLink erlangBIF Function
|
||||
HiLink erlangFunction Function
|
||||
HiLink erlangModuleFunction Function
|
||||
|
||||
" erlang_keywords
|
||||
HiLink erlangDirective Type
|
||||
HiLink erlangConstant Type
|
||||
HiLink erlangKeyword Keyword
|
||||
HiLink erlangProcess Special
|
||||
HiLink erlangPort Special
|
||||
HiLink erlangNode Special
|
||||
HiLink erlangReserved Statement
|
||||
HiLink erlangExtra Statement
|
||||
HiLink erlangSignal Statement
|
||||
|
||||
delcommand HiLink
|
||||
endif
|
||||
|
||||
|
||||
let b:current_syntax = "erlang"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user