blob: 7d20368e054abfbefb8adf9b5efddea9b3ba6537 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Matlab
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +01003" Maintainer: Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
Bram Moolenaar5c736222010-01-06 20:54:52 +01004" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
Bram Moolenaar071d4272004-06-13 20:20:40 +00005" Original author: Mario Eusebio
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +01006" Last Change: Wed Jan 13 11:12:34 CET 2010
7" - 'global' and 'persistent' keyword are now recognized
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
9" For version 5.x: Clear all syntax items
10" For version 6.x: Quit when a syntax file was already loaded
11if version < 600
12 syntax clear
13elseif exists("b:current_syntax")
14 finish
15endif
16
17syn keyword matlabStatement return
18syn keyword matlabLabel case switch
19syn keyword matlabConditional else elseif end if otherwise
20syn keyword matlabRepeat do for while
Bram Moolenaar5c736222010-01-06 20:54:52 +010021" MT_ADDON - added exception-specific keywords
22syn keyword matlabExceptions try catch
23syn keyword matlabOO classdef properties events methods
Bram Moolenaar071d4272004-06-13 20:20:40 +000024
25syn keyword matlabTodo contained TODO
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010026syn keyword matlabScope global persistent
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
28" If you do not want these operators lit, uncommment them and the "hi link" below
29syn match matlabArithmeticOperator "[-+]"
30syn match matlabArithmeticOperator "\.\=[*/\\^]"
31syn match matlabRelationalOperator "[=~]="
32syn match matlabRelationalOperator "[<>]=\="
33syn match matlabLogicalOperator "[&|~]"
34
35syn match matlabLineContinuation "\.\{3}"
36
37"syn match matlabIdentifier "\<\a\w*\>"
38
39" String
Bram Moolenaar5c736222010-01-06 20:54:52 +010040" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010041syn region matlabString start=+'+ end=+'+ oneline skip=+''+
Bram Moolenaar071d4272004-06-13 20:20:40 +000042
43" If you don't like tabs
44syn match matlabTab "\t"
45
46" Standard numbers
47syn match matlabNumber "\<\d\+[ij]\=\>"
48" floating point number, with dot, optional exponent
49syn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
50" floating point number, starting with a dot, optional exponent
51syn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
52
53" Transpose character and delimiters: Either use just [...] or (...) aswell
54syn match matlabDelimiter "[][]"
55"syn match matlabDelimiter "[][()]"
56syn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1
57
58syn match matlabSemicolon ";"
59
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010060syn match matlabComment "%.*$" contains=matlabTodo,matlabTab
Bram Moolenaar5c736222010-01-06 20:54:52 +010061" MT_ADDON - correctly highlights words after '...' as comments
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +010062syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab
63syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
65syn keyword matlabOperator break zeros default margin round ones rand
66syn keyword matlabOperator ceil floor size clear zeros eye mean std cov
67
68syn keyword matlabFunction error eval function
69
70syn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum
71syn keyword matlabImplicit log10 max min sign sin sqrt tan reshape
72
73syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]"
74syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
75
76" Define the default highlighting.
77" For version 5.7 and earlier: only when not done already
78" For version 5.8 and later: only when an item doesn't have highlighting yet
79if version >= 508 || !exists("did_matlab_syntax_inits")
80 if version < 508
81 let did_matlab_syntax_inits = 1
82 command -nargs=+ HiLink hi link <args>
83 else
84 command -nargs=+ HiLink hi def link <args>
85 endif
86
87 HiLink matlabTransposeOperator matlabOperator
Bram Moolenaar5c736222010-01-06 20:54:52 +010088 HiLink matlabOperator Operator
89 HiLink matlabLineContinuation Special
Bram Moolenaar071d4272004-06-13 20:20:40 +000090 HiLink matlabLabel Label
91 HiLink matlabConditional Conditional
Bram Moolenaar5c736222010-01-06 20:54:52 +010092 HiLink matlabExceptions Conditional
Bram Moolenaar071d4272004-06-13 20:20:40 +000093 HiLink matlabRepeat Repeat
94 HiLink matlabTodo Todo
95 HiLink matlabString String
96 HiLink matlabDelimiter Identifier
97 HiLink matlabTransposeOther Identifier
98 HiLink matlabNumber Number
99 HiLink matlabFloat Float
Bram Moolenaar5c736222010-01-06 20:54:52 +0100100 HiLink matlabFunction Function
Bram Moolenaar071d4272004-06-13 20:20:40 +0000101 HiLink matlabError Error
Bram Moolenaar5c736222010-01-06 20:54:52 +0100102 HiLink matlabImplicit matlabStatement
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103 HiLink matlabStatement Statement
Bram Moolenaar5c736222010-01-06 20:54:52 +0100104 HiLink matlabOO Statement
Bram Moolenaar071d4272004-06-13 20:20:40 +0000105 HiLink matlabSemicolon SpecialChar
106 HiLink matlabComment Comment
Bram Moolenaar5c736222010-01-06 20:54:52 +0100107 HiLink matlabMultilineComment Comment
Bram Moolenaar9db9d9c2010-01-16 14:29:14 +0100108 HiLink matlabScope Type
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109
110 HiLink matlabArithmeticOperator matlabOperator
111 HiLink matlabRelationalOperator matlabOperator
112 HiLink matlabLogicalOperator matlabOperator
113
114"optional highlighting
115 "HiLink matlabIdentifier Identifier
116 "HiLink matlabTab Error
117
118 delcommand HiLink
119endif
120
121let b:current_syntax = "matlab"
122
123"EOF vim: ts=8 noet tw=100 sw=8 sts=0