1" Vim syntax file 2" Language: erlang (ERicsson LANGuage) 3" http://www.erlang.se 4" http://www.erlang.org 5" Maintainer: Kre�imir Mar�i� (Kresimir Marzic) <[email protected]> 6" Last update: Fri, 15-Feb-2002 7" Filenames: .erl 8" URL: http://www.srk.fer.hr/~kmarzic/vim/syntax/erlang.vim 9 10 11" There are three sets of highlighting in here: 12" One is "erlang_characters", second is "erlang_functions" and third 13" is "erlang_keywords". 14" If you want to disable keywords highlighting, put in your .vimrc: 15" let erlang_keywords=1 16" If you want to disable erlang BIF highlighting, put in your .vimrc 17" this: 18" let erlang_functions=1 19" If you want to disable special characters highlighting, put in 20" your .vimrc: 21" let erlang_characters=1 22 23 24" For version 5.x: Clear all syntax items 25" For version 6.x: Quit when a syntax file was already loaded 26if version < 600 27 syntax clear 28elseif exists ("b:current_syntax") 29 finish 30endif 31 32 33" Case sensitive 34syn case match 35 36 37if ! exists ("erlang_characters") 38 " Basic elements 39 syn match erlangComment +%.*$+ 40 syn match erlangModifier "\~\a\|\\\a" contained 41 syn match erlangSpecialCharacter ":\|_\|@\|\\\|\"\|\." 42 syn match erlangSeparator "(\|)\|{\|}\|\[\|]\||\|||\|;\|,\|?\|->\|#" contained 43 syn region erlangString start=+"+ skip=+\\"+ end=+"+ contains=erlangModifier 44 syn region erlangAtom start=+'+ skip=+\\'+ end=+'+ 45 46 " Operators 47 syn match erlangOperator "+\|-\|\*\|\/" 48 syn keyword erlangOperator div rem or xor bor bxor bsl bsr 49 syn keyword erlangOperator and band not bnot 50 syn match erlangOperator "==\|/=\|=:=\|=/=\|<\|=<\|>\|>=" 51 syn match erlangOperator "++\|--\|=\|!\|<-" 52 53 " Numbers 54 syn match erlangNumberInteger "[+-]\=\d\+" contains=erlangSeparator 55 syn match erlangNumberFloat1 "[+-]\=\d\+.\d\+" contains=erlangSeparator 56 syn match erlangNumberFloat2 "[+-]\=\d\+\(.\d\+\)\=[eE][+-]\=\d\+\(.\d\+\)\=" contains=erlangSeparator 57 syn match erlangNumberFloat3 "[+-]\=\d\+[#]\x\+" contains=erlangSeparator 58 syn match erlangNumberFloat4 "[+-]\=[eE][+-]\=\d\+" contains=erlangSeparator 59 syn match erlangNumberHex "$\x\+" contains=erlangSeparator 60 61 " Ignore '_' and '-' in words 62 syn match erlangWord "\w\+[_-]\+\w\+" 63 64 " Ignore numbers in words 65 syn match erlangWord "\w\+\d\+\(\(.\d\+\)\=\(\w\+\)\=\)\=" 66endif 67 68if ! exists ("erlang_functions") 69 " Functions call 70 syn match erlangFCall "\w\+\(\s\+\)\=[:@]\(\s\+\)\=\w\+" contains=ALLBUT,erlangFunction,erlangBIF,erlangWord 71 72 " build-in-functions (BIFs) 73 syn keyword erlangBIF abs alive apply atom_to_list 74 syn keyword erlangBIF binary_to_list binary_to_term 75 syn keyword erlangBIF concat_binary 76 syn keyword erlangBIF date disconnect_node 77 syn keyword erlangBIF element erase exit 78 syn keyword erlangBIF float float_to_list 79 syn keyword erlangBIF get get_keys group_leader 80 syn keyword erlangBIF halt hd 81 syn keyword erlangBIF integer_to_list is_alive 82 syn keyword erlangBIF length link list_to_atom list_to_binary 83 syn keyword erlangBIF list_to_float list_to_integer list_to_pid 84 syn keyword erlangBIF list_to_tuple load_module 85 syn keyword erlangBIF make_ref monitor_node 86 syn keyword erlangBIF node nodes now 87 syn keyword erlangBIF open_port 88 syn keyword erlangBIF pid_to_list process_flag 89 syn keyword erlangBIF process_info process put 90 syn keyword erlangBIF register registered round 91 syn keyword erlangBIF self setelement size spawn 92 syn keyword erlangBIF spawn_link split_binary statistics 93 syn keyword erlangBIF term_to_binary throw time tl trunc 94 syn keyword erlangBIF tuple_to_list 95 syn keyword erlangBIF unlink unregister 96 syn keyword erlangBIF whereis 97 98 " Other BIFs 99 syn keyword erlangBIF atom binary constant function integer 100 syn keyword erlangBIF list number pid ports port_close port_info 101 syn keyword erlangBIF reference record 102 103 " erlang:BIFs 104 syn keyword erlangBIF check_process_code delete_module 105 syn keyword erlangBIF get_cookie hash math module_loaded 106 syn keyword erlangBIF preloaded processes purge_module set_cookie 107 syn keyword erlangBIF set_node 108 109 " functions of math library 110 syn keyword erlangFunction acos asin atan atan2 cos cosh exp 111 syn keyword erlangFunction log log10 pi pow power sin sinh sqrt 112 syn keyword erlangFunction tan tanh 113 114 " Other functions 115 syn keyword erlangFunction call module_info parse_transform 116 syn keyword erlangFunction undefined_function 117 118 " Modules 119 syn keyword erlangModule error_handler 120endif 121 122if ! exists ("erlang_keywords") 123 " Constants and Directives 124 syn match erlangDirective "-compile\|-define\|-else\|-endif\|-export\|-file" 125 syn match erlangDirective "-ifdef\|-ifndef\|-import\|-include\|-include_lib" 126 syn match erlangDirective "-module\|-record\|-undef" 127 128 syn match erlangConstant "-author\|-copyright\|-doc" 129 130 " Keywords 131 syn keyword erlangKeyword after begin case catch 132 syn keyword erlangKeyword cond end fun if 133 syn keyword erlangKeyword let of query receive 134 syn keyword erlangKeyword when 135 136 " Processes 137 syn keyword erlangProcess creation current_function dictionary 138 syn keyword erlangProcess group_leader heap_size high initial_call 139 syn keyword erlangProcess linked low memory_in_use message_queue 140 syn keyword erlangProcess net_kernel node normal priority 141 syn keyword erlangProcess reductions registered_name runnable 142 syn keyword erlangProcess running stack_trace status timer 143 syn keyword erlangProcess trap_exit waiting 144 145 " Ports 146 syn keyword erlangPort command count_in count_out creation in 147 syn keyword erlangPort in_format linked node out owner packeting 148 149 " Nodes 150 syn keyword erlangNode atom_tables communicating creation 151 syn keyword erlangNode current_gc current_reductions current_runtime 152 syn keyword erlangNode current_wall_clock distribution_port 153 syn keyword erlangNode entry_points error_handler friends 154 syn keyword erlangNode garbage_collection magic_cookie magic_cookies 155 syn keyword erlangNode module_table monitored_nodes name next_ref 156 syn keyword erlangNode ports preloaded processes reductions 157 syn keyword erlangNode ref_state registry runtime wall_clock 158 159 " Reserved 160 syn keyword erlangReserved apply_lambda module_info module_lambdas 161 syn keyword erlangReserved record record_index record_info 162 163 " Extras 164 syn keyword erlangExtra badarg nocookie false fun true 165 166 " Signals 167 syn keyword erlangSignal badsig kill killed exit normal 168endif 169 170 171 172" Define the default highlighting. 173" For version 5.7 and earlier: only when not done already 174" For version 5.8 and later: only when an item doesn't have highlighting yet 175if version >= 508 || !exists ("did_erlang_inits") 176 if version < 508 177 let did_erlang_inits = 1 178 command -nargs=+ HiLink hi link <args> 179 else 180 command -nargs=+ HiLink hi def link <args> 181 endif 182 183 " erlang_characters 184 HiLink erlangComment Comment 185 HiLink erlangSpecialCharacter Special 186 HiLink erlangSeparator Normal 187 HiLink erlangModifier Special 188 HiLink erlangOperator Operator 189 HiLink erlangString String 190 HiLink erlangAtom Type 191 192 HiLink erlangNumberInteger Number 193 HiLink erlangNumberFloat1 Float 194 HiLink erlangNumberFloat2 Float 195 HiLink erlangNumberFloat3 Float 196 HiLink erlangNumberFloat4 Float 197 HiLink erlangNumberHex Number 198 199 HiLink erlangWord Normal 200 201 " erlang_functions 202 HiLink erlangFCall Function 203 HiLink erlangBIF Function 204 HiLink erlangFunction Function 205 HiLink erlangModuleFunction Function 206 207 " erlang_keywords 208 HiLink erlangDirective Type 209 HiLink erlangConstant Type 210 HiLink erlangKeyword Keyword 211 HiLink erlangProcess Special 212 HiLink erlangPort Special 213 HiLink erlangNode Special 214 HiLink erlangReserved Statement 215 HiLink erlangExtra Statement 216 HiLink erlangSignal Statement 217 218 delcommand HiLink 219endif 220 221 222let b:current_syntax = "erlang" 223 224" eof 225