mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			114 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	Expect | ||
|  | " Maintainer:	Ralph Jennings <knowbudy@oro.net> | ||
|  | " Last Change:	2001 May 09 | ||
|  | 
 | ||
|  | " 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 | ||
|  | 
 | ||
|  | " Reserved Expect variable prefixes. | ||
|  | syn match   expectVariables "\$exp[a-zA-Z0-9_]*\|\$inter[a-zA-Z0-9_]*" | ||
|  | syn match   expectVariables "\$spawn[a-zA-Z0-9_]*\|\$timeout[a-zA-Z0-9_]*" | ||
|  | 
 | ||
|  | " Normal Expect variables. | ||
|  | syn match   expectVariables "\$env([^)]*)" | ||
|  | syn match   expectVariables "\$any_spawn_id\|\$argc\|\$argv\d*" | ||
|  | syn match   expectVariables "\$user_spawn_id\|\$spawn_id\|\$timeout" | ||
|  | 
 | ||
|  | " Expect variable arrays. | ||
|  | syn match   expectVariables "\$\(expect\|interact\)_out([^)]*)"			contains=expectOutVar | ||
|  | 
 | ||
|  | " User defined variables. | ||
|  | syn match   expectVariables "\$[a-zA-Z_][a-zA-Z0-9_]*" | ||
|  | 
 | ||
|  | " Reserved Expect command prefixes. | ||
|  | syn match   expectCommand    "exp_[a-zA-Z0-9_]*" | ||
|  | 
 | ||
|  | " Normal Expect commands. | ||
|  | syn keyword expectStatement	close debug disconnect | ||
|  | syn keyword expectStatement	exit exp_continue exp_internal exp_open | ||
|  | syn keyword expectStatement	exp_pid exp_version | ||
|  | syn keyword expectStatement	fork inter_return interpreter | ||
|  | syn keyword expectStatement	log_file log_user match_max overlay | ||
|  | syn keyword expectStatement	parity remove_nulls return | ||
|  | syn keyword expectStatement	send send_error send_log send_user | ||
|  | syn keyword expectStatement	sleep spawn strace stty system | ||
|  | syn keyword expectStatement	timestamp trace trap wait | ||
|  | 
 | ||
|  | " Tcl commands recognized and used by Expect. | ||
|  | syn keyword expectCommand		proc | ||
|  | syn keyword expectConditional	if else | ||
|  | syn keyword expectRepeat		while for foreach | ||
|  | 
 | ||
|  | " Expect commands with special arguments. | ||
|  | syn keyword expectStatement	expect expect_after expect_background			nextgroup=expectExpectOpts | ||
|  | syn keyword expectStatement	expect_before expect_user interact			nextgroup=expectExpectOpts | ||
|  | 
 | ||
|  | syn match   expectSpecial contained  "\\." | ||
|  | 
 | ||
|  | " Options for "expect", "expect_after", "expect_background", | ||
|  | " "expect_before", "expect_user", and "interact". | ||
|  | syn keyword expectExpectOpts	default eof full_buffer null return timeout | ||
|  | 
 | ||
|  | syn keyword expectOutVar  contained  spawn_id seconds seconds_total | ||
|  | syn keyword expectOutVar  contained  string start end buffer | ||
|  | 
 | ||
|  | " Numbers (Tcl style). | ||
|  | syn case ignore | ||
|  |   syn match  expectNumber	"\<\d\+\(u\=l\=\|lu\|f\)\>" | ||
|  |   "floating point number, with dot, optional exponent | ||
|  |   syn match  expectNumber	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=\>" | ||
|  |   "floating point number, starting with a dot, optional exponent | ||
|  |   syn match  expectNumber	"\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" | ||
|  |   "floating point number, without dot, with exponent | ||
|  |   syn match  expectNumber	"\<\d\+e[-+]\=\d\+[fl]\=\>" | ||
|  |   "hex number | ||
|  |   syn match  expectNumber	"0x[0-9a-f]\+\(u\=l\=\|lu\)\>" | ||
|  |   "syn match  expectIdentifier	"\<[a-z_][a-z0-9_]*\>" | ||
|  | syn case match | ||
|  | 
 | ||
|  | syn region  expectString	start=+"+  end=+"+  contains=expectVariables,expectSpecial | ||
|  | 
 | ||
|  | " Are these really comments in Expect? (I never use it, so I'm just guessing). | ||
|  | syn keyword expectTodo		contained TODO | ||
|  | syn match   expectComment		"#.*$" contains=expectTodo | ||
|  | 
 | ||
|  | " 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_expect_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_expect_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink expectVariables	Special | ||
|  |   HiLink expectCommand		Function | ||
|  |   HiLink expectStatement	Statement | ||
|  |   HiLink expectConditional	Conditional | ||
|  |   HiLink expectRepeat		Repeat | ||
|  |   HiLink expectExpectOpts	Keyword | ||
|  |   HiLink expectOutVar		Special | ||
|  |   HiLink expectSpecial		Special | ||
|  |   HiLink expectNumber		Number | ||
|  | 
 | ||
|  |   HiLink expectString		String | ||
|  | 
 | ||
|  |   HiLink expectComment		Comment | ||
|  |   HiLink expectTodo		Todo | ||
|  |   "HiLink expectIdentifier	Identifier | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "expect" | ||
|  | 
 | ||
|  | " vim: ts=8 |