xref: /vim-8.2.3635/runtime/syntax/matlab.vim (revision 12ee7ff0)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Matlab
3690afe1fSBram Moolenaar" Maintainer:	Alex Burka <[email protected]>
45c73622aSBram Moolenaar" Credits:	Preben 'Peppe' Guldberg <[email protected]>
5690afe1fSBram Moolenaar"		Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
6071d4279SBram Moolenaar"		Original author: Mario Eusebio
7*12ee7ff0SBram Moolenaar" Last Change:	June 10 2019
8*12ee7ff0SBram Moolenaar" 		added highlight rule for double-quoted string literals
9251e1912SBram Moolenaar" Change History:
10*12ee7ff0SBram Moolenaar"               - double-quoted string literals added
11690afe1fSBram Moolenaar" 		- now highlights cell-mode separator comments
129db9d9ceSBram Moolenaar" 		- 'global' and 'persistent' keyword are now recognized
13071d4279SBram Moolenaar
1489bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1589bcfda6SBram Moolenaarif exists("b:current_syntax")
16071d4279SBram Moolenaar  finish
17071d4279SBram Moolenaarendif
18071d4279SBram Moolenaar
19071d4279SBram Moolenaarsyn keyword matlabStatement		return
20071d4279SBram Moolenaarsyn keyword matlabLabel			case switch
21071d4279SBram Moolenaarsyn keyword matlabConditional		else elseif end if otherwise
22071d4279SBram Moolenaarsyn keyword matlabRepeat		do for while
235c73622aSBram Moolenaar" MT_ADDON - added exception-specific keywords
245c73622aSBram Moolenaarsyn keyword matlabExceptions		try catch
255c73622aSBram Moolenaarsyn keyword matlabOO			classdef properties events methods
26071d4279SBram Moolenaar
27071d4279SBram Moolenaarsyn keyword matlabTodo			contained  TODO
289db9d9ceSBram Moolenaarsyn keyword matlabScope			global persistent
29071d4279SBram Moolenaar
30071d4279SBram Moolenaar" If you do not want these operators lit, uncommment them and the "hi link" below
31071d4279SBram Moolenaarsyn match matlabArithmeticOperator	"[-+]"
32071d4279SBram Moolenaarsyn match matlabArithmeticOperator	"\.\=[*/\\^]"
33071d4279SBram Moolenaarsyn match matlabRelationalOperator	"[=~]="
34071d4279SBram Moolenaarsyn match matlabRelationalOperator	"[<>]=\="
35071d4279SBram Moolenaarsyn match matlabLogicalOperator		"[&|~]"
36071d4279SBram Moolenaar
37071d4279SBram Moolenaarsyn match matlabLineContinuation	"\.\{3}"
38071d4279SBram Moolenaar
39071d4279SBram Moolenaar"syn match matlabIdentifier		"\<\a\w*\>"
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" String
425c73622aSBram Moolenaar" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
439db9d9ceSBram Moolenaarsyn region matlabString			start=+'+ end=+'+	oneline skip=+''+
44*12ee7ff0SBram Moolenaarsyn region matlabStringArray		start=+"+ end=+"+	oneline skip=+""+
45071d4279SBram Moolenaar
46071d4279SBram Moolenaar" If you don't like tabs
47071d4279SBram Moolenaarsyn match matlabTab			"\t"
48071d4279SBram Moolenaar
49071d4279SBram Moolenaar" Standard numbers
50071d4279SBram Moolenaarsyn match matlabNumber		"\<\d\+[ij]\=\>"
51071d4279SBram Moolenaar" floating point number, with dot, optional exponent
52071d4279SBram Moolenaarsyn match matlabFloat		"\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
53071d4279SBram Moolenaar" floating point number, starting with a dot, optional exponent
54071d4279SBram Moolenaarsyn match matlabFloat		"\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
55071d4279SBram Moolenaar
56071d4279SBram Moolenaar" Transpose character and delimiters: Either use just [...] or (...) aswell
57071d4279SBram Moolenaarsyn match matlabDelimiter		"[][]"
58071d4279SBram Moolenaar"syn match matlabDelimiter		"[][()]"
59071d4279SBram Moolenaarsyn match matlabTransposeOperator	"[])a-zA-Z0-9.]'"lc=1
60071d4279SBram Moolenaar
61071d4279SBram Moolenaarsyn match matlabSemicolon		";"
62071d4279SBram Moolenaar
639db9d9ceSBram Moolenaarsyn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab
645c73622aSBram Moolenaar" MT_ADDON - correctly highlights words after '...' as comments
659db9d9ceSBram Moolenaarsyn match matlabComment			"\.\.\..*$"	contains=matlabTodo,matlabTab
669db9d9ceSBram Moolenaarsyn region matlabMultilineComment	start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
67690afe1fSBram Moolenaarsyn match matlabCellComment     "^%%.*$"
68071d4279SBram Moolenaar
69071d4279SBram Moolenaarsyn keyword matlabOperator		break zeros default margin round ones rand
70071d4279SBram Moolenaarsyn keyword matlabOperator		ceil floor size clear zeros eye mean std cov
71071d4279SBram Moolenaar
72071d4279SBram Moolenaarsyn keyword matlabFunction		error eval function
73071d4279SBram Moolenaar
74071d4279SBram Moolenaarsyn keyword matlabImplicit		abs acos atan asin cos cosh exp log prod sum
75251e1912SBram Moolenaarsyn keyword matlabImplicit		log10 max min sign sin sinh sqrt tan reshape
76071d4279SBram Moolenaar
77071d4279SBram Moolenaarsyn match matlabError	"-\=\<\d\+\.\d\+\.[^*/\\^]"
78071d4279SBram Moolenaarsyn match matlabError	"-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
79071d4279SBram Moolenaar
80071d4279SBram Moolenaar" Define the default highlighting.
8189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
82071d4279SBram Moolenaar
83f37506f6SBram Moolenaarhi def link matlabTransposeOperator	matlabOperator
84f37506f6SBram Moolenaarhi def link matlabOperator			Operator
85f37506f6SBram Moolenaarhi def link matlabLineContinuation		Special
86f37506f6SBram Moolenaarhi def link matlabLabel			Label
87f37506f6SBram Moolenaarhi def link matlabConditional		Conditional
88f37506f6SBram Moolenaarhi def link matlabExceptions		Conditional
89f37506f6SBram Moolenaarhi def link matlabRepeat			Repeat
90f37506f6SBram Moolenaarhi def link matlabTodo			Todo
91f37506f6SBram Moolenaarhi def link matlabString			String
92*12ee7ff0SBram Moolenaarhi def link matlabStringArray			String
93f37506f6SBram Moolenaarhi def link matlabDelimiter		Identifier
94f37506f6SBram Moolenaarhi def link matlabTransposeOther		Identifier
95f37506f6SBram Moolenaarhi def link matlabNumber			Number
96f37506f6SBram Moolenaarhi def link matlabFloat			Float
97f37506f6SBram Moolenaarhi def link matlabFunction			Function
98f37506f6SBram Moolenaarhi def link matlabError			Error
99f37506f6SBram Moolenaarhi def link matlabImplicit			matlabStatement
100f37506f6SBram Moolenaarhi def link matlabStatement		Statement
101f37506f6SBram Moolenaarhi def link matlabOO			Statement
102f37506f6SBram Moolenaarhi def link matlabSemicolon		SpecialChar
103f37506f6SBram Moolenaarhi def link matlabComment			Comment
104f37506f6SBram Moolenaarhi def link matlabMultilineComment		Comment
105690afe1fSBram Moolenaarhi def link matlabCellComment          Todo
106f37506f6SBram Moolenaarhi def link matlabScope			Type
107071d4279SBram Moolenaar
108f37506f6SBram Moolenaarhi def link matlabArithmeticOperator	matlabOperator
109f37506f6SBram Moolenaarhi def link matlabRelationalOperator	matlabOperator
110f37506f6SBram Moolenaarhi def link matlabLogicalOperator		matlabOperator
111071d4279SBram Moolenaar
112071d4279SBram Moolenaar"optional highlighting
113f37506f6SBram Moolenaar"hi def link matlabIdentifier		Identifier
114f37506f6SBram Moolenaar"hi def link matlabTab			Error
115071d4279SBram Moolenaar
116071d4279SBram Moolenaar
117071d4279SBram Moolenaarlet b:current_syntax = "matlab"
118071d4279SBram Moolenaar
119071d4279SBram Moolenaar"EOF	vim: ts=8 noet tw=100 sw=8 sts=0
120