summaryrefslogtreecommitdiff
path: root/runtime/syntax/erlang.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/erlang.vim')
-rw-r--r--runtime/syntax/erlang.vim355
1 files changed, 180 insertions, 175 deletions
diff --git a/runtime/syntax/erlang.vim b/runtime/syntax/erlang.vim
index a8ffb3939..e3d68363d 100644
--- a/runtime/syntax/erlang.vim
+++ b/runtime/syntax/erlang.vim
@@ -1,11 +1,11 @@
" Vim syntax file
" Language: erlang (ERicsson LANGuage)
-" http://www.erlang.se
-" http://www.erlang.org
-" Maintainer: Kre¹imir Mar¾iæ (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
-" Last update: Fri, 15-Feb-2002
+" http://www.erlang.se
+" http://www.erlang.org
+" Maintainer: Csaba Hoch <csaba.hoch@gmail.com>
+" Former Maintainer: Kreąimir Marľić (Kresimir Marzic) <kmarzic@fly.srk.fer.hr>
+" Last update: 12-Mar-2008
" Filenames: .erl
-" URL: http://www.srk.fer.hr/~kmarzic/vim/syntax/erlang.vim
" There are three sets of highlighting in here:
@@ -24,9 +24,9 @@
" 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
+ syntax clear
elseif exists ("b:current_syntax")
- finish
+ finish
endif
@@ -35,136 +35,140 @@ syn case match
if ! exists ("erlang_characters")
- " Basic elements
- syn match erlangComment +%.*$+
- 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
- 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 erlangNumberFloat4 "[+-]\=[eE][+-]\=\d\+" contains=erlangSeparator
- syn match erlangNumberHex "$\x\+" contains=erlangSeparator
-
- " Ignore '_' and '-' in words
- syn match erlangWord "\w\+[_-]\+\w\+"
-
- " Ignore numbers in words
- syn match erlangWord "\w\+\d\+\(\(.\d\+\)\=\(\w\+\)\=\)\="
+
+ " 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
+ 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\+" contains=ALLBUT,erlangFunction,erlangBIF,erlangWord
-
- " 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
+ " 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 "-compile\|-define\|-else\|-endif\|-export\|-file"
- syn match erlangDirective "-ifdef\|-ifndef\|-import\|-include\|-include_lib"
- syn match erlangDirective "-module\|-record\|-undef"
-
- syn match erlangConstant "-author\|-copyright\|-doc"
-
- " 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
-
- " 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
+ " Constants and Directives
+ syn match erlangDirective "-behaviour\|-behaviour"
+ 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
@@ -173,52 +177,53 @@ endif
" 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 <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- " erlang_characters
- HiLink erlangComment Comment
- 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
+ if version < 508
+ let did_erlang_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ 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"
-" eof