blob: 520280980aeb7b1e1a2f6ea3111f0afba88dad65 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Matlab
Bram Moolenaar690afe12017-01-28 18:34:47 +01003" Maintainer: Alex Burka <vim@alexburka.com>
Bram Moolenaar5c736222010-01-06 20:54:52 +01004" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
Bram Moolenaar690afe12017-01-28 18:34:47 +01005" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
Bram Moolenaar071d4272004-06-13 20:20:40 +00006" Original author: Mario Eusebio
Bram Moolenaar12ee7ff2019-06-10 22:47:40 +02007" Last Change: June 10 2019
8" added highlight rule for double-quoted string literals
Bram Moolenaar251e1912011-06-19 05:09:16 +02009" Change History:
Bram Moolenaar12ee7ff2019-06-10 22:47:40 +020010" - double-quoted string literals added
Bram Moolenaar690afe12017-01-28 18:34:47 +010011" - now highlights cell-mode separator comments
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010012" - 'global' and 'persistent' keyword are now recognized
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020014" quit when a syntax file was already loaded
15if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000016 finish
17endif
18
19syn keyword matlabStatement return
20syn keyword matlabLabel case switch
21syn keyword matlabConditional else elseif end if otherwise
22syn keyword matlabRepeat do for while
Bram Moolenaar5c736222010-01-06 20:54:52 +010023" MT_ADDON - added exception-specific keywords
24syn keyword matlabExceptions try catch
25syn keyword matlabOO classdef properties events methods
Bram Moolenaar071d4272004-06-13 20:20:40 +000026
27syn keyword matlabTodo contained TODO
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010028syn keyword matlabScope global persistent
Bram Moolenaar071d4272004-06-13 20:20:40 +000029
30" If you do not want these operators lit, uncommment them and the "hi link" below
31syn match matlabArithmeticOperator "[-+]"
32syn match matlabArithmeticOperator "\.\=[*/\\^]"
33syn match matlabRelationalOperator "[=~]="
34syn match matlabRelationalOperator "[<>]=\="
35syn match matlabLogicalOperator "[&|~]"
36
37syn match matlabLineContinuation "\.\{3}"
38
39"syn match matlabIdentifier "\<\a\w*\>"
40
41" String
Bram Moolenaar5c736222010-01-06 20:54:52 +010042" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010043syn region matlabString start=+'+ end=+'+ oneline skip=+''+
Bram Moolenaar12ee7ff2019-06-10 22:47:40 +020044syn region matlabStringArray start=+"+ end=+"+ oneline skip=+""+
Bram Moolenaar071d4272004-06-13 20:20:40 +000045
46" If you don't like tabs
47syn match matlabTab "\t"
48
49" Standard numbers
50syn match matlabNumber "\<\d\+[ij]\=\>"
51" floating point number, with dot, optional exponent
52syn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
53" floating point number, starting with a dot, optional exponent
54syn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
55
56" Transpose character and delimiters: Either use just [...] or (...) aswell
57syn match matlabDelimiter "[][]"
58"syn match matlabDelimiter "[][()]"
59syn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1
60
61syn match matlabSemicolon ";"
62
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010063syn match matlabComment "%.*$" contains=matlabTodo,matlabTab
Bram Moolenaar5c736222010-01-06 20:54:52 +010064" MT_ADDON - correctly highlights words after '...' as comments
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010065syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab
66syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
Bram Moolenaar690afe12017-01-28 18:34:47 +010067syn match matlabCellComment "^%%.*$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000068
69syn keyword matlabOperator break zeros default margin round ones rand
70syn keyword matlabOperator ceil floor size clear zeros eye mean std cov
71
72syn keyword matlabFunction error eval function
73
74syn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum
Bram Moolenaar251e1912011-06-19 05:09:16 +020075syn keyword matlabImplicit log10 max min sign sin sinh sqrt tan reshape
Bram Moolenaar071d4272004-06-13 20:20:40 +000076
77syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]"
78syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
79
80" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020081" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000082
Bram Moolenaarf37506f2016-08-31 22:22:10 +020083hi def link matlabTransposeOperator matlabOperator
84hi def link matlabOperator Operator
85hi def link matlabLineContinuation Special
86hi def link matlabLabel Label
87hi def link matlabConditional Conditional
88hi def link matlabExceptions Conditional
89hi def link matlabRepeat Repeat
90hi def link matlabTodo Todo
91hi def link matlabString String
Bram Moolenaar12ee7ff2019-06-10 22:47:40 +020092hi def link matlabStringArray String
Bram Moolenaarf37506f2016-08-31 22:22:10 +020093hi def link matlabDelimiter Identifier
94hi def link matlabTransposeOther Identifier
95hi def link matlabNumber Number
96hi def link matlabFloat Float
97hi def link matlabFunction Function
98hi def link matlabError Error
99hi def link matlabImplicit matlabStatement
100hi def link matlabStatement Statement
101hi def link matlabOO Statement
102hi def link matlabSemicolon SpecialChar
103hi def link matlabComment Comment
104hi def link matlabMultilineComment Comment
Bram Moolenaar690afe12017-01-28 18:34:47 +0100105hi def link matlabCellComment Todo
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200106hi def link matlabScope Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000107
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200108hi def link matlabArithmeticOperator matlabOperator
109hi def link matlabRelationalOperator matlabOperator
110hi def link matlabLogicalOperator matlabOperator
Bram Moolenaar071d4272004-06-13 20:20:40 +0000111
112"optional highlighting
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200113"hi def link matlabIdentifier Identifier
114"hi def link matlabTab Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000115
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116
117let b:current_syntax = "matlab"
118
119"EOF vim: ts=8 noet tw=100 sw=8 sts=0