xref: /vim-8.2.3635/runtime/syntax/mel.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	MEL (Maya Extension Language)
3071d4279SBram Moolenaar" Maintainer:	Robert Minsk <[email protected]>
4071d4279SBram Moolenaar" Last Change:	May 27 1999
5071d4279SBram Moolenaar" Based on:	Bram Moolenaar <[email protected]> C syntax file
6071d4279SBram Moolenaar
789bcfda6SBram Moolenaar" quit when a syntax file was already loaded
889bcfda6SBram Moolenaarif exists("b:current_syntax")
9071d4279SBram Moolenaar  finish
10071d4279SBram Moolenaarendif
11071d4279SBram Moolenaar
12071d4279SBram Moolenaar" when wanted, highlight trailing white space and spaces before tabs
13071d4279SBram Moolenaarif exists("mel_space_errors")
14071d4279SBram Moolenaar  sy match	melSpaceError	"\s\+$"
15071d4279SBram Moolenaar  sy match	melSpaceError	" \+\t"me=e-1
16071d4279SBram Moolenaarendif
17071d4279SBram Moolenaar
18071d4279SBram Moolenaar" A bunch of usefull MEL keyworks
19071d4279SBram Moolenaarsy keyword	melBoolean	true false yes no on off
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsy keyword	melFunction	proc
22071d4279SBram Moolenaarsy match	melIdentifier	"\$\(\a\|_\)\w*"
23071d4279SBram Moolenaar
24071d4279SBram Moolenaarsy keyword	melStatement	break continue return
25071d4279SBram Moolenaarsy keyword	melConditional	if else switch
26071d4279SBram Moolenaarsy keyword	melRepeat	while for do in
27071d4279SBram Moolenaarsy keyword	melLabel	case default
28071d4279SBram Moolenaarsy keyword	melOperator	size eval env exists whatIs
29071d4279SBram Moolenaarsy keyword	melKeyword	alias
30071d4279SBram Moolenaarsy keyword	melException	catch error warning
31071d4279SBram Moolenaar
32071d4279SBram Moolenaarsy keyword	melInclude	source
33071d4279SBram Moolenaar
34071d4279SBram Moolenaarsy keyword	melType		int float string vector matrix
35071d4279SBram Moolenaarsy keyword	melStorageClass	global
36071d4279SBram Moolenaar
37071d4279SBram Moolenaarsy keyword	melDebug	trace
38071d4279SBram Moolenaar
39071d4279SBram Moolenaarsy keyword	melTodo		contained TODO FIXME XXX
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" MEL data types
42071d4279SBram Moolenaarsy match	melCharSpecial	contained "\\[ntr\\"]"
43071d4279SBram Moolenaarsy match	melCharError	contained "\\[^ntr\\"]"
44071d4279SBram Moolenaar
45071d4279SBram Moolenaarsy region	melString	start=+"+ skip=+\\"+ end=+"+ contains=melCharSpecial,melCharError
46071d4279SBram Moolenaar
47071d4279SBram Moolenaarsy case ignore
48071d4279SBram Moolenaarsy match	melInteger	"\<\d\+\(e[-+]\=\d\+\)\=\>"
49071d4279SBram Moolenaarsy match	melFloat	"\<\d\+\(e[-+]\=\d\+\)\=f\>"
50071d4279SBram Moolenaarsy match	melFloat	"\<\d\+\.\d*\(e[-+]\=\d\+\)\=f\=\>"
51071d4279SBram Moolenaarsy match	melFloat	"\.\d\+\(e[-+]\=\d\+\)\=f\=\>"
52071d4279SBram Moolenaarsy case match
53071d4279SBram Moolenaar
54071d4279SBram Moolenaarsy match	melCommaSemi	contained "[,;]"
55071d4279SBram Moolenaarsy region	melMatrixVector	start=/<</ end=/>>/ contains=melInteger,melFloat,melIdentifier,melCommaSemi
56071d4279SBram Moolenaar
57071d4279SBram Moolenaarsy cluster	melGroup	contains=melFunction,melStatement,melConditional,melLabel,melKeyword,melStorageClass,melTODO,melCharSpecial,melCharError,melCommaSemi
58071d4279SBram Moolenaar
59071d4279SBram Moolenaar" catch errors caused by wrong parenthesis
60071d4279SBram Moolenaarsy region	melParen	transparent start='(' end=')' contains=ALLBUT,@melGroup,melParenError,melInParen
61071d4279SBram Moolenaarsy match	melParenError	")"
62071d4279SBram Moolenaarsy match	melInParen	contained "[{}]"
63071d4279SBram Moolenaar
64071d4279SBram Moolenaar" comments
65071d4279SBram Moolenaarsy region	melComment	start="/\*" end="\*/" contains=melTodo,melSpaceError
66071d4279SBram Moolenaarsy match	melComment	"//.*" contains=melTodo,melSpaceError
67071d4279SBram Moolenaarsy match	melCommentError "\*/"
68071d4279SBram Moolenaar
69071d4279SBram Moolenaarsy region	melQuestionColon matchgroup=melConditional transparent start='?' end=':' contains=ALLBUT,@melGroup
70071d4279SBram Moolenaar
71071d4279SBram Moolenaarif !exists("mel_minlines")
72071d4279SBram Moolenaar  let mel_minlines=15
73071d4279SBram Moolenaarendif
74071d4279SBram Moolenaarexec "sy sync ccomment melComment minlines=" . mel_minlines
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" Define the default highlighting.
7789bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
78071d4279SBram Moolenaar
79*f37506f6SBram Moolenaarhi def link melBoolean	Boolean
80*f37506f6SBram Moolenaarhi def link melFunction	Function
81*f37506f6SBram Moolenaarhi def link melIdentifier	Identifier
82*f37506f6SBram Moolenaarhi def link melStatement	Statement
83*f37506f6SBram Moolenaarhi def link melConditional Conditional
84*f37506f6SBram Moolenaarhi def link melRepeat	Repeat
85*f37506f6SBram Moolenaarhi def link melLabel	Label
86*f37506f6SBram Moolenaarhi def link melOperator	Operator
87*f37506f6SBram Moolenaarhi def link melKeyword	Keyword
88*f37506f6SBram Moolenaarhi def link melException	Exception
89*f37506f6SBram Moolenaarhi def link melInclude	Include
90*f37506f6SBram Moolenaarhi def link melType	Type
91*f37506f6SBram Moolenaarhi def link melStorageClass StorageClass
92*f37506f6SBram Moolenaarhi def link melDebug	Debug
93*f37506f6SBram Moolenaarhi def link melTodo	Todo
94*f37506f6SBram Moolenaarhi def link melCharSpecial SpecialChar
95*f37506f6SBram Moolenaarhi def link melString	String
96*f37506f6SBram Moolenaarhi def link melInteger	Number
97*f37506f6SBram Moolenaarhi def link melFloat	Float
98*f37506f6SBram Moolenaarhi def link melMatrixVector Float
99*f37506f6SBram Moolenaarhi def link melComment	Comment
100*f37506f6SBram Moolenaarhi def link melError	Error
101*f37506f6SBram Moolenaarhi def link melSpaceError	melError
102*f37506f6SBram Moolenaarhi def link melCharError	melError
103*f37506f6SBram Moolenaarhi def link melParenError	melError
104*f37506f6SBram Moolenaarhi def link melInParen	melError
105*f37506f6SBram Moolenaarhi def link melCommentError melError
106071d4279SBram Moolenaar
107071d4279SBram Moolenaar
108071d4279SBram Moolenaarlet b:current_syntax = "mel"
109