blob: 5228bb5c435551b338d627c3195b19b9fd1ce7c6 [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 Moolenaar690afe12017-01-28 18:34:47 +01007" Last Change: Mon Jan 23 2017
8" added support for cell mode
Bram Moolenaar251e1912011-06-19 05:09:16 +02009" Change History:
Bram Moolenaar690afe12017-01-28 18:34:47 +010010" - now highlights cell-mode separator comments
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010011" - 'global' and 'persistent' keyword are now recognized
Bram Moolenaar071d4272004-06-13 20:20:40 +000012
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020013" quit when a syntax file was already loaded
14if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000015 finish
16endif
17
18syn keyword matlabStatement return
19syn keyword matlabLabel case switch
20syn keyword matlabConditional else elseif end if otherwise
21syn keyword matlabRepeat do for while
Bram Moolenaar5c736222010-01-06 20:54:52 +010022" MT_ADDON - added exception-specific keywords
23syn keyword matlabExceptions try catch
24syn keyword matlabOO classdef properties events methods
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
26syn keyword matlabTodo contained TODO
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010027syn keyword matlabScope global persistent
Bram Moolenaar071d4272004-06-13 20:20:40 +000028
29" If you do not want these operators lit, uncommment them and the "hi link" below
30syn match matlabArithmeticOperator "[-+]"
31syn match matlabArithmeticOperator "\.\=[*/\\^]"
32syn match matlabRelationalOperator "[=~]="
33syn match matlabRelationalOperator "[<>]=\="
34syn match matlabLogicalOperator "[&|~]"
35
36syn match matlabLineContinuation "\.\{3}"
37
38"syn match matlabIdentifier "\<\a\w*\>"
39
40" String
Bram Moolenaar5c736222010-01-06 20:54:52 +010041" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010042syn region matlabString start=+'+ end=+'+ oneline skip=+''+
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
44" If you don't like tabs
45syn match matlabTab "\t"
46
47" Standard numbers
48syn match matlabNumber "\<\d\+[ij]\=\>"
49" floating point number, with dot, optional exponent
50syn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
51" floating point number, starting with a dot, optional exponent
52syn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
53
54" Transpose character and delimiters: Either use just [...] or (...) aswell
55syn match matlabDelimiter "[][]"
56"syn match matlabDelimiter "[][()]"
57syn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1
58
59syn match matlabSemicolon ";"
60
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010061syn match matlabComment "%.*$" contains=matlabTodo,matlabTab
Bram Moolenaar5c736222010-01-06 20:54:52 +010062" MT_ADDON - correctly highlights words after '...' as comments
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010063syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab
64syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
Bram Moolenaar690afe12017-01-28 18:34:47 +010065syn match matlabCellComment "^%%.*$"
Bram Moolenaar071d4272004-06-13 20:20:40 +000066
67syn keyword matlabOperator break zeros default margin round ones rand
68syn keyword matlabOperator ceil floor size clear zeros eye mean std cov
69
70syn keyword matlabFunction error eval function
71
72syn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum
Bram Moolenaar251e1912011-06-19 05:09:16 +020073syn keyword matlabImplicit log10 max min sign sin sinh sqrt tan reshape
Bram Moolenaar071d4272004-06-13 20:20:40 +000074
75syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]"
76syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
77
78" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020079" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000080
Bram Moolenaarf37506f2016-08-31 22:22:10 +020081hi def link matlabTransposeOperator matlabOperator
82hi def link matlabOperator Operator
83hi def link matlabLineContinuation Special
84hi def link matlabLabel Label
85hi def link matlabConditional Conditional
86hi def link matlabExceptions Conditional
87hi def link matlabRepeat Repeat
88hi def link matlabTodo Todo
89hi def link matlabString String
90hi def link matlabDelimiter Identifier
91hi def link matlabTransposeOther Identifier
92hi def link matlabNumber Number
93hi def link matlabFloat Float
94hi def link matlabFunction Function
95hi def link matlabError Error
96hi def link matlabImplicit matlabStatement
97hi def link matlabStatement Statement
98hi def link matlabOO Statement
99hi def link matlabSemicolon SpecialChar
100hi def link matlabComment Comment
101hi def link matlabMultilineComment Comment
Bram Moolenaar690afe12017-01-28 18:34:47 +0100102hi def link matlabCellComment Todo
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200103hi def link matlabScope Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000104
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200105hi def link matlabArithmeticOperator matlabOperator
106hi def link matlabRelationalOperator matlabOperator
107hi def link matlabLogicalOperator matlabOperator
Bram Moolenaar071d4272004-06-13 20:20:40 +0000108
109"optional highlighting
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200110"hi def link matlabIdentifier Identifier
111"hi def link matlabTab Error
Bram Moolenaar071d4272004-06-13 20:20:40 +0000112
Bram Moolenaar071d4272004-06-13 20:20:40 +0000113
114let b:current_syntax = "matlab"
115
116"EOF vim: ts=8 noet tw=100 sw=8 sts=0