summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/matlab.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/matlab.vim')
-rw-r--r--runtime/syntax/matlab.vim119
1 files changed, 119 insertions, 0 deletions
diff --git a/runtime/syntax/matlab.vim b/runtime/syntax/matlab.vim
new file mode 100644
index 0000000..5202809
--- /dev/null
+++ b/runtime/syntax/matlab.vim
@@ -0,0 +1,119 @@
+" Vim syntax file
+" Language: Matlab
+" Maintainer: Alex Burka <vim@alexburka.com>
+" Credits: Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
+" Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
+" Original author: Mario Eusebio
+" Last Change: June 10 2019
+" added highlight rule for double-quoted string literals
+" Change History:
+" - double-quoted string literals added
+" - now highlights cell-mode separator comments
+" - 'global' and 'persistent' keyword are now recognized
+
+" quit when a syntax file was already loaded
+if exists("b:current_syntax")
+ finish
+endif
+
+syn keyword matlabStatement return
+syn keyword matlabLabel case switch
+syn keyword matlabConditional else elseif end if otherwise
+syn keyword matlabRepeat do for while
+" MT_ADDON - added exception-specific keywords
+syn keyword matlabExceptions try catch
+syn keyword matlabOO classdef properties events methods
+
+syn keyword matlabTodo contained TODO
+syn keyword matlabScope global persistent
+
+" If you do not want these operators lit, uncommment them and the "hi link" below
+syn match matlabArithmeticOperator "[-+]"
+syn match matlabArithmeticOperator "\.\=[*/\\^]"
+syn match matlabRelationalOperator "[=~]="
+syn match matlabRelationalOperator "[<>]=\="
+syn match matlabLogicalOperator "[&|~]"
+
+syn match matlabLineContinuation "\.\{3}"
+
+"syn match matlabIdentifier "\<\a\w*\>"
+
+" String
+" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence
+syn region matlabString start=+'+ end=+'+ oneline skip=+''+
+syn region matlabStringArray start=+"+ end=+"+ oneline skip=+""+
+
+" If you don't like tabs
+syn match matlabTab "\t"
+
+" Standard numbers
+syn match matlabNumber "\<\d\+[ij]\=\>"
+" floating point number, with dot, optional exponent
+syn match matlabFloat "\<\d\+\(\.\d*\)\=\([edED][-+]\=\d\+\)\=[ij]\=\>"
+" floating point number, starting with a dot, optional exponent
+syn match matlabFloat "\.\d\+\([edED][-+]\=\d\+\)\=[ij]\=\>"
+
+" Transpose character and delimiters: Either use just [...] or (...) aswell
+syn match matlabDelimiter "[][]"
+"syn match matlabDelimiter "[][()]"
+syn match matlabTransposeOperator "[])a-zA-Z0-9.]'"lc=1
+
+syn match matlabSemicolon ";"
+
+syn match matlabComment "%.*$" contains=matlabTodo,matlabTab
+" MT_ADDON - correctly highlights words after '...' as comments
+syn match matlabComment "\.\.\..*$" contains=matlabTodo,matlabTab
+syn region matlabMultilineComment start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
+syn match matlabCellComment "^%%.*$"
+
+syn keyword matlabOperator break zeros default margin round ones rand
+syn keyword matlabOperator ceil floor size clear zeros eye mean std cov
+
+syn keyword matlabFunction error eval function
+
+syn keyword matlabImplicit abs acos atan asin cos cosh exp log prod sum
+syn keyword matlabImplicit log10 max min sign sin sinh sqrt tan reshape
+
+syn match matlabError "-\=\<\d\+\.\d\+\.[^*/\\^]"
+syn match matlabError "-\=\<\d\+\.\d\+[eEdD][-+]\=\d\+\.\([^*/\\^]\)"
+
+" Define the default highlighting.
+" Only when an item doesn't have highlighting yet
+
+hi def link matlabTransposeOperator matlabOperator
+hi def link matlabOperator Operator
+hi def link matlabLineContinuation Special
+hi def link matlabLabel Label
+hi def link matlabConditional Conditional
+hi def link matlabExceptions Conditional
+hi def link matlabRepeat Repeat
+hi def link matlabTodo Todo
+hi def link matlabString String
+hi def link matlabStringArray String
+hi def link matlabDelimiter Identifier
+hi def link matlabTransposeOther Identifier
+hi def link matlabNumber Number
+hi def link matlabFloat Float
+hi def link matlabFunction Function
+hi def link matlabError Error
+hi def link matlabImplicit matlabStatement
+hi def link matlabStatement Statement
+hi def link matlabOO Statement
+hi def link matlabSemicolon SpecialChar
+hi def link matlabComment Comment
+hi def link matlabMultilineComment Comment
+hi def link matlabCellComment Todo
+hi def link matlabScope Type
+
+hi def link matlabArithmeticOperator matlabOperator
+hi def link matlabRelationalOperator matlabOperator
+hi def link matlabLogicalOperator matlabOperator
+
+"optional highlighting
+"hi def link matlabIdentifier Identifier
+"hi def link matlabTab Error
+
+
+let b:current_syntax = "matlab"
+
+"EOF vim: ts=8 noet tw=100 sw=8 sts=0