blob: 9e25dae36321ae7c975c88236ff9a57056b8662b [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar483c5d82010-10-20 18:45:33 +02002" Language: R (GNU S)
3" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
4" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
5" Tom Payne <tom@tompayne.org>
Bram Moolenaar2c5e8e82015-12-05 20:59:21 +01006" Contributor: Johannes Ranke <jranke@uni-bremen.de>
7" Homepage: https://github.com/jalvesaq/R-Vim-runtime
Bram Moolenaarfc65cab2018-08-28 22:58:02 +02008" Last Change: Wed Aug 01, 2018 10:10PM
Bram Moolenaar483c5d82010-10-20 18:45:33 +02009" Filenames: *.R *.r *.Rhistory *.Rt
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010010"
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020011" NOTE: The highlighting of R functions might be defined in
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010012" runtime files created by a filetype plugin, if installed.
Bram Moolenaar483c5d82010-10-20 18:45:33 +020013"
Bram Moolenaar662db672011-03-22 14:05:35 +010014" CONFIGURATION:
Bram Moolenaar77cdfd12016-03-12 12:57:59 +010015" Syntax folding can be turned on by
Bram Moolenaar662db672011-03-22 14:05:35 +010016"
17" let r_syntax_folding = 1
18"
Bram Moolenaar77cdfd12016-03-12 12:57:59 +010019" ROxygen highlighting can be turned off by
20"
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020021" let r_syntax_hl_roxygen = 0
Bram Moolenaar77cdfd12016-03-12 12:57:59 +010022"
Bram Moolenaar483c5d82010-10-20 18:45:33 +020023" Some lines of code were borrowed from Zhuojun Chen.
Bram Moolenaar4770d092006-01-12 23:22:24 +000024
Bram Moolenaar483c5d82010-10-20 18:45:33 +020025if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000026 finish
27endif
28
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020029if has("patch-7.4.1142")
30 syn iskeyword @,48-57,_,.
31else
32 setlocal iskeyword=@,48-57,_,.
33endif
34
35" The variables g:r_hl_roxygen and g:r_syn_minlines were renamed on April 8, 2017.
36if exists("g:r_hl_roxygen")
37 let g:r_syntax_hl_roxygen = g:r_hl_roxygen
38endif
39if exists("g:r_syn_minlines")
40 let g:r_syntax_minlines = g:r_syn_minlines
41endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000042
Bram Moolenaar77cdfd12016-03-12 12:57:59 +010043if exists("g:r_syntax_folding") && g:r_syntax_folding
Bram Moolenaar662db672011-03-22 14:05:35 +010044 setlocal foldmethod=syntax
45endif
Bram Moolenaarfc65cab2018-08-28 22:58:02 +020046
47let g:r_syntax_hl_roxygen = get(g:, 'r_syntax_hl_roxygen', 1)
Bram Moolenaar662db672011-03-22 14:05:35 +010048
Bram Moolenaar071d4272004-06-13 20:20:40 +000049syn case match
50
51" Comment
Bram Moolenaardb6ea062014-07-10 22:01:47 +020052syn match rCommentTodo contained "\(BUG\|FIXME\|NOTE\|TODO\):"
Bram Moolenaarfc65cab2018-08-28 22:58:02 +020053syn match rTodoParen contained "\(BUG\|FIXME\|NOTE\|TODO\)\s*(.\{-})\s*:" contains=rTodoKeyw,rTodoInfo transparent
54syn keyword rTodoKeyw BUG FIXME NOTE TODO contained
55syn match rTodoInfo "(\zs.\{-}\ze)" contained
56syn match rComment contains=@Spell,rCommentTodo,rTodoParen,rOBlock "#.*"
Bram Moolenaar203d04d2013-06-06 21:36:40 +020057
58" Roxygen
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020059if g:r_syntax_hl_roxygen
60 " A roxygen block can start at the beginning of a file (first version) and
61 " after a blank line (second version). It ends when a line that does not
62 " contain a roxygen comment. In the following comments, any line containing
63 " a roxygen comment marker (one or two hash signs # followed by a single
64 " quote ' and preceded only by whitespace) is called a roxygen line. A
65 " roxygen line containing only a roxygen comment marker, optionally followed
66 " by whitespace is called an empty roxygen line.
Bram Moolenaar2c5e8e82015-12-05 20:59:21 +010067
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020068 " First we match all roxygen blocks as containing only a title. In case an
69 " empty roxygen line ending the title or a tag is found, this will be
Bram Moolenaarfc65cab2018-08-28 22:58:02 +020070 " overridden later by the definitions of rOBlock.
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020071 syn match rOTitleBlock "\%^\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag
72 syn match rOTitleBlock "^\s*\n\(\s*#\{1,2}' .*\n\)\{1,}" contains=rOCommentKey,rOTitleTag
Bram Moolenaar2c5e8e82015-12-05 20:59:21 +010073
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020074 " When a roxygen block has a title and additional content, the title
75 " consists of one or more roxygen lines (as little as possible are matched),
76 " followed either by an empty roxygen line
77 syn region rOBlock start="\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
78 syn region rOBlock start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
79
80 " or by a roxygen tag (we match everything starting with @ but not @@ which is used as escape sequence for a literal @).
81 syn region rOBlock start="\%^\(\s*#\{1,2}' .*\n\)\{-}\s*#\{1,2}' @\(@\)\@!" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
82 syn region rOBlock start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-}\s*#\{1,2}' @\(@\)\@!" end="^\s*\(#\{1,2}'\)\@!" contains=rOTitle,rOTag,rOExamples,@Spell keepend fold
83
84 " If a block contains an @rdname, @describeIn tag, it may have paragraph breaks, but does not have a title
85 syn region rOBlockNoTitle start="\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @rdname" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
86 syn region rOBlockNoTitle start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @rdname" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
87 syn region rOBlockNoTitle start="\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @describeIn" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
88 syn region rOBlockNoTitle start="^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*\n\(\s*#\{1,2}'.*\n\)\{-}\s*#\{1,2}' @describeIn" end="^\s*\(#\{1,2}'\)\@!" contains=rOTag,rOExamples,@Spell keepend fold
89
90 " A title as part of a block is always at the beginning of the block, i.e.
91 " either at the start of a file or after a completely empty line.
92 syn match rOTitle "\%^\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag
93 syn match rOTitle "^\s*\n\(\s*#\{1,2}' .*\n\)\{-1,}\s*#\{1,2}'\s*$" contained contains=rOCommentKey,rOTitleTag
94 syn match rOTitleTag contained "@title"
95
Bram Moolenaarfc65cab2018-08-28 22:58:02 +020096 syn match rOCommentKey "^\s*#\{1,2}'" contained
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +020097 syn region rOExamples start="^#\{1,2}' @examples.*"rs=e+1,hs=e+1 end="^\(#\{1,2}' @.*\)\@=" end="^\(#\{1,2}'\)\@!" contained contains=rOTag fold
98
99 " rOTag list generated from the lists in
100 " https://github.com/klutometis/roxygen/R/rd.R and
101 " https://github.com/klutometis/roxygen/R/namespace.R
102 " using s/^ \([A-Za-z0-9]*\) = .*/ syn match rOTag contained "@\1"/
103 " Plus we need the @include tag
104
105 " rd.R
106 syn match rOTag contained "@aliases"
107 syn match rOTag contained "@author"
108 syn match rOTag contained "@backref"
109 syn match rOTag contained "@concept"
110 syn match rOTag contained "@describeIn"
111 syn match rOTag contained "@description"
112 syn match rOTag contained "@details"
113 syn match rOTag contained "@docType"
114 syn match rOTag contained "@encoding"
115 syn match rOTag contained "@evalRd"
116 syn match rOTag contained "@example"
117 syn match rOTag contained "@examples"
118 syn match rOTag contained "@family"
119 syn match rOTag contained "@field"
120 syn match rOTag contained "@format"
121 syn match rOTag contained "@inherit"
122 syn match rOTag contained "@inheritParams"
123 syn match rOTag contained "@inheritDotParams"
124 syn match rOTag contained "@inheritSection"
125 syn match rOTag contained "@keywords"
126 syn match rOTag contained "@method"
127 syn match rOTag contained "@name"
128 syn match rOTag contained "@md"
129 syn match rOTag contained "@noMd"
130 syn match rOTag contained "@noRd"
131 syn match rOTag contained "@note"
132 syn match rOTag contained "@param"
133 syn match rOTag contained "@rdname"
134 syn match rOTag contained "@rawRd"
135 syn match rOTag contained "@references"
136 syn match rOTag contained "@return"
137 syn match rOTag contained "@section"
138 syn match rOTag contained "@seealso"
139 syn match rOTag contained "@slot"
140 syn match rOTag contained "@source"
141 syn match rOTag contained "@template"
142 syn match rOTag contained "@templateVar"
143 syn match rOTag contained "@title"
144 syn match rOTag contained "@usage"
145 " namespace.R
146 syn match rOTag contained "@export"
147 syn match rOTag contained "@exportClass"
148 syn match rOTag contained "@exportMethod"
149 syn match rOTag contained "@exportPattern"
150 syn match rOTag contained "@import"
151 syn match rOTag contained "@importClassesFrom"
152 syn match rOTag contained "@importFrom"
153 syn match rOTag contained "@importMethodsFrom"
154 syn match rOTag contained "@rawNamespace"
155 syn match rOTag contained "@S3method"
156 syn match rOTag contained "@useDynLib"
157 " other
158 syn match rOTag contained "@include"
Bram Moolenaar77cdfd12016-03-12 12:57:59 +0100159endif
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200160
Bram Moolenaar071d4272004-06-13 20:20:40 +0000161
Bram Moolenaar662db672011-03-22 14:05:35 +0100162if &filetype == "rhelp"
163 " string enclosed in double quotes
164 syn region rString contains=rSpecial,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
165 " string enclosed in single quotes
166 syn region rString contains=rSpecial,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
167else
168 " string enclosed in double quotes
169 syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
170 " string enclosed in single quotes
171 syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
172endif
Bram Moolenaar071d4272004-06-13 20:20:40 +0000173
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200174syn match rStrError display contained "\\."
175
Bram Moolenaar662db672011-03-22 14:05:35 +0100176
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200177" New line, carriage return, tab, backspace, bell, feed, vertical tab, backslash
178syn match rSpecial display contained "\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"
179
180" Hexadecimal and Octal digits
181syn match rSpecial display contained "\\\(x\x\{1,2}\|[0-8]\{1,3}\)"
182
183" Unicode characters
184syn match rSpecial display contained "\\u\x\{1,4}"
185syn match rSpecial display contained "\\U\x\{1,8}"
186syn match rSpecial display contained "\\u{\x\{1,4}}"
187syn match rSpecial display contained "\\U{\x\{1,8}}"
188
Bram Moolenaar071d4272004-06-13 20:20:40 +0000189" Statement
190syn keyword rStatement break next return
191syn keyword rConditional if else
192syn keyword rRepeat for in repeat while
193
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200194" Constant (not really)
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200195syn keyword rConstant T F LETTERS letters month.abb month.name pi
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200196syn keyword rConstant R.version.string
197
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100198syn keyword rNumber NA_integer_ NA_real_ NA_complex_ NA_character_
Bram Moolenaar662db672011-03-22 14:05:35 +0100199
200" Constants
Bram Moolenaar071d4272004-06-13 20:20:40 +0000201syn keyword rConstant NULL
202syn keyword rBoolean FALSE TRUE
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100203syn keyword rNumber NA Inf NaN
Bram Moolenaar071d4272004-06-13 20:20:40 +0000204
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200205" integer
206syn match rInteger "\<\d\+L"
207syn match rInteger "\<0x\([0-9]\|[a-f]\|[A-F]\)\+L"
208syn match rInteger "\<\d\+[Ee]+\=\d\+L"
209
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200210" number with no fractional part or exponent
211syn match rNumber "\<\d\+\>"
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100212" hexadecimal number
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200213syn match rNumber "\<0x\([0-9]\|[a-f]\|[A-F]\)\+"
214
215" floating point number with integer and fractional parts and optional exponent
216syn match rFloat "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\="
217" floating point number with no integer part and optional exponent
218syn match rFloat "\<\.\d\+\([Ee][-+]\=\d\+\)\="
219" floating point number with no fractional part and optional exponent
220syn match rFloat "\<\d\+[Ee][-+]\=\d\+"
221
Bram Moolenaar662db672011-03-22 14:05:35 +0100222" complex number
223syn match rComplex "\<\d\+i"
224syn match rComplex "\<\d\++\d\+i"
225syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i"
226syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i"
227syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i"
228syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"
229
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100230syn match rAssign '='
Bram Moolenaar662db672011-03-22 14:05:35 +0100231syn match rOperator "&"
232syn match rOperator '-'
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200233syn match rOperator '\*'
Bram Moolenaar662db672011-03-22 14:05:35 +0100234syn match rOperator '+'
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200235if &filetype != "rmd" && &filetype != "rrst"
236 syn match rOperator "[|!<>^~/:]"
237else
238 syn match rOperator "[|!<>^~`/:]"
239endif
Bram Moolenaardb6ea062014-07-10 22:01:47 +0200240syn match rOperator "%\{2}\|%\S\{-}%"
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100241syn match rOperator '\([!><]\)\@<=='
242syn match rOperator '=='
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200243syn match rOpError '\*\{3}'
Bram Moolenaar662db672011-03-22 14:05:35 +0100244syn match rOpError '//'
245syn match rOpError '&&&'
246syn match rOpError '|||'
247syn match rOpError '<<'
248syn match rOpError '>>'
249
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100250syn match rAssign "<\{1,2}-"
251syn match rAssign "->\{1,2}"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000252
253" Special
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200254syn match rDelimiter "[,;:]"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000255
256" Error
Bram Moolenaar662db672011-03-22 14:05:35 +0100257if exists("g:r_syntax_folding")
258 syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError fold
259 syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError fold
260 syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError fold
Bram Moolenaarfc65cab2018-08-28 22:58:02 +0200261 syn region rSection matchgroup=Title start=/^#.*[-=#]\{4,}/ end=/^#.*[-=#]\{4,}/ms=s-2,me=s-1 transparent contains=ALL fold
Bram Moolenaar662db672011-03-22 14:05:35 +0100262else
263 syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
264 syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
265 syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
266endif
267
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200268syn match rError "[)\]}]"
269syn match rBraceError "[)}]" contained
270syn match rCurlyError "[)\]]" contained
271syn match rParenError "[\]}]" contained
272
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +0200273" Use Nvim-R to highlight functions dynamically if it is installed
274if !exists("g:r_syntax_fun_pattern")
275 let s:ff = split(substitute(globpath(&rtp, "R/functions.vim"), "functions.vim", "", "g"), "\n")
276 if len(s:ff) > 0
277 let g:r_syntax_fun_pattern = 0
278 else
279 let g:r_syntax_fun_pattern = 1
280 endif
Bram Moolenaar77cdfd12016-03-12 12:57:59 +0100281endif
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +0200282
283" Only use Nvim-R to highlight functions if they should not be highlighted
284" according to a generic pattern
285if g:r_syntax_fun_pattern == 1
286 syn match rFunction '[0-9a-zA-Z_\.]\+\s*\ze('
287else
Bram Moolenaarfc65cab2018-08-28 22:58:02 +0200288 " Nvim-R:
289 runtime R/functions.vim
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100290endif
Bram Moolenaar662db672011-03-22 14:05:35 +0100291
292syn match rDollar display contained "\$"
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200293syn match rDollar display contained "@"
Bram Moolenaar662db672011-03-22 14:05:35 +0100294
295" List elements will not be highlighted as functions:
296syn match rLstElmt "\$[a-zA-Z0-9\\._]*" contains=rDollar
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200297syn match rLstElmt "@[a-zA-Z0-9\\._]*" contains=rDollar
Bram Moolenaar662db672011-03-22 14:05:35 +0100298
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200299" Functions that may add new objects
300syn keyword rPreProc library require attach detach source
301
Bram Moolenaar662db672011-03-22 14:05:35 +0100302if &filetype == "rhelp"
Bram Moolenaardb6ea062014-07-10 22:01:47 +0200303 syn match rHelpIdent '\\method'
304 syn match rHelpIdent '\\S4method'
Bram Moolenaar662db672011-03-22 14:05:35 +0100305endif
306
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200307" Type
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100308syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame
Bram Moolenaar071d4272004-06-13 20:20:40 +0000309
Bram Moolenaar662db672011-03-22 14:05:35 +0100310" Name of object with spaces
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200311if &filetype != "rmd" && &filetype != "rrst"
Bram Moolenaarfc65cab2018-08-28 22:58:02 +0200312 syn region rNameWSpace start="`" end="`" contains=rSpaceFun
Bram Moolenaar203d04d2013-06-06 21:36:40 +0200313endif
Bram Moolenaar662db672011-03-22 14:05:35 +0100314
315if &filetype == "rhelp"
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100316 syn match rhPreProc "^#ifdef.*"
317 syn match rhPreProc "^#endif.*"
Bram Moolenaar662db672011-03-22 14:05:35 +0100318 syn match rhSection "\\dontrun\>"
319endif
320
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +0200321if exists("r_syntax_minlines")
322 exe "syn sync minlines=" . r_syntax_minlines
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100323else
324 syn sync minlines=40
325endif
326
Bram Moolenaar071d4272004-06-13 20:20:40 +0000327" Define the default highlighting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100328hi def link rAssign Statement
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200329hi def link rBoolean Boolean
330hi def link rBraceError Error
331hi def link rComment Comment
Bram Moolenaarfc65cab2018-08-28 22:58:02 +0200332hi def link rTodoParen Comment
333hi def link rTodoInfo SpecialComment
Bram Moolenaardb6ea062014-07-10 22:01:47 +0200334hi def link rCommentTodo Todo
Bram Moolenaarfc65cab2018-08-28 22:58:02 +0200335hi def link rTodoKeyw Todo
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200336hi def link rComplex Number
337hi def link rConditional Conditional
338hi def link rConstant Constant
339hi def link rCurlyError Error
340hi def link rDelimiter Delimiter
341hi def link rDollar SpecialChar
342hi def link rError Error
343hi def link rFloat Float
Bram Moolenaar662db672011-03-22 14:05:35 +0100344hi def link rFunction Function
Bram Moolenaarfc65cab2018-08-28 22:58:02 +0200345hi def link rSpaceFun Function
Bram Moolenaar662db672011-03-22 14:05:35 +0100346hi def link rHelpIdent Identifier
347hi def link rhPreProc PreProc
348hi def link rhSection PreCondit
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200349hi def link rInteger Number
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100350hi def link rLstElmt Normal
Bram Moolenaar662db672011-03-22 14:05:35 +0100351hi def link rNameWSpace Normal
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200352hi def link rNumber Number
353hi def link rOperator Operator
Bram Moolenaar662db672011-03-22 14:05:35 +0100354hi def link rOpError Error
Bram Moolenaar483c5d82010-10-20 18:45:33 +0200355hi def link rParenError Error
356hi def link rPreProc PreProc
357hi def link rRepeat Repeat
358hi def link rSpecial SpecialChar
359hi def link rStatement Statement
360hi def link rString String
361hi def link rStrError Error
362hi def link rType Type
Bram Moolenaarcd5c8f82017-04-09 20:11:58 +0200363if g:r_syntax_hl_roxygen
364 hi def link rOTitleTag Operator
365 hi def link rOTag Operator
366 hi def link rOTitleBlock Title
367 hi def link rOBlock Comment
368 hi def link rOBlockNoTitle Comment
Bram Moolenaar77cdfd12016-03-12 12:57:59 +0100369 hi def link rOTitle Title
370 hi def link rOCommentKey Comment
371 hi def link rOExamples SpecialComment
372endif
Bram Moolenaar2c5e8e82015-12-05 20:59:21 +0100373
Bram Moolenaar071d4272004-06-13 20:20:40 +0000374let b:current_syntax="r"
375
376" vim: ts=8 sw=2