xref: /vim-8.2.3635/runtime/syntax/matlab.vim (revision cb03397a)
1" Vim syntax file
2" Language:	Matlab
3" Maintainer:	Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
4" Credits:	Preben 'Peppe' Guldberg <[email protected]>
5"		Original author: Mario Eusebio
6" Last Change:	Wed Jan 13 11:12:34 CET 2010
7" 		sinh added to matlab implicit commands
8" Change History:
9" 		- 'global' and 'persistent' keyword are now recognized
10
11" For version 5.x: Clear all syntax items
12" For version 6.x: Quit when a syntax file was already loaded
13if version < 600
14  syntax clear
15elseif exists("b:current_syntax")
16  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
23" MT_ADDON - added exception-specific keywords
24syn keyword matlabExceptions		try catch
25syn keyword matlabOO			classdef properties events methods
26
27syn keyword matlabTodo			contained  TODO
28syn keyword matlabScope			global persistent
29
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
42" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
43syn region matlabString			start=+'+ end=+'+	oneline skip=+''+
44
45" If you don't like tabs
46syn match matlabTab			"\t"
47
48" Standard numbers
49syn match matlabNumber		"\<\d\+[ij]\=\>"
50" floating point number, with dot, optional exponent
51syn match matlabFloat		"\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
52" floating point number, starting with a dot, optional exponent
53syn match matlabFloat		"\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
54
55" Transpose character and delimiters: Either use just [...] or (...) aswell
56syn match matlabDelimiter		"[][]"
57"syn match matlabDelimiter		"[][()]"
58syn match matlabTransposeOperator	"[])a-zA-Z0-9.]'"lc=1
59
60syn match matlabSemicolon		";"
61
62syn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab
63" MT_ADDON - correctly highlights words after '...' as comments
64syn match matlabComment			"\.\.\..*$"	contains=matlabTodo,matlabTab
65syn region matlabMultilineComment	start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
66
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
73syn keyword matlabImplicit		log10 max min sign sin sinh sqrt tan reshape
74
75syn match matlabError	"-\=\<\d\+\.\d\+\.[^*/\\^]"
76syn match matlabError	"-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
77
78" Define the default highlighting.
79" For version 5.7 and earlier: only when not done already
80" For version 5.8 and later: only when an item doesn't have highlighting yet
81if version >= 508 || !exists("did_matlab_syntax_inits")
82  if version < 508
83    let did_matlab_syntax_inits = 1
84    command -nargs=+ HiLink hi link <args>
85  else
86    command -nargs=+ HiLink hi def link <args>
87  endif
88
89  HiLink matlabTransposeOperator	matlabOperator
90  HiLink matlabOperator			Operator
91  HiLink matlabLineContinuation		Special
92  HiLink matlabLabel			Label
93  HiLink matlabConditional		Conditional
94  HiLink matlabExceptions		Conditional
95  HiLink matlabRepeat			Repeat
96  HiLink matlabTodo			Todo
97  HiLink matlabString			String
98  HiLink matlabDelimiter		Identifier
99  HiLink matlabTransposeOther		Identifier
100  HiLink matlabNumber			Number
101  HiLink matlabFloat			Float
102  HiLink matlabFunction			Function
103  HiLink matlabError			Error
104  HiLink matlabImplicit			matlabStatement
105  HiLink matlabStatement		Statement
106  HiLink matlabOO			Statement
107  HiLink matlabSemicolon		SpecialChar
108  HiLink matlabComment			Comment
109  HiLink matlabMultilineComment		Comment
110  HiLink matlabScope			Type
111
112  HiLink matlabArithmeticOperator	matlabOperator
113  HiLink matlabRelationalOperator	matlabOperator
114  HiLink matlabLogicalOperator		matlabOperator
115
116"optional highlighting
117  "HiLink matlabIdentifier		Identifier
118  "HiLink matlabTab			Error
119
120  delcommand HiLink
121endif
122
123let b:current_syntax = "matlab"
124
125"EOF	vim: ts=8 noet tw=100 sw=8 sts=0
126