mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			225 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			225 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | |||
|  | " Language:    erlang (ERicsson LANGuage) | |||
|  | "	       http://www.erlang.se | |||
|  | "	       http://www.erlang.org | |||
|  | " Maintainer:  Kre<72>imir Mar<61>i<EFBFBD> (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 |