" Vim syntax file " Language: R (GNU S) " Maintainer: Vaidotas Zemlys " Maintainer Candidate: Zhuojun Chen " Last Change: 2010 Feb 23 " Filenames: *.R *.Rout *.r *.Rhistory *.Rt *.Rout.save *.Rout.fail " URL: http://opy.me/vim/syntax/r.vim " First maintainer Tom Payne " " Please download most recent version first before mailing " any comments. " The following parameters are available for tuning the " R syntax highlighting, with defaults given: " " let g:r_base_only=1 " --------------------------------------------------------------------- " Load Once: {{{1 " For vim-version 5.x: Clear all syntax items " For vim-version 6.x: Quit when a syntax file was already loaded if version < 600 syntax clear elseif exists("b:current_syntax") finish endif if version >= 600 setlocal iskeyword=@,48-57,_,. else set iskeyword=@,48-57,_,. endif " --------------------------------------------------------------------- " Clusters: {{{1 " syn cluster rPackageCluster contains=/rPackage\w*/ " --------------------------------------------------------------------- " Comment: {{{1 syn match rComment /\#.*/ " --------------------------------------------------------------------- " Constant: {{{1 " string enclosed in double quotes syn region rString start=/"/ skip=/\\\\\|\\"/ end=/"/ " string enclosed in single quotes syn region rString start=/'/ skip=/\\\\\|\\'/ end=/'/ " number with no fractional part or exponent syn match rNumber /\d\+/ " 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 keyword rBuiltInConstant LETTERS letters month.abb pi syn keyword rConstant NULL syn keyword rBoolean FALSE TRUE syn keyword rNumber NA " --------------------------------------------------------------------- " Identifier: {{{1 " identifier with leading letter and optional following keyword characters syn match rNormal /\a\k*/ " identifier with leading period, one or more digits, and at least one non-digit keyword character syn match rNormal /\.\d*\K\k*/ " function syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn match rFunction /\/ syn region rNormal matchgroup=rFunction start=/\\=\^\|\~\`/:@]/ syn match rOperator /%o%\|%x%\|xor\|isTRUE/ " --------------------------------------------------------------------- " PreProc: {{{1 syn keyword rPreProc library require if !exists("g:r_base_only") endif " --------------------------------------------------------------------- " Type: {{{1 syn keyword rType symbol pairlist closure environment promise language special builtin char logical integer double complex character ... any expression list bytecode externalptr weakref raw S4 " --------------------------------------------------------------------- " Special: {{{1 syn match rDelimiter /[,;]/ " --------------------------------------------------------------------- " Error: {{{1 "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 " --------------------------------------------------------------------- " Define The Default Highlighting: {{{1 " For version 5.7 and earlier: only when not done already " For version 5.8 and later: only when an item doesn't have highlighting yet if version >= 508 || !exists("did_r_syn_inits") if version < 508 let did_r_syn_inits = 1 command -nargs=+ HiLink hi link else command -nargs=+ HiLink hi def link endif HiLink rNormal Normal HiLink rComment Comment HiLink rBuiltInConstant Constant HiLink rString String HiLink rNumber Number HiLink rBoolean Boolean HiLink rFloat Float "HiLink rHeuristic PreProc HiLink rFunction Function HiLink rStatement Statement HiLink rPackageRODBC Statement HiLink rPackageRODBC2 Function HiLink rPackageChron Statement HiLink rPackagerjson Statement HiLink rConditional Conditional HiLink rRepeat Repeat HiLink rIdentifier Identifier HiLink rOperator Operator HiLink rConstant Constant HiLink rParameter Statement HiLink rArithmeticOperator Operator HiLink rRelationalOperator Operator HiLink rAssignmentOperator Operator HiLink rLogicalOperator Operator HiLink rType Type HiLink rDelimiter Delimiter HiLink rError Error HiLink rBraceError Error HiLink rCurlyError Error HiLink rParenError Error HiLink rPreProc PreProc delcommand HiLink endif let b:current_syntax="r" " --------------------------------------------------------------------- " vim: ts=8 fdm=marker