1" Vim syntax file 2" Language: MEL (Maya Extension Language) 3" Maintainer: Robert Minsk <[email protected]> 4" Last Change: May 27 1999 5" Based on: Bram Moolenaar <[email protected]> C syntax file 6 7" quit when a syntax file was already loaded 8if exists("b:current_syntax") 9 finish 10endif 11 12" when wanted, highlight trailing white space and spaces before tabs 13if exists("mel_space_errors") 14 sy match melSpaceError "\s\+$" 15 sy match melSpaceError " \+\t"me=e-1 16endif 17 18" A bunch of usefull MEL keyworks 19sy keyword melBoolean true false yes no on off 20 21sy keyword melFunction proc 22sy match melIdentifier "\$\(\a\|_\)\w*" 23 24sy keyword melStatement break continue return 25sy keyword melConditional if else switch 26sy keyword melRepeat while for do in 27sy keyword melLabel case default 28sy keyword melOperator size eval env exists whatIs 29sy keyword melKeyword alias 30sy keyword melException catch error warning 31 32sy keyword melInclude source 33 34sy keyword melType int float string vector matrix 35sy keyword melStorageClass global 36 37sy keyword melDebug trace 38 39sy keyword melTodo contained TODO FIXME XXX 40 41" MEL data types 42sy match melCharSpecial contained "\\[ntr\\"]" 43sy match melCharError contained "\\[^ntr\\"]" 44 45sy region melString start=+"+ skip=+\\"+ end=+"+ contains=melCharSpecial,melCharError 46 47sy case ignore 48sy match melInteger "\<\d\+\(e[-+]\=\d\+\)\=\>" 49sy match melFloat "\<\d\+\(e[-+]\=\d\+\)\=f\>" 50sy match melFloat "\<\d\+\.\d*\(e[-+]\=\d\+\)\=f\=\>" 51sy match melFloat "\.\d\+\(e[-+]\=\d\+\)\=f\=\>" 52sy case match 53 54sy match melCommaSemi contained "[,;]" 55sy region melMatrixVector start=/<</ end=/>>/ contains=melInteger,melFloat,melIdentifier,melCommaSemi 56 57sy cluster melGroup contains=melFunction,melStatement,melConditional,melLabel,melKeyword,melStorageClass,melTODO,melCharSpecial,melCharError,melCommaSemi 58 59" catch errors caused by wrong parenthesis 60sy region melParen transparent start='(' end=')' contains=ALLBUT,@melGroup,melParenError,melInParen 61sy match melParenError ")" 62sy match melInParen contained "[{}]" 63 64" comments 65sy region melComment start="/\*" end="\*/" contains=melTodo,melSpaceError 66sy match melComment "//.*" contains=melTodo,melSpaceError 67sy match melCommentError "\*/" 68 69sy region melQuestionColon matchgroup=melConditional transparent start='?' end=':' contains=ALLBUT,@melGroup 70 71if !exists("mel_minlines") 72 let mel_minlines=15 73endif 74exec "sy sync ccomment melComment minlines=" . mel_minlines 75 76" Define the default highlighting. 77" Only when an item doesn't have highlighting yet 78 79hi def link melBoolean Boolean 80hi def link melFunction Function 81hi def link melIdentifier Identifier 82hi def link melStatement Statement 83hi def link melConditional Conditional 84hi def link melRepeat Repeat 85hi def link melLabel Label 86hi def link melOperator Operator 87hi def link melKeyword Keyword 88hi def link melException Exception 89hi def link melInclude Include 90hi def link melType Type 91hi def link melStorageClass StorageClass 92hi def link melDebug Debug 93hi def link melTodo Todo 94hi def link melCharSpecial SpecialChar 95hi def link melString String 96hi def link melInteger Number 97hi def link melFloat Float 98hi def link melMatrixVector Float 99hi def link melComment Comment 100hi def link melError Error 101hi def link melSpaceError melError 102hi def link melCharError melError 103hi def link melParenError melError 104hi def link melInParen melError 105hi def link melCommentError melError 106 107 108let b:current_syntax = "mel" 109