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