mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			122 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	MEL (Maya Extension Language) | ||
|  | " Maintainer:	Robert Minsk <egbert@centropolisfx.com> | ||
|  | " Last Change:	May 27 1999 | ||
|  | " Based on:	Bram Moolenaar <Bram@vim.org> C syntax file | ||
|  | 
 | ||
|  | " 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 | ||
|  | 
 | ||
|  | " when wanted, highlight trailing white space and spaces before tabs | ||
|  | if exists("mel_space_errors") | ||
|  |   sy match	melSpaceError	"\s\+$" | ||
|  |   sy match	melSpaceError	" \+\t"me=e-1 | ||
|  | endif | ||
|  | 
 | ||
|  | " A bunch of usefull MEL keyworks | ||
|  | sy keyword	melBoolean	true false yes no on off | ||
|  | 
 | ||
|  | sy keyword	melFunction	proc | ||
|  | sy match	melIdentifier	"\$\(\a\|_\)\w*" | ||
|  | 
 | ||
|  | sy keyword	melStatement	break continue return | ||
|  | sy keyword	melConditional	if else switch | ||
|  | sy keyword	melRepeat	while for do in | ||
|  | sy keyword	melLabel	case default | ||
|  | sy keyword	melOperator	size eval env exists whatIs | ||
|  | sy keyword	melKeyword	alias | ||
|  | sy keyword	melException	catch error warning | ||
|  | 
 | ||
|  | sy keyword	melInclude	source | ||
|  | 
 | ||
|  | sy keyword	melType		int float string vector matrix | ||
|  | sy keyword	melStorageClass	global | ||
|  | 
 | ||
|  | sy keyword	melDebug	trace | ||
|  | 
 | ||
|  | sy keyword	melTodo		contained TODO FIXME XXX | ||
|  | 
 | ||
|  | " MEL data types | ||
|  | sy match	melCharSpecial	contained "\\[ntr\\"]" | ||
|  | sy match	melCharError	contained "\\[^ntr\\"]" | ||
|  | 
 | ||
|  | sy region	melString	start=+"+ skip=+\\"+ end=+"+ contains=melCharSpecial,melCharError | ||
|  | 
 | ||
|  | sy case ignore | ||
|  | sy match	melInteger	"\<\d\+\(e[-+]\=\d\+\)\=\>" | ||
|  | sy match	melFloat	"\<\d\+\(e[-+]\=\d\+\)\=f\>" | ||
|  | sy match	melFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=f\=\>" | ||
|  | sy match	melFloat	"\.\d\+\(e[-+]\=\d\+\)\=f\=\>" | ||
|  | sy case match | ||
|  | 
 | ||
|  | sy match	melCommaSemi	contained "[,;]" | ||
|  | sy region	melMatrixVector	start=/<</ end=/>>/ contains=melInteger,melFloat,melIdentifier,melCommaSemi | ||
|  | 
 | ||
|  | sy cluster	melGroup	contains=melFunction,melStatement,melConditional,melLabel,melKeyword,melStorageClass,melTODO,melCharSpecial,melCharError,melCommaSemi | ||
|  | 
 | ||
|  | " catch errors caused by wrong parenthesis | ||
|  | sy region	melParen	transparent start='(' end=')' contains=ALLBUT,@melGroup,melParenError,melInParen | ||
|  | sy match	melParenError	")" | ||
|  | sy match	melInParen	contained "[{}]" | ||
|  | 
 | ||
|  | " comments | ||
|  | sy region	melComment	start="/\*" end="\*/" contains=melTodo,melSpaceError | ||
|  | sy match	melComment	"//.*" contains=melTodo,melSpaceError | ||
|  | sy match	melCommentError "\*/" | ||
|  | 
 | ||
|  | sy region	melQuestionColon matchgroup=melConditional transparent start='?' end=':' contains=ALLBUT,@melGroup | ||
|  | 
 | ||
|  | if !exists("mel_minlines") | ||
|  |   let mel_minlines=15 | ||
|  | endif | ||
|  | exec "sy sync ccomment melComment minlines=" . mel_minlines | ||
|  | 
 | ||
|  | " 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_mel_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_mel_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink melBoolean	Boolean | ||
|  |   HiLink melFunction	Function | ||
|  |   HiLink melIdentifier	Identifier | ||
|  |   HiLink melStatement	Statement | ||
|  |   HiLink melConditional Conditional | ||
|  |   HiLink melRepeat	Repeat | ||
|  |   HiLink melLabel	Label | ||
|  |   HiLink melOperator	Operator | ||
|  |   HiLink melKeyword	Keyword | ||
|  |   HiLink melException	Exception | ||
|  |   HiLink melInclude	Include | ||
|  |   HiLink melType	Type | ||
|  |   HiLink melStorageClass StorageClass | ||
|  |   HiLink melDebug	Debug | ||
|  |   HiLink melTodo	Todo | ||
|  |   HiLink melCharSpecial SpecialChar | ||
|  |   HiLink melString	String | ||
|  |   HiLink melInteger	Number | ||
|  |   HiLink melFloat	Float | ||
|  |   HiLink melMatrixVector Float | ||
|  |   HiLink melComment	Comment | ||
|  |   HiLink melError	Error | ||
|  |   HiLink melSpaceError	melError | ||
|  |   HiLink melCharError	melError | ||
|  |   HiLink melParenError	melError | ||
|  |   HiLink melInParen	melError | ||
|  |   HiLink melCommentError melError | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "mel" |