1" Vim syntax file 2" Language: Matlab 3" Maintainer: Preben 'Peppe' Guldberg <[email protected]> 4" Original author: Mario Eusebio 5" Last Change: 30 May 2003 6 7" For version 5.x: Clear all syntax items 8" For version 6.x: Quit when a syntax file was already loaded 9if version < 600 10 syntax clear 11elseif exists("b:current_syntax") 12 finish 13endif 14 15syn keyword matlabStatement return 16syn keyword matlabLabel case switch 17syn keyword matlabConditional else elseif end if otherwise 18syn keyword matlabRepeat do for while 19 20syn keyword matlabTodo contained TODO 21 22" If you do not want these operators lit, uncommment them and the "hi link" below 23syn match matlabArithmeticOperator "[-+]" 24syn match matlabArithmeticOperator "\.\=[*/\\^]" 25syn match matlabRelationalOperator "[=~]=" 26syn match matlabRelationalOperator "[<>]=\=" 27syn match matlabLogicalOperator "[&|~]" 28 29syn match matlabLineContinuation "\.\{3}" 30 31"syn match matlabIdentifier "\<\a\w*\>" 32 33" String 34syn region matlabString start=+'+ end=+'+ oneline 35 36" If you don't like tabs 37syn match matlabTab "\t" 38 39" Standard numbers 40syn match matlabNumber "\<\d\+[ij]\=\>" 41" floating point number, with dot, optional exponent 42syn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>" 43" floating point number, starting with a dot, optional exponent 44syn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>" 45 46" Transpose character and delimiters: Either use just [...] or (...) aswell 47syn match matlabDelimiter "[][]" 48"syn match matlabDelimiter "[][()]" 49syn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1 50 51syn match matlabSemicolon ";" 52 53syn match matlabComment "%.*$" contains=matlabTodo,matlabTab 54 55syn keyword matlabOperator break zeros default margin round ones rand 56syn keyword matlabOperator ceil floor size clear zeros eye mean std cov 57 58syn keyword matlabFunction error eval function 59 60syn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum 61syn keyword matlabImplicit log10 max min sign sin sqrt tan reshape 62 63syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]" 64syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)" 65 66" Define the default highlighting. 67" For version 5.7 and earlier: only when not done already 68" For version 5.8 and later: only when an item doesn't have highlighting yet 69if version >= 508 || !exists("did_matlab_syntax_inits") 70 if version < 508 71 let did_matlab_syntax_inits = 1 72 command -nargs=+ HiLink hi link <args> 73 else 74 command -nargs=+ HiLink hi def link <args> 75 endif 76 77 HiLink matlabTransposeOperator matlabOperator 78 HiLink matlabOperator Operator 79 HiLink matlabLineContinuation Special 80 HiLink matlabLabel Label 81 HiLink matlabConditional Conditional 82 HiLink matlabRepeat Repeat 83 HiLink matlabTodo Todo 84 HiLink matlabString String 85 HiLink matlabDelimiter Identifier 86 HiLink matlabTransposeOther Identifier 87 HiLink matlabNumber Number 88 HiLink matlabFloat Float 89 HiLink matlabFunction Function 90 HiLink matlabError Error 91 HiLink matlabImplicit matlabStatement 92 HiLink matlabStatement Statement 93 HiLink matlabSemicolon SpecialChar 94 HiLink matlabComment Comment 95 96 HiLink matlabArithmeticOperator matlabOperator 97 HiLink matlabRelationalOperator matlabOperator 98 HiLink matlabLogicalOperator matlabOperator 99 100"optional highlighting 101 "HiLink matlabIdentifier Identifier 102 "HiLink matlabTab Error 103 104 delcommand HiLink 105endif 106 107let b:current_syntax = "matlab" 108 109"EOF vim: ts=8 noet tw=100 sw=8 sts=0 110