mirror of
https://github.com/vim/vim
synced 2025-03-16 23:08:07 +01:00
224 lines
7.8 KiB
VimL
224 lines
7.8 KiB
VimL
" 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
|
|
" Filenames: .erl
|
|
" URL: http://www.srk.fer.hr/~kmarzic/vim/syntax/erlang.vim
|
|
|
|
|
|
" There are three sets of highlighting in here:
|
|
" One is "erlang_characters", second is "erlang_functions" and third
|
|
" is "erlang_keywords".
|
|
" If you want to disable keywords highlighting, put in your .vimrc:
|
|
" let erlang_keywords=1
|
|
" If you want to disable erlang BIF highlighting, put in your .vimrc
|
|
" this:
|
|
" let erlang_functions=1
|
|
" If you want to disable special characters highlighting, put in
|
|
" your .vimrc:
|
|
" let erlang_characters=1
|
|
|
|
|
|
" 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
|
|
elseif exists ("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
|
|
" Case sensitive
|
|
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\+\)\=\)\="
|
|
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
|
|
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
|
|
endif
|
|
|
|
|
|
|
|
" Define the default highlighting.
|
|
" 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
|
|
endif
|
|
|
|
|
|
let b:current_syntax = "erlang"
|
|
|
|
" eof
|