1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: Matlab 3690afe1fSBram Moolenaar" Maintainer: Alex Burka <[email protected]> 45c73622aSBram Moolenaar" Credits: Preben 'Peppe' Guldberg <[email protected]> 5690afe1fSBram Moolenaar" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com 6071d4279SBram Moolenaar" Original author: Mario Eusebio 7*12ee7ff0SBram Moolenaar" Last Change: June 10 2019 8*12ee7ff0SBram Moolenaar" added highlight rule for double-quoted string literals 9251e1912SBram Moolenaar" Change History: 10*12ee7ff0SBram Moolenaar" - double-quoted string literals added 11690afe1fSBram Moolenaar" - now highlights cell-mode separator comments 129db9d9ceSBram Moolenaar" - 'global' and 'persistent' keyword are now recognized 13071d4279SBram Moolenaar 1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded 1589bcfda6SBram Moolenaarif exists("b:current_syntax") 16071d4279SBram Moolenaar finish 17071d4279SBram Moolenaarendif 18071d4279SBram Moolenaar 19071d4279SBram Moolenaarsyn keyword matlabStatement return 20071d4279SBram Moolenaarsyn keyword matlabLabel case switch 21071d4279SBram Moolenaarsyn keyword matlabConditional else elseif end if otherwise 22071d4279SBram Moolenaarsyn keyword matlabRepeat do for while 235c73622aSBram Moolenaar" MT_ADDON - added exception-specific keywords 245c73622aSBram Moolenaarsyn keyword matlabExceptions try catch 255c73622aSBram Moolenaarsyn keyword matlabOO classdef properties events methods 26071d4279SBram Moolenaar 27071d4279SBram Moolenaarsyn keyword matlabTodo contained TODO 289db9d9ceSBram Moolenaarsyn keyword matlabScope global persistent 29071d4279SBram Moolenaar 30071d4279SBram Moolenaar" If you do not want these operators lit, uncommment them and the "hi link" below 31071d4279SBram Moolenaarsyn match matlabArithmeticOperator "[-+]" 32071d4279SBram Moolenaarsyn match matlabArithmeticOperator "\.\=[*/\\^]" 33071d4279SBram Moolenaarsyn match matlabRelationalOperator "[=~]=" 34071d4279SBram Moolenaarsyn match matlabRelationalOperator "[<>]=\=" 35071d4279SBram Moolenaarsyn match matlabLogicalOperator "[&|~]" 36071d4279SBram Moolenaar 37071d4279SBram Moolenaarsyn match matlabLineContinuation "\.\{3}" 38071d4279SBram Moolenaar 39071d4279SBram Moolenaar"syn match matlabIdentifier "\<\a\w*\>" 40071d4279SBram Moolenaar 41071d4279SBram Moolenaar" String 425c73622aSBram Moolenaar" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence 439db9d9ceSBram Moolenaarsyn region matlabString start=+'+ end=+'+ oneline skip=+''+ 44*12ee7ff0SBram Moolenaarsyn region matlabStringArray start=+"+ end=+"+ oneline skip=+""+ 45071d4279SBram Moolenaar 46071d4279SBram Moolenaar" If you don't like tabs 47071d4279SBram Moolenaarsyn match matlabTab "\t" 48071d4279SBram Moolenaar 49071d4279SBram Moolenaar" Standard numbers 50071d4279SBram Moolenaarsyn match matlabNumber "\<\d\+[ij]\=\>" 51071d4279SBram Moolenaar" floating point number, with dot, optional exponent 52071d4279SBram Moolenaarsyn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>" 53071d4279SBram Moolenaar" floating point number, starting with a dot, optional exponent 54071d4279SBram Moolenaarsyn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>" 55071d4279SBram Moolenaar 56071d4279SBram Moolenaar" Transpose character and delimiters: Either use just [...] or (...) aswell 57071d4279SBram Moolenaarsyn match matlabDelimiter "[][]" 58071d4279SBram Moolenaar"syn match matlabDelimiter "[][()]" 59071d4279SBram Moolenaarsyn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1 60071d4279SBram Moolenaar 61071d4279SBram Moolenaarsyn match matlabSemicolon ";" 62071d4279SBram Moolenaar 639db9d9ceSBram Moolenaarsyn match matlabComment "%.*$" contains=matlabTodo,matlabTab 645c73622aSBram Moolenaar" MT_ADDON - correctly highlights words after '...' as comments 659db9d9ceSBram Moolenaarsyn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab 669db9d9ceSBram Moolenaarsyn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab 67690afe1fSBram Moolenaarsyn match matlabCellComment "^%%.*$" 68071d4279SBram Moolenaar 69071d4279SBram Moolenaarsyn keyword matlabOperator break zeros default margin round ones rand 70071d4279SBram Moolenaarsyn keyword matlabOperator ceil floor size clear zeros eye mean std cov 71071d4279SBram Moolenaar 72071d4279SBram Moolenaarsyn keyword matlabFunction error eval function 73071d4279SBram Moolenaar 74071d4279SBram Moolenaarsyn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum 75251e1912SBram Moolenaarsyn keyword matlabImplicit log10 max min sign sin sinh sqrt tan reshape 76071d4279SBram Moolenaar 77071d4279SBram Moolenaarsyn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]" 78071d4279SBram Moolenaarsyn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)" 79071d4279SBram Moolenaar 80071d4279SBram Moolenaar" Define the default highlighting. 8189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet 82071d4279SBram Moolenaar 83f37506f6SBram Moolenaarhi def link matlabTransposeOperator matlabOperator 84f37506f6SBram Moolenaarhi def link matlabOperator Operator 85f37506f6SBram Moolenaarhi def link matlabLineContinuation Special 86f37506f6SBram Moolenaarhi def link matlabLabel Label 87f37506f6SBram Moolenaarhi def link matlabConditional Conditional 88f37506f6SBram Moolenaarhi def link matlabExceptions Conditional 89f37506f6SBram Moolenaarhi def link matlabRepeat Repeat 90f37506f6SBram Moolenaarhi def link matlabTodo Todo 91f37506f6SBram Moolenaarhi def link matlabString String 92*12ee7ff0SBram Moolenaarhi def link matlabStringArray String 93f37506f6SBram Moolenaarhi def link matlabDelimiter Identifier 94f37506f6SBram Moolenaarhi def link matlabTransposeOther Identifier 95f37506f6SBram Moolenaarhi def link matlabNumber Number 96f37506f6SBram Moolenaarhi def link matlabFloat Float 97f37506f6SBram Moolenaarhi def link matlabFunction Function 98f37506f6SBram Moolenaarhi def link matlabError Error 99f37506f6SBram Moolenaarhi def link matlabImplicit matlabStatement 100f37506f6SBram Moolenaarhi def link matlabStatement Statement 101f37506f6SBram Moolenaarhi def link matlabOO Statement 102f37506f6SBram Moolenaarhi def link matlabSemicolon SpecialChar 103f37506f6SBram Moolenaarhi def link matlabComment Comment 104f37506f6SBram Moolenaarhi def link matlabMultilineComment Comment 105690afe1fSBram Moolenaarhi def link matlabCellComment Todo 106f37506f6SBram Moolenaarhi def link matlabScope Type 107071d4279SBram Moolenaar 108f37506f6SBram Moolenaarhi def link matlabArithmeticOperator matlabOperator 109f37506f6SBram Moolenaarhi def link matlabRelationalOperator matlabOperator 110f37506f6SBram Moolenaarhi def link matlabLogicalOperator matlabOperator 111071d4279SBram Moolenaar 112071d4279SBram Moolenaar"optional highlighting 113f37506f6SBram Moolenaar"hi def link matlabIdentifier Identifier 114f37506f6SBram Moolenaar"hi def link matlabTab Error 115071d4279SBram Moolenaar 116071d4279SBram Moolenaar 117071d4279SBram Moolenaarlet b:current_syntax = "matlab" 118071d4279SBram Moolenaar 119071d4279SBram Moolenaar"EOF vim: ts=8 noet tw=100 sw=8 sts=0 120