" Vim syntax file " Language: erlang (ERicsson LANGuage) " http://www.erlang.se " http://www.erlang.org " Maintainer: Csaba Hoch " Former Maintainer: Kreąimir Marľić (Kresimir Marzic) " Last update: 12-Mar-2008 " Filenames: .erl " 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 endif " Case sensitive syn case match if ! exists ("erlang_characters") " 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=+'+ " 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 "++\|--\|=\|!\|<-" " 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 " Ignore '_' and '-' in words syn match erlangWord "\h\+\w*" syn match erlangChar /\$./ 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 else command -nargs=+ HiLink hi def link 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"