comparison runtime/syntax/erlang.vim @ 0:76efa0be13f1

Initial revision
author atsuki
date Sat, 10 Nov 2007 15:07:22 +0900
parents
children e170173ecb68
comparison
equal deleted inserted replaced
-1:000000000000 0:76efa0be13f1
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) <kmarzic@fly.srk.fer.hr>
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
26 if version < 600
27 syntax clear
28 elseif exists ("b:current_syntax")
29 finish
30 endif
31
32
33 " Case sensitive
34 syn case match
35
36
37 if ! 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\+\)\=\)\="
66 endif
67
68 if ! 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
120 endif
121
122 if ! 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
168 endif
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
175 if 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
219 endif
220
221
222 let b:current_syntax = "erlang"
223
224 " eof