diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2013-09-17 02:02:37 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2013-09-17 02:02:37 +0200 |
commit | 0fcd056648da760f727a7296bae364ea5c4b5e98 (patch) | |
tree | b935dab5daabd233312525d6a46d0b110c971803 /syntax/erlang.vim | |
parent | 78cd7e48cb05e99fb2b87abcdc2255ac84d9833e (diff) | |
download | vim-polyglot-0fcd056648da760f727a7296bae364ea5c4b5e98.tar.gz vim-polyglot-0fcd056648da760f727a7296bae364ea5c4b5e98.zip |
fix: Switch erlang to oscarh/vimerl (it doesnt use plugin dir)
Diffstat (limited to '')
-rw-r--r-- | syntax/erlang.vim | 163 |
1 files changed, 87 insertions, 76 deletions
diff --git a/syntax/erlang.vim b/syntax/erlang.vim index 4b683edc..8b6ad624 100644 --- a/syntax/erlang.vim +++ b/syntax/erlang.vim @@ -1,35 +1,40 @@ " Vim syntax file -" Language: Erlang -" Author: Oscar Hellström <oscar@oscarh.net> (http://oscar.hellstrom.st) -" Contributors: Ricardo Catalinas Jiménez <jimenezrick@gmail.com> -" License: Vim license -" Version: 2012/05/07 - -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 +" Language: Erlang +" Maintainer: Oscar Hellström <oscar@oscarh.net> +" URL: http://oscar.hellstrom.st +" Version: 2010-08-09 +" ------------------------------------------------------------------------------ +" {{{1 +" Options: +" +" Erlang BIFs +" g:erlangHighlightBif - highlight erlang built in functions (default: off) +" +" }}} +" ----------------------------------------------------------------------------- + +" Setup {{{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 endif " Erlang is case sensitive syn case match -" Match groups +" Match groups {{{1 syn match erlangStringModifier /\\./ contained -syn match erlangStringModifier /\~\%(-\?[0-9*]\+\)\?\%(\.[0-9*]*\%(\..\?t\?\)\?\)\?\%(\~\|c\|f\|e\|g\|s\|w\|p\|W\|P\|B\|X\|#\|b\|x\|+\|n\|i\)/ 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 /\$\\\?./ syn match erlangInteger /\<\%([0-9]\+#[0-9a-fA-F]\+\|[0-9]\+\)\>/ syn match erlangFloat /\<[0-9]\+\.[0-9]\+\%(e-\?[0-9]\+\)\?\>/ 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 +syn match erlangComment /%.*$/ contains=@Spell,erlangTodo syn keyword erlangKeyword band bor bnot bsl bsr bxor div rem xor syn keyword erlangKeyword try catch begin receive after cond fun let query @@ -42,9 +47,9 @@ syn keyword erlangBoolean true false 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 match erlangOperator /\/\|*\|+\|-\|++\|--/ +syn match erlangOperator /->\|<-\|||\||\|!\|=/ +syn match erlangOperator /=:=\|==\|\/=\|=\/=\|<\|>\|=<\|>=/ syn keyword erlangOperator div rem syn region erlangString start=/"/ end=/"/ skip=/\\/ contains=@Spell,erlangStringModifier @@ -58,69 +63,75 @@ 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\|mode\)\s*(\@=/ + syn match erlangAttribute /^-\%(vsn\|author\|copyright\|compile\|deprecated\|module\|export\|import\|behaviour\|export_type\|ignore_xref\) *(\@=/ 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\|opaque\|callback\)[( ]\@=/ +syn match erlangType /^-\%(spec\|type\)[( ]\@=/ syn match erlangMacro /\%(-define(\)\@<=\w\+/ -syn match erlangMacro /?\??\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\|error\|exit\|float\|float_to_list\|garbage_collect\|get\|get_keys\|group_leader\|halt\|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\|throw\|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 def link erlangTodo Todo -hi def link erlangString String -hi def link erlangNoSpellString String -hi def link erlangModifier SpecialChar -hi def link erlangStringModifier SpecialChar -hi def link erlangComment Comment -hi def link erlangAnnotation Special -hi def link erlangVariable Identifier -hi def link erlangInclude Include -hi def link erlangRecordDef Keyword -hi def link erlangAttribute Keyword -hi def link erlangKeyword Keyword -hi def link erlangMacro Macro -hi def link erlangDefine Define -hi def link erlangPreCondit PreCondit -hi def link erlangPreProc PreProc -hi def link erlangDelimiter Delimiter -hi def link erlangBitDelimiter Normal -hi def link erlangOperator Operator -hi def link erlangConditional Conditional -hi def link erlangGuard Conditional -hi def link erlangBoolean Boolean -hi def link erlangAtom Constant -hi def link erlangRecord Structure -hi def link erlangInteger Number -hi def link erlangFloat Number -hi def link erlangFloat Number -hi def link erlangFloat Number -hi def link erlangFloat Number -hi def link erlangHex Number -hi def link erlangFun Keyword -hi def link erlangList Delimiter -hi def link erlangTuple Delimiter -hi def link erlangBinary Keyword -hi def link erlangBitVariable Identifier -hi def link erlangBitType Type -hi def link erlangType Type -hi def link erlangBitSize Number - -" Optional highlighting -if g:erlang_highlight_bif - hi def link erlangBIF Keyword - hi def link erlangGBIF Keyword +syn match erlangBinary /<<\|>>/ + +" BIFS +syn match erlangBIF /\%([^:0-9A-Za-z_]\|\<erlang:\)\@<=\%(abs\|apply\|atom_to_list\|binary_part\|binary_to_list\|binary_to_term\|binary_to_atom\|binary_to_existing_atom\|bitstring_to_list\|check_process_code\|concat_binary\|date\|delete_module\|disconnect_node\|element\|erase\|error\|exit\|float\|float_to_list\|garbage_collect\|get\|get_keys\|group_leader\|halt\|hd\|integer_to_list\|iolist_to_binary\|iolist_size\|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\|monitor_node\|node\|nodes\|now\|open_port\|pid_to_list\|port_close\|port_command\|port_connect\|port_control\|pre_loaded\|process_flag\|process_info\|processes\|purge_module\|put\|register\|registered\|round\|self\|setelement\|size\|bit_size\|byte_size\|spawn\|spawn_link\|spawn_opt\|split_binary\|statistics\|term_to_binary\|throw\|time\|tl\|trunc\|tuple_to_list\|unlink\|unregister\|whereis\)\((\|\/[0-9]\)\@=/ +syn match erlangBIF /\<\%(erlang:\)\@<=\%(append_element\|bump_reductions\|cancel_timer\|decode_packet\|demonitor\|display\|fault\|fun_info\|fun_to_list\|function_exported\|get_cookie\|get_stacktrace\|hash\|hibernate\|info\|is_builtin\|loaded\|localtime\|localtime_to_universaltime\|localtime_to_universaltime\|make_tuple\|md5\|md5_init\|md5_update\|memory\|monitor\|monitor_node\|phash\|phash2\|port_call\|port_info\|port_to_list\|ports\|process_display\|raise\|read_timer\|ref_to_list\|resume_process\|send\|send_after\|send_nosuspend\|set_cookie\|spawn_monitor\|start_timer\|suspend_process\|system_flag\|system_info\|system_monitor\|trace\|trace_delivered\|trace_info\|trace_pattern\|universaltime\|universaltime_to_localtime\|yield\)(\@=/ +syn match erlangGBIF /erlang\(:\w\)\@=/ +" }}} + +" Link Erlang stuff to Vim groups {{{1 +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 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 erlangBIF Keyword +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 linkings {{{1 +if exists("g:erlangHighlightBif") && g:erlangHighlightBif + hi link erlangGBIF Keyword endif +" }}} + +let b:current_syntax = "erlang" + +" vim: set foldmethod=marker: |