aboutsummaryrefslogtreecommitdiff
path: root/runtime/syntax/rhelp.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/rhelp.vim')
-rw-r--r--runtime/syntax/rhelp.vim249
1 files changed, 249 insertions, 0 deletions
diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim
new file mode 100644
index 0000000000..32c91add48
--- /dev/null
+++ b/runtime/syntax/rhelp.vim
@@ -0,0 +1,249 @@
+" Vim syntax file
+" Language: R Help File
+" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
+" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
+" Last Change: Wed Jul 09, 2014 10:28PM
+" Remarks: - Includes R syntax highlighting in the appropriate
+" sections if an r.vim file is in the same directory or in the
+" default debian location.
+" - There is no Latex markup in equations
+" - Thanks to Will Gray for finding and fixing a bug
+" - No support for \if, \ifelse and \out as I don't understand
+" them and have no examples at hand (help welcome).
+" - No support for \var tag within quoted string (dito)
+
+" Version Clears: {{{1
+" For version 5.x: Clear all syntax items
+" For version 6.x and 7.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+setlocal iskeyword=@,48-57,_,.
+
+syn case match
+
+" R help identifiers {{{1
+syn region rhelpIdentifier matchgroup=rhelpSection start="\\name{" end="}"
+syn region rhelpIdentifier matchgroup=rhelpSection start="\\alias{" end="}"
+syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}" contains=rhelpLink
+syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end="}" contained
+syn region rhelpIdentifier matchgroup=rhelpSection start="\\Rdversion{" end="}"
+
+" Highlighting of R code using an existing r.vim syntax file if available {{{1
+syn include @R syntax/r.vim
+
+" Strings {{{1
+syn region rhelpString start=/"/ skip=/\\"/ end=/"/ contains=rhelpSpecialChar,rhelpCodeSpecial,rhelpLink contained
+
+" Special characters in R strings
+syn match rhelpCodeSpecial display contained "\\\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"
+
+" Special characters ( \$ \& \% \# \{ \} \_)
+syn match rhelpSpecialChar "\\[$&%#{}_]"
+
+
+" R code {{{1
+syn match rhelpDots "\\dots" containedin=@R
+syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpLink,rhelpIdentifier,rhelpString,rhelpSpecialChar,rhelpSection
+syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpIdentifier,rhelpS4method
+syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end="}" contains=@R
+syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end="}" contains=@R
+
+if v:version > 703
+ syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@1<!{.\{-}\\\@1<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend
+else
+ syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@<!{.\{-}\\\@<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend
+endif
+syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=")" contains=@R,rhelpDots
+syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end="}" contains=@R
+
+" PreProc {{{1
+syn match rhelpPreProc "^#ifdef.*"
+syn match rhelpPreProc "^#endif.*"
+
+" Special Delimiters {{{1
+syn match rhelpDelimiter "\\cr"
+syn match rhelpDelimiter "\\tab "
+
+" Keywords {{{1
+syn match rhelpKeyword "\\R"
+syn match rhelpKeyword "\\ldots"
+syn match rhelpKeyword "--"
+syn match rhelpKeyword "---"
+syn match rhelpKeyword "<"
+syn match rhelpKeyword ">"
+syn match rhelpKeyword "\\ge"
+syn match rhelpKeyword "\\le"
+syn match rhelpKeyword "\\alpha"
+syn match rhelpKeyword "\\beta"
+syn match rhelpKeyword "\\gamma"
+syn match rhelpKeyword "\\delta"
+syn match rhelpKeyword "\\epsilon"
+syn match rhelpKeyword "\\zeta"
+syn match rhelpKeyword "\\eta"
+syn match rhelpKeyword "\\theta"
+syn match rhelpKeyword "\\iota"
+syn match rhelpKeyword "\\kappa"
+syn match rhelpKeyword "\\lambda"
+syn match rhelpKeyword "\\mu"
+syn match rhelpKeyword "\\nu"
+syn match rhelpKeyword "\\xi"
+syn match rhelpKeyword "\\omicron"
+syn match rhelpKeyword "\\pi"
+syn match rhelpKeyword "\\rho"
+syn match rhelpKeyword "\\sigma"
+syn match rhelpKeyword "\\tau"
+syn match rhelpKeyword "\\upsilon"
+syn match rhelpKeyword "\\phi"
+syn match rhelpKeyword "\\chi"
+syn match rhelpKeyword "\\psi"
+syn match rhelpKeyword "\\omega"
+syn match rhelpKeyword "\\Alpha"
+syn match rhelpKeyword "\\Beta"
+syn match rhelpKeyword "\\Gamma"
+syn match rhelpKeyword "\\Delta"
+syn match rhelpKeyword "\\Epsilon"
+syn match rhelpKeyword "\\Zeta"
+syn match rhelpKeyword "\\Eta"
+syn match rhelpKeyword "\\Theta"
+syn match rhelpKeyword "\\Iota"
+syn match rhelpKeyword "\\Kappa"
+syn match rhelpKeyword "\\Lambda"
+syn match rhelpKeyword "\\Mu"
+syn match rhelpKeyword "\\Nu"
+syn match rhelpKeyword "\\Xi"
+syn match rhelpKeyword "\\Omicron"
+syn match rhelpKeyword "\\Pi"
+syn match rhelpKeyword "\\Rho"
+syn match rhelpKeyword "\\Sigma"
+syn match rhelpKeyword "\\Tau"
+syn match rhelpKeyword "\\Upsilon"
+syn match rhelpKeyword "\\Phi"
+syn match rhelpKeyword "\\Chi"
+syn match rhelpKeyword "\\Psi"
+syn match rhelpKeyword "\\Omega"
+
+" Links {{{1
+syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend extend
+syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" contained keepend extend
+syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend extend
+
+" Verbatim like {{{1
+if v:version > 703
+ syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+ syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+else
+ syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+ syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+endif
+
+" Type Styles {{{1
+syn match rhelpType "\\emph\>"
+syn match rhelpType "\\strong\>"
+syn match rhelpType "\\bold\>"
+syn match rhelpType "\\sQuote\>"
+syn match rhelpType "\\dQuote\>"
+syn match rhelpType "\\preformatted\>"
+syn match rhelpType "\\kbd\>"
+syn match rhelpType "\\eqn\>"
+syn match rhelpType "\\deqn\>"
+syn match rhelpType "\\file\>"
+syn match rhelpType "\\email\>"
+syn match rhelpType "\\url\>"
+syn match rhelpType "\\href\>"
+syn match rhelpType "\\var\>"
+syn match rhelpType "\\env\>"
+syn match rhelpType "\\option\>"
+syn match rhelpType "\\command\>"
+syn match rhelpType "\\newcommand\>"
+syn match rhelpType "\\renewcommand\>"
+syn match rhelpType "\\dfn\>"
+syn match rhelpType "\\cite\>"
+syn match rhelpType "\\acronym\>"
+
+" rhelp sections {{{1
+syn match rhelpSection "\\encoding\>"
+syn match rhelpSection "\\title\>"
+syn match rhelpSection "\\item\>"
+syn match rhelpSection "\\description\>"
+syn match rhelpSection "\\concept\>"
+syn match rhelpSection "\\arguments\>"
+syn match rhelpSection "\\details\>"
+syn match rhelpSection "\\value\>"
+syn match rhelpSection "\\references\>"
+syn match rhelpSection "\\note\>"
+syn match rhelpSection "\\author\>"
+syn match rhelpSection "\\seealso\>"
+syn match rhelpSection "\\keyword\>"
+syn match rhelpSection "\\docType\>"
+syn match rhelpSection "\\format\>"
+syn match rhelpSection "\\source\>"
+syn match rhelpSection "\\itemize\>"
+syn match rhelpSection "\\describe\>"
+syn match rhelpSection "\\enumerate\>"
+syn match rhelpSection "\\item "
+syn match rhelpSection "\\item$"
+syn match rhelpSection "\\tabular{[lcr]*}"
+syn match rhelpSection "\\dontrun\>"
+syn match rhelpSection "\\dontshow\>"
+syn match rhelpSection "\\testonly\>"
+syn match rhelpSection "\\donttest\>"
+
+" Freely named Sections {{{1
+syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end="}"
+syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end="}"
+
+syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"
+
+" R help file comments {{{1
+syn match rhelpComment /%.*$/
+
+" Error {{{1
+syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
+syn region rhelpRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
+syn region rhelpRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ contains=@Spell,rhelpCodeSpecial,rhelpComment,rhelpDelimiter,rhelpDots,rhelpFreesec,rhelpFreesubsec,rhelpIdentifier,rhelpKeyword,rhelpLink,rhelpPreProc,rhelpRComment,rhelpRcode,rhelpRegion,rhelpS4method,rhelpSection,rhelpSexpr,rhelpSpecialChar,rhelpString,rhelpType,rhelpVerbatim
+syn match rhelpError /[)\]}]/
+syn match rhelpBraceError /[)}]/ contained
+syn match rhelpCurlyError /[)\]]/ contained
+syn match rhelpParenError /[\]}]/ contained
+
+syntax sync match rhelpSyncRcode grouphere rhelpRcode "\\examples{"
+
+" 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_rhelp_syntax_inits")
+ if version < 508
+ let did_rhelp_syntax_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+ HiLink rhelpVerbatim String
+ HiLink rhelpDelimiter Delimiter
+ HiLink rhelpIdentifier Identifier
+ HiLink rhelpString String
+ HiLink rhelpCodeSpecial Special
+ HiLink rhelpKeyword Keyword
+ HiLink rhelpDots Keyword
+ HiLink rhelpLink Underlined
+ HiLink rhelpType Type
+ HiLink rhelpSection PreCondit
+ HiLink rhelpError Error
+ HiLink rhelpBraceError Error
+ HiLink rhelpCurlyError Error
+ HiLink rhelpParenError Error
+ HiLink rhelpPreProc PreProc
+ HiLink rhelpDelimiter Delimiter
+ HiLink rhelpComment Comment
+ HiLink rhelpRComment Comment
+ HiLink rhelpSpecialChar SpecialChar
+ delcommand HiLink
+endif
+
+let b:current_syntax = "rhelp"
+
+" vim: foldmethod=marker sw=2