Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/vim73/syntax/r.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim73/syntax/r.vim')
-rw-r--r--vim73/syntax/r.vim137
1 files changed, 137 insertions, 0 deletions
diff --git a/vim73/syntax/r.vim b/vim73/syntax/r.vim
new file mode 100644
index 0000000..7d98e92
--- /dev/null
+++ b/vim73/syntax/r.vim
@@ -0,0 +1,137 @@
+" Vim syntax file
+" Language: R (GNU S)
+" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
+" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
+" Tom Payne <tom@tompayne.org>
+" Last Change: Wed Sep 29, 2010 09:31AM
+" Filenames: *.R *.r *.Rhistory *.Rt
+"
+" NOTE: The highlighting of R functions is defined in the
+" r-plugin/functions.vim, which is part of vim-r-plugin2:
+" http://www.vim.org/scripts/script.php?script_id=2628
+"
+" Some lines of code were borrowed from Zhuojun Chen.
+
+if exists("b:current_syntax")
+ finish
+endif
+
+setlocal iskeyword=@,48-57,_,.
+
+syn case match
+
+" Comment
+syn match rComment contains=@Spell "\#.*"
+
+" string enclosed in double quotes
+syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
+" string enclosed in single quotes
+syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
+
+syn match rStrError display contained "\\."
+
+" New line, carriage return, tab, backspace, bell, feed, vertical tab, backslash
+syn match rSpecial display contained "\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"
+
+" Hexadecimal and Octal digits
+syn match rSpecial display contained "\\\(x\x\{1,2}\|[0-8]\{1,3}\)"
+
+" Unicode characters
+syn match rSpecial display contained "\\u\x\{1,4}"
+syn match rSpecial display contained "\\U\x\{1,8}"
+syn match rSpecial display contained "\\u{\x\{1,4}}"
+syn match rSpecial display contained "\\U{\x\{1,8}}"
+
+
+syn match rDollar "\$"
+
+" Statement
+syn keyword rStatement break next return
+syn keyword rConditional if else
+syn keyword rRepeat for in repeat while
+
+" Constant (not really)
+syn keyword rConstant T F LETTERS letters month.ab month.name pi
+syn keyword rConstant R.version.string
+
+" Constant
+syn keyword rConstant NULL
+syn keyword rBoolean FALSE TRUE
+syn keyword rNumber NA NA_integer_ NA_real_ NA_complex_ NA_character_
+syn keyword rNumber Inf NaN
+
+" integer
+syn match rInteger "\<\d\+L"
+syn match rInteger "\<0x\([0-9]\|[a-f]\|[A-F]\)\+L"
+syn match rInteger "\<\d\+[Ee]+\=\d\+L"
+
+syn match rOperator "[\*\!\&\+\-\<\>\=\^\|\~\`/:@]"
+syn match rOperator "%\{2}\|%\*%\|%\/%\|%in%\|%o%\|%x%"
+
+syn match rComplex "\<\d\+i"
+syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i"
+syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i"
+syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i"
+syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"
+
+" number with no fractional part or exponent
+syn match rNumber "\<\d\+\>"
+" hexadecimal number
+syn match rNumber "\<0x\([0-9]\|[a-f]\|[A-F]\)\+"
+
+" floating point number with integer and fractional parts and optional exponent
+syn match rFloat "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\="
+" floating point number with no integer part and optional exponent
+syn match rFloat "\<\.\d\+\([Ee][-+]\=\d\+\)\="
+" floating point number with no fractional part and optional exponent
+syn match rFloat "\<\d\+[Ee][-+]\=\d\+"
+
+syn match rArrow "<\{1,2}-"
+syn match rArrow "->\{1,2}"
+
+" Special
+syn match rDelimiter "[,;:]"
+
+" Error
+syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
+syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
+syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
+syn match rError "[)\]}]"
+syn match rBraceError "[)}]" contained
+syn match rCurlyError "[)\]]" contained
+syn match rParenError "[\]}]" contained
+
+" Functions that may add new objects
+syn keyword rPreProc library require attach detach source
+
+" Type
+syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame
+
+" Define the default highlighting.
+hi def link rArrow Statement
+hi def link rBoolean Boolean
+hi def link rBraceError Error
+hi def link rComment Comment
+hi def link rComplex Number
+hi def link rConditional Conditional
+hi def link rConstant Constant
+hi def link rCurlyError Error
+hi def link rDelimiter Delimiter
+hi def link rDollar SpecialChar
+hi def link rError Error
+hi def link rFloat Float
+hi def link rInteger Number
+hi def link rNumber Number
+hi def link rOperator Operator
+hi def link rParenError Error
+hi def link rPreProc PreProc
+hi def link rRepeat Repeat
+hi def link rSpecial SpecialChar
+hi def link rStatement Statement
+hi def link rString String
+hi def link rStrError Error
+hi def link rType Type
+
+let b:current_syntax="r"
+
+" vim: ts=8 sw=2