blob: 360fc8ff9f49dcaf165b0cc7a88c8699fa3f7ca4 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Rexx
3" Maintainer: Thomas Geulig <geulig@nentec.de>
Bram Moolenaar3a0d8092012-10-21 03:02:54 +02004" Last Change: 2012 Sep 14, added support for new ooRexx 4.0 features
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00005" URL: http://www.geulig.de/vim/rexx.vim
Bram Moolenaar4c3f5362006-04-11 21:38:50 +00006" Special Thanks to Dan Sharp <dwsharp@hotmail.com> and Rony G. Flatscher
7" <Rony.Flatscher@wu-wien.ac.at> for comments and additions
Bram Moolenaar071d4272004-06-13 20:20:40 +00008
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02009" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
14syn case ignore
15
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000016" add to valid identifier chars
17setlocal iskeyword+=.
18setlocal iskeyword+=!
19setlocal iskeyword+=?
20
21" ---rgf, position important: must be before comments etc. !
Bram Moolenaar8c8de832008-06-24 22:58:06 +000022syn match rexxOperator "[=|\/\\\+\*\[\],;:<>&\~%\-]"
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000023
Bram Moolenaar8c8de832008-06-24 22:58:06 +000024" rgf syn match rexxIdentifier "\<[a-zA-Z\!\?_]\([a-zA-Z0-9._?!]\)*\>"
25syn match rexxIdentifier "\<\K\k*\>"
26syn match rexxEnvironmentSymbol "\<\.\k\+\>"
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000027
Bram Moolenaar071d4272004-06-13 20:20:40 +000028" A Keyword is the first symbol in a clause. A clause begins at the start
29" of a line or after a semicolon. THEN, ELSE, OTHERWISE, and colons are always
30" followed by an implied semicolon.
Bram Moolenaar8c8de832008-06-24 22:58:06 +000031syn match rexxClause "\(^\|;\|:\|then \|else \|when \|otherwise \)\s*\S*" contains=ALLBUT,rexxParse2,rexxRaise2,rexxForward2
Bram Moolenaar071d4272004-06-13 20:20:40 +000032
33" Considered keywords when used together in a phrase and begin a clause
Bram Moolenaar8c8de832008-06-24 22:58:06 +000034syn match rexxParse "\<parse\s*\(\(upper\|lower\|caseless\)\s*\)\?\(arg\|linein\|pull\|source\|var\|\<value\>\|version\)\>" containedin=rexxClause contains=rexxParse2
35syn match rexxParse2 "\<with\>" containedin=rexxParse
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000036
Bram Moolenaar071d4272004-06-13 20:20:40 +000037syn match rexxKeyword contained "\<numeric \(digits\|form \(scientific\|engineering\|value\)\|fuzz\)\>"
Bram Moolenaar8c8de832008-06-24 22:58:06 +000038syn match rexxKeyword contained "\<\(address\|trace\)\( value\)\?\>"
39syn match rexxKeyword contained "\<procedure\(\s*expose\)\?\>"
40
41syn match rexxKeyword contained "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\(\s\+forever\)\?\>"
42syn match rexxKeyword contained "\<use\>\s*\(strict\s*\)\?\<arg\>"
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
44" Another keyword phrase, separated to aid highlighting in rexxFunction
Bram Moolenaar8c8de832008-06-24 22:58:06 +000045syn match rexxRegularCallSignal contained "\<\(call\|signal\)\s\(\s*on\>\|\s*off\>\)\@!\(\k\+\ze\|\ze(\)\(\s*\|;\|$\|(\)"
46syn region rexxLabel contained start="\<\(call\|signal\)\>\s*\zs\(\k*\|(\)" end="\ze\(\s*\|;\|$\|(\)" containedin=rexxRegularCallSignal
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000047
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020048syn match rexxExceptionHandling contained "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>.*\(;\|$\)" contains=rexxComment
Bram Moolenaar8c8de832008-06-24 22:58:06 +000049
50" hilite label given after keyword "name"
51syn match rexxLabel "name\s\+\zs\k\+\ze" containedin=rexxExceptionHandling
52" hilite condition name (serves as label)
53syn match rexxLabel "\<\(call\|signal\)\>\s\+\<\(on\|off\)\>\s*\zs\k\+\ze\s*\(;\|$\)" containedin=rexxExceptionHandling
54" user exception handling, hilite user defined name
55syn region rexxLabel contained start="user\s\+\zs\k" end="\ze\(\s\|;\|$\)" containedin=rexxExceptionHandling
Bram Moolenaar071d4272004-06-13 20:20:40 +000056
57" Considered keywords when they begin a clause
Bram Moolenaar8c8de832008-06-24 22:58:06 +000058syn match rexxKeywordStatements "\<\(arg\|catch\|do\|drop\|end\|exit\|expose\|finally\|forward\|if\|interpret\|iterate\|leave\|loop\|nop\)\>"
59syn match rexxKeywordStatements "\<\(options\|pull\|push\|queue\|raise\|reply\|return\|say\|select\|trace\)\>"
60
61" Conditional keywords starting a new statement
62syn match rexxConditional "\<\(then\|else\|when\|otherwise\)\(\s*\|;\|\_$\|\)\>" contains=rexxKeywordStatements
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
64" Conditional phrases
Bram Moolenaar8c8de832008-06-24 22:58:06 +000065syn match rexxLoopKeywords "\<\(to\|by\|for\|until\|while\|over\)\>" containedin=doLoopSelectLabelRegion
Bram Moolenaar071d4272004-06-13 20:20:40 +000066
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000067" must be after Conditional phrases!
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020068syn match doLoopSelectLabelRegion "\<\(do\|loop\|select\)\>\s\+\(label\s\+\)\?\(\s\+\k\+\s\+\zs\<over\>\)\?\k*\(\s\+forever\)\?\(\s\|;\|$\)" contains=doLoopSelectLabelRegion,rexxStartValueAssignment,rexxLoopKeywords
Bram Moolenaar8c8de832008-06-24 22:58:06 +000069
70" color label's name
71syn match rexxLabel2 "\<\(do\|loop\|select\)\>\s\+label\s\+\zs\k*\ze" containedin=doLoopSelectLabelRegion
72
73" make sure control variable is normal
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020074" TODO: re-activate ?
75"rgf syn match rexxControlVariable "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\s\+\<over\>" containedin=doLoopSelectLabelRegion
Bram Moolenaar8c8de832008-06-24 22:58:06 +000076
77" make sure control variable assignment is normal
78syn match rexxStartValueAssignment "\<\(do\|loop\)\>\(\s\+label\s\+\k*\)\?\s\+\zs.*\ze\(=.*\)\?\s\+\<to\>" containedin=doLoopSelectLabelRegion
79
80" highlight label name
81syn match endIterateLeaveLabelRegion "\<\(end\|leave\|iterate\)\>\(\s\+\K\k*\)" contains=rexxLabel2
82syn match rexxLabel2 "\<\(end\|leave\|iterate\)\>\s\+\zs\k*\ze" containedin=endIterateLeaveLabelRegion
83
84" Guard statement
85syn match rexxGuard "\(^\|;\|:\)\s*\<guard\>\s\+\<\(on\|off\)\>"
86
87" Trace statement
88syn match rexxTrace "\(^\|;\|:\)\s*\<trace\>\s\+\<\K\k*\>"
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000089
90" Raise statement
Bram Moolenaar3a0d8092012-10-21 03:02:54 +020091" syn match rexxRaise "\(^\|;\|:\)\s\+\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2
92syn match rexxRaise "\(^\|;\|:\)\s*\<raise\>\s*\<\(propagate\|error\|failure\|syntax\|user\)\>\?" contains=rexxRaise2
Bram Moolenaar8c8de832008-06-24 22:58:06 +000093syn match rexxRaise2 "\<\(additional\|array\|description\|exit\|propagate\|return\)\>" containedin=rexxRaise
Bram Moolenaar4c3f5362006-04-11 21:38:50 +000094
Bram Moolenaar8c8de832008-06-24 22:58:06 +000095" Forward statement
96syn match rexxForward "\(^\|;\|:\)\<forward\>\s*" contains=rexxForward2
97syn match rexxForward2 "\<\(arguments\|array\|continue\|message\|class\|to\)\>" contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000098
99" Functions/Procedures
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000100syn match rexxFunction "\<\<[a-zA-Z\!\?_]\k*\>("me=e-1
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000101syn match rexxFunction "[()]"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000102
103" String constants
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000104syn region rexxString start=+"+ skip=+""+ end=+"\(x\|b\)\?+ oneline
105syn region rexxString start=+'+ skip=+''+ end=+'\(x\|b\)\?+ oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +0000106
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000107syn region rexxParen transparent start='(' end=')' contains=ALLBUT,rexxParenError,rexxTodo,rexxLabel,rexxKeyword
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000108" Catch errors caused by wrong parenthesis
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109syn match rexxParenError ")"
110syn match rexxInParen "[\\[\\]{}]"
111
112" Comments
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000113syn region rexxComment start="/\*" end="\*/" contains=rexxTodo,rexxComment
114syn match rexxCommentError "\*/"
115syn region rexxLineComment start="--" end="\_$" oneline
116
117" Highlight User Labels
118" check for labels between comments, labels stated in a statement in the middle of a line
119syn match rexxLabel "\(\_^\|;\)\s*\(\/\*.*\*\/\)*\s*\k\+\s*\(\/\*.*\*\/\)*\s*:"me=e-1 contains=rexxTodo,rexxComment
Bram Moolenaar071d4272004-06-13 20:20:40 +0000120
121syn keyword rexxTodo contained TODO FIXME XXX
122
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000123" ooRexx messages
124syn region rexxMessageOperator start="\(\~\|\~\~\)" end="\(\S\|\s\)"me=e-1
125syn match rexxMessage "\(\~\|\~\~\)\s*\<\.*[a-zA-Z]\([a-zA-Z0-9._?!]\)*\>" contains=rexxMessageOperator
126
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000127" line continuations, take care of (line-)comments after it
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000128syn match rexxLineContinue ",\ze\s*\(--.*\|\/\*.*\)*$"
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000129
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000130" the following is necessary, otherwise three consecutive dashes will cause it to highlight the first one
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000131syn match rexxLineContinue "-\ze-\@!\s*\(--.*\|\s*\/\*.*\)\?$"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000132
133" Special Variables
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000134syn keyword rexxSpecialVariable sigl rc result self super
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000135syn keyword rexxSpecialVariable .environment .error .input .local .methods .output .rs .stderr .stdin .stdout .stdque
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000136
137" Constants
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200138syn keyword rexxConst .true .false .nil .endOfLine .line .context
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000139
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200140" Rexx numbers
141" int like number
142syn match rexxNumber '\d\+' contained
143syn match rexxNumber '[-+]\s*\d\+' contained
144
145" Floating point number with decimal
146syn match rexxNumber '\d\+\.\d*' contained
147syn match rexxNumber '[-+]\s*\d\+\.\d*' contained
148
149" Floating point like number with E
150syn match rexxNumber '[-+]\s*\d*[eE][\-+]\d\+' contained
151syn match rexxNumber '\d*[eE][\-+]\d\+' contained
152
153" Floating point like number with E and decimal point (+,-)
154syn match rexxNumber '[-+]\s*\d*\.\d*[eE][\-+]\d\+' contained
155syn match rexxNumber '\d*\.\d*[eE][\-+]\d\+' contained
156
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000157
158" ooRexx builtin classes (as of version 3.2.0, fall 2007), first define dot to be o.k. in keywords
159syn keyword rexxBuiltinClass .Alarm .ArgUtil .Array .Bag .CaselessColumnComparator
160syn keyword rexxBuiltinClass .CaselessComparator .CaselessDescendingComparator .CircularQueue
161syn keyword rexxBuiltinClass .Class .Collection .ColumnComparator .Comparable .Comparator
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200162syn keyword rexxBuiltinClass .DateTime .DescendingComparator .Directory .File .InputOutputStream
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000163syn keyword rexxBuiltinClass .InputStream .InvertingComparator .List .MapCollection
164syn keyword rexxBuiltinClass .Message .Method .Monitor .MutableBuffer .Object
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200165syn keyword rexxBuiltinClass .OrderedCollection .OutputStream .Package .Properties .Queue
166syn keyword rexxBuiltinClass .RegularExpression .Relation .RexxContext .RexxQueue .Routine
167syn keyword rexxBuiltinClass .Set .SetCollection .Stem .Stream
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000168syn keyword rexxBuiltinClass .StreamSupplier .String .Supplier .Table .TimeSpan
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000169
170" Windows-only classes
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000171syn keyword rexxBuiltinClass .AdvancedControls .AnimatedButton .BaseDialog .ButtonControl
172syn keyword rexxBuiltinClass .CategoryDialog .CheckBox .CheckList .ComboBox .DialogControl
173syn keyword rexxBuiltinClass .DialogExtensions .DlgArea .DlgAreaU .DynamicDialog
174syn keyword rexxBuiltinClass .EditControl .InputBox .IntegerBox .ListBox .ListChoice
175syn keyword rexxBuiltinClass .ListControl .MenuObject .MessageExtensions .MultiInputBox
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200176syn keyword rexxBuiltinClass .MultiListChoice .OLEObject .OLEVariant
177syn keyword rexxBuiltinClass .PasswordBox .PlainBaseDialog .PlainUserDialog
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000178syn keyword rexxBuiltinClass .ProgressBar .ProgressIndicator .PropertySheet .RadioButton
179syn keyword rexxBuiltinClass .RcDialog .ResDialog .ScrollBar .SingleSelection .SliderControl
180syn keyword rexxBuiltinClass .StateIndicator .StaticControl .TabControl .TimedMessage
181syn keyword rexxBuiltinClass .TreeControl .UserDialog .VirtualKeyCodes .WindowBase
182syn keyword rexxBuiltinClass .WindowExtensions .WindowObject .WindowsClassesBase .WindowsClipboard
183syn keyword rexxBuiltinClass .WindowsEventLog .WindowsManager .WindowsProgramManager .WindowsRegistry
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000184
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200185" BSF4ooRexx classes
186syn keyword rexxBuiltinClass .BSF .bsf.dialog .bsf_proxy
187syn keyword rexxBuiltinClass .UNO .UNO_ENUM .UNO_CONSTANTS .UNO_PROPERTIES
188
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000189" ooRexx directives, ---rgf location important, otherwise directives in top of file not matched!
190syn region rexxClassDirective start="::\s*class\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
191syn region rexxMethodDirective start="::\s*method\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
192syn region rexxRequiresDirective start="::\s*requires\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
193syn region rexxRoutineDirective start="::\s*routine\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
194syn region rexxAttributeDirective start="::\s*attribute\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200195" rgf, 2012-09-09
196syn region rexxOptionsDirective start="::\s*options\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
197syn region rexxConstantDirective start="::\s*constant\s*"ms=e+1 end="\ze\(\s\|;\|$\)"
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000198
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200199syn region rexxDirective start="\(^\|;\)\s*::\s*\w\+" end="\($\|;\)" contains=rexxString,rexxNumber,rexxComment,rexxLineComment,rexxClassDirective,rexxMethodDirective,rexxRoutineDirective,rexxRequiresDirective,rexxAttributeDirective,rexxOptionsDirective,rexxConstantDirective keepend
200
201syn match rexxOptionsDirective2 "\<\(digits\|form\|fuzz\|trace\)\>" containedin = rexxOptionsDirective3
202syn region rexxOptionsDirective3 start="\(^\|;\)\s*::\s*options\s"ms=e+1 end="\($\|;\)" contains=rexxString,rexxNumber,rexxVariable,rexxComment,rexxLineComment containedin = rexxDirective
203
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000204
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000205syn region rexxVariable start="\zs\<\(\.\)\@!\K\k\+\>\ze\s*\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)" end="\(\_$\|.\)"me=e-1
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200206syn match rexxVariable "\(=\|,\|)\|%\|\]\|\\\||\|&\|+=\|-=\|<\|>\)\s*\zs\K\k*\ze"
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000207
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000208" rgf, 2007-07-22: unfortunately, the entire region is colored (not only the
209" patterns), hence useless (vim 7.0)! (syntax-docs hint that that should work)
210" attempt: just colorize the parenthesis in matching colors, keep content
211" transparent to keep the formatting already done to it!
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200212" TODO: test on 7.3
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000213" syn region par1 matchgroup=par1 start="(" matchgroup=par1 end=")" transparent contains=par2
214" syn region par2 matchgroup=par2 start="(" matchgroup=par2 end=")" transparent contains=par3 contained
215" syn region par3 matchgroup=par3 start="(" matchgroup=par3 end=")" transparent contains=par4 contained
216" syn region par4 matchgroup=par4 start="(" matchgroup=par4 end=")" transparent contains=par5 contained
217" syn region par5 matchgroup=par5 start="(" matchgroup=par5 end=")" transparent contains=par1 contained
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000218
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000219" this will colorize the entire region, removing any colorizing already done!
220" syn region par1 matchgroup=par1 start="(" end=")" contains=par2
221" syn region par2 matchgroup=par2 start="(" end=")" contains=par3 contained
222" syn region par3 matchgroup=par3 start="(" end=")" contains=par4 contained
223" syn region par4 matchgroup=par4 start="(" end=")" contains=par5 contained
224" syn region par5 matchgroup=par5 start="(" end=")" contains=par1 contained
Bram Moolenaar071d4272004-06-13 20:20:40 +0000225
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200226hi par1 ctermfg=red guifg=red "guibg=grey
227hi par2 ctermfg=blue guifg=blue "guibg=grey
228hi par3 ctermfg=darkgreen guifg=darkgreen "guibg=grey
229hi par4 ctermfg=darkyellow guifg=darkyellow "guibg=grey
230hi par5 ctermfg=darkgrey guifg=darkgrey "guibg=grey
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000231
232" line continuation (trailing comma or single dash)
233syn sync linecont "\(,\|-\ze-\@!\)\ze\s*\(--.*\|\/\*.*\)*$"
234
235" if !exists("rexx_minlines")
236" let rexx_minlines = 500
237" endif
238" exec "syn sync ccomment rexxComment minlines=" . rexx_minlines
239
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200240" always scan from start, PCs have long become to be powerful enough for that
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000241exec "syn sync fromstart"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000242
243" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200244" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000245
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200246" make binary and hex strings stand out
247hi rexxStringConstant term=bold,underline ctermfg=5 cterm=bold guifg=darkMagenta gui=bold
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000248
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200249hi def link rexxLabel2 Function
250hi def link doLoopSelectLabelRegion rexxKeyword
251hi def link endIterateLeaveLabelRegion rexxKeyword
252hi def link rexxLoopKeywords rexxKeyword " Todo
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000253
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200254hi def link rexxNumber Normal "DiffChange
255" hi def link rexxIdentifier DiffChange
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000256
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200257hi def link rexxRegularCallSignal Statement
258hi def link rexxExceptionHandling Statement
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000259
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200260hi def link rexxLabel Function
261hi def link rexxCharacter Character
262hi def link rexxParenError rexxError
263hi def link rexxInParen rexxError
264hi def link rexxCommentError rexxError
265hi def link rexxError Error
266hi def link rexxKeyword Statement
267hi def link rexxKeywordStatements Statement
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000268
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200269hi def link rexxFunction Function
270hi def link rexxString String
271hi def link rexxComment Comment
272hi def link rexxTodo Todo
273hi def link rexxSpecialVariable Special
274hi def link rexxConditional rexxKeyword
Bram Moolenaar071d4272004-06-13 20:20:40 +0000275
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200276hi def link rexxOperator Operator
277hi def link rexxMessageOperator rexxOperator
278hi def link rexxLineComment Comment
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000279
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200280hi def link rexxLineContinue WildMenu
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000281
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200282hi def link rexxDirective rexxKeyword
283hi def link rexxClassDirective Type
284hi def link rexxMethodDirective rexxFunction
285hi def link rexxAttributeDirective rexxFunction
286hi def link rexxRequiresDirective Include
287hi def link rexxRoutineDirective rexxFunction
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000288
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200289" rgf, 2012-09-09
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200290hi def link rexxOptionsDirective rexxFunction
291hi def link rexxOptionsDirective2 rexxOptionsDirective
292hi def link rexxOptionsDirective3 Normal " rexxOptionsDirective
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200293
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200294hi def link rexxConstantDirective rexxFunction
Bram Moolenaar3a0d8092012-10-21 03:02:54 +0200295
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200296hi def link rexxConst Constant
297hi def link rexxTypeSpecifier Type
298hi def link rexxBuiltinClass rexxTypeSpecifier
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000299
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200300hi def link rexxEnvironmentSymbol rexxConst
301hi def link rexxMessage rexxFunction
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000302
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200303hi def link rexxParse rexxKeyword
304hi def link rexxParse2 rexxParse
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000305
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200306hi def link rexxGuard rexxKeyword
307hi def link rexxTrace rexxKeyword
Bram Moolenaar8c8de832008-06-24 22:58:06 +0000308
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200309hi def link rexxRaise rexxKeyword
310hi def link rexxRaise2 rexxRaise
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000311
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200312hi def link rexxForward rexxKeyword
313hi def link rexxForward2 rexxForward
Bram Moolenaar4c3f5362006-04-11 21:38:50 +0000314
Bram Moolenaar071d4272004-06-13 20:20:40 +0000315
316let b:current_syntax = "rexx"
317
318"vim: ts=8