Mercurial > hg > RemoteEditor > vim7
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 |