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