xref: /vim-8.2.3635/runtime/syntax/matlab.vim (revision 0fa313a7)
1" Vim syntax file
2" Language:	Matlab
3" Maintainer:	Preben 'Peppe' Guldberg <[email protected]>
4"		Original author: Mario Eusebio
5" Last Change:	30 May 2003
6
7" For version 5.x: Clear all syntax items
8" For version 6.x: Quit when a syntax file was already loaded
9if version < 600
10  syntax clear
11elseif exists("b:current_syntax")
12  finish
13endif
14
15syn keyword matlabStatement		return
16syn keyword matlabLabel			case switch
17syn keyword matlabConditional		else elseif end if otherwise
18syn keyword matlabRepeat		do for while
19
20syn keyword matlabTodo			contained  TODO
21
22" If you do not want these operators lit, uncommment them and the "hi link" below
23syn match matlabArithmeticOperator	"[-+]"
24syn match matlabArithmeticOperator	"\.\=[*/\\^]"
25syn match matlabRelationalOperator	"[=~]="
26syn match matlabRelationalOperator	"[<>]=\="
27syn match matlabLogicalOperator		"[&|~]"
28
29syn match matlabLineContinuation	"\.\{3}"
30
31"syn match matlabIdentifier		"\<\a\w*\>"
32
33" String
34syn region matlabString			start=+'+ end=+'+	oneline
35
36" If you don't like tabs
37syn match matlabTab			"\t"
38
39" Standard numbers
40syn match matlabNumber		"\<\d\+[ij]\=\>"
41" floating point number, with dot, optional exponent
42syn match matlabFloat		"\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
43" floating point number, starting with a dot, optional exponent
44syn match matlabFloat		"\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
45
46" Transpose character and delimiters: Either use just [...] or (...) aswell
47syn match matlabDelimiter		"[][]"
48"syn match matlabDelimiter		"[][()]"
49syn match matlabTransposeOperator	"[])a-zA-Z0-9.]'"lc=1
50
51syn match matlabSemicolon		";"
52
53syn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab
54
55syn keyword matlabOperator		break zeros default margin round ones rand
56syn keyword matlabOperator		ceil floor size clear zeros eye mean std cov
57
58syn keyword matlabFunction		error eval function
59
60syn keyword matlabImplicit		abs acos atan asin cos cosh exp log prod sum
61syn keyword matlabImplicit		log10 max min sign sin sqrt tan reshape
62
63syn match matlabError	"-\=\<\d\+\.\d\+\.[^*/\\^]"
64syn match matlabError	"-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
65
66" Define the default highlighting.
67" For version 5.7 and earlier: only when not done already
68" For version 5.8 and later: only when an item doesn't have highlighting yet
69if version >= 508 || !exists("did_matlab_syntax_inits")
70  if version < 508
71    let did_matlab_syntax_inits = 1
72    command -nargs=+ HiLink hi link <args>
73  else
74    command -nargs=+ HiLink hi def link <args>
75  endif
76
77  HiLink matlabTransposeOperator	matlabOperator
78  HiLink matlabOperator		Operator
79  HiLink matlabLineContinuation	Special
80  HiLink matlabLabel			Label
81  HiLink matlabConditional		Conditional
82  HiLink matlabRepeat			Repeat
83  HiLink matlabTodo			Todo
84  HiLink matlabString			String
85  HiLink matlabDelimiter		Identifier
86  HiLink matlabTransposeOther		Identifier
87  HiLink matlabNumber			Number
88  HiLink matlabFloat			Float
89  HiLink matlabFunction		Function
90  HiLink matlabError			Error
91  HiLink matlabImplicit		matlabStatement
92  HiLink matlabStatement		Statement
93  HiLink matlabSemicolon		SpecialChar
94  HiLink matlabComment			Comment
95
96  HiLink matlabArithmeticOperator	matlabOperator
97  HiLink matlabRelationalOperator	matlabOperator
98  HiLink matlabLogicalOperator		matlabOperator
99
100"optional highlighting
101  "HiLink matlabIdentifier		Identifier
102  "HiLink matlabTab			Error
103
104  delcommand HiLink
105endif
106
107let b:current_syntax = "matlab"
108
109"EOF	vim: ts=8 noet tw=100 sw=8 sts=0
110