diff runtime/syntax/erlang.vim @ 7:3fc0f57ecb91 v7.0001

updated for version 7.0001
author vimboss
date Sun, 13 Jun 2004 20:20:40 +0000
parents
children 82b5078be2dd
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/erlang.vim
@@ -0,0 +1,224 @@
+" 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