123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- " Vim syntax file
- " Language: R Help File
- " Maintainer: Jakson Aquino <jalvesaq@gmail.com>
- " Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
- " Homepage: https://github.com/jalvesaq/R-Vim-runtime
- " Last Change: Tue Jun 28, 2016 08:53AM
- " 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 \var tag within quoted string
- " Version Clears: {{{1
- if exists("b:current_syntax")
- finish
- endif
- scriptencoding utf-8
- 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="\\CRANpkg{" 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 "\\sspace\>"
- syn match rhelpKeyword "--"
- syn match rhelpKeyword "---"
- " Condition Keywords {{{2
- syn match rhelpKeyword "\\if\>"
- syn match rhelpKeyword "\\ifelse\>"
- syn match rhelpKeyword "\\out\>"
- " Examples of usage:
- " \ifelse{latex}{\eqn{p = 5 + 6 - 7 \times 8}}{\eqn{p = 5 + 6 - 7 * 8}}
- " \ifelse{latex}{\out{$\alpha$}}{\ifelse{html}{\out{α}}{alpha}}
- " Keywords and operators valid only if in math mode {{{2
- syn match rhelpMathOp "<" contained
- syn match rhelpMathOp ">" contained
- syn match rhelpMathOp "+" contained
- syn match rhelpMathOp "-" contained
- syn match rhelpMathOp "=" contained
- " Conceal function based on syntax/tex.vim {{{2
- if exists("g:tex_conceal")
- let s:tex_conceal = g:tex_conceal
- else
- let s:tex_conceal = 'gm'
- endif
- function s:HideSymbol(pat, cchar, hide)
- if a:hide
- exe "syn match rhelpMathSymb '" . a:pat . "' contained conceal cchar=" . a:cchar
- else
- exe "syn match rhelpMathSymb '" . a:pat . "' contained"
- endif
- endfunction
- " Math symbols {{{2
- if s:tex_conceal =~ 'm'
- let s:hd = 1
- else
- let s:hd = 0
- endif
- call s:HideSymbol('\\infty\>', '∞', s:hd)
- call s:HideSymbol('\\ge\>', '≥', s:hd)
- call s:HideSymbol('\\le\>', '≤', s:hd)
- call s:HideSymbol('\\prod\>', '∏', s:hd)
- call s:HideSymbol('\\sum\>', '∑', s:hd)
- syn match rhelpMathSymb "\\sqrt\>" contained
- " Greek letters {{{2
- if s:tex_conceal =~ 'g'
- let s:hd = 1
- else
- let s:hd = 0
- endif
- call s:HideSymbol('\\alpha\>', 'α', s:hd)
- call s:HideSymbol('\\beta\>', 'β', s:hd)
- call s:HideSymbol('\\gamma\>', 'γ', s:hd)
- call s:HideSymbol('\\delta\>', 'δ', s:hd)
- call s:HideSymbol('\\epsilon\>', 'ϵ', s:hd)
- call s:HideSymbol('\\zeta\>', 'ζ', s:hd)
- call s:HideSymbol('\\eta\>', 'η', s:hd)
- call s:HideSymbol('\\theta\>', 'θ', s:hd)
- call s:HideSymbol('\\iota\>', 'ι', s:hd)
- call s:HideSymbol('\\kappa\>', 'κ', s:hd)
- call s:HideSymbol('\\lambda\>', 'λ', s:hd)
- call s:HideSymbol('\\mu\>', 'μ', s:hd)
- call s:HideSymbol('\\nu\>', 'ν', s:hd)
- call s:HideSymbol('\\xi\>', 'ξ', s:hd)
- call s:HideSymbol('\\pi\>', 'π', s:hd)
- call s:HideSymbol('\\rho\>', 'ρ', s:hd)
- call s:HideSymbol('\\sigma\>', 'σ', s:hd)
- call s:HideSymbol('\\tau\>', 'τ', s:hd)
- call s:HideSymbol('\\upsilon\>', 'υ', s:hd)
- call s:HideSymbol('\\phi\>', 'ϕ', s:hd)
- call s:HideSymbol('\\chi\>', 'χ', s:hd)
- call s:HideSymbol('\\psi\>', 'ψ', s:hd)
- call s:HideSymbol('\\omega\>', 'ω', s:hd)
- call s:HideSymbol('\\Gamma\>', 'Γ', s:hd)
- call s:HideSymbol('\\Delta\>', 'Δ', s:hd)
- call s:HideSymbol('\\Theta\>', 'Θ', s:hd)
- call s:HideSymbol('\\Lambda\>', 'Λ', s:hd)
- call s:HideSymbol('\\Xi\>', 'Ξ', s:hd)
- call s:HideSymbol('\\Pi\>', 'Π', s:hd)
- call s:HideSymbol('\\Sigma\>', 'Σ', s:hd)
- call s:HideSymbol('\\Upsilon\>', 'Υ', s:hd)
- call s:HideSymbol('\\Phi\>', 'Φ', s:hd)
- call s:HideSymbol('\\Psi\>', 'Ψ', s:hd)
- call s:HideSymbol('\\Omega\>', 'Ω', s:hd)
- delfunction s:HideSymbol
- " Note: The letters 'omicron', 'Alpha', 'Beta', 'Epsilon', 'Zeta', 'Eta',
- " 'Iota', 'Kappa', 'Mu', 'Nu', 'Omicron', 'Rho', 'Tau' and 'Chi' are listed
- " at src/library/tools/R/Rd2txt.R because they are valid in HTML, although
- " they do not make valid LaTeX code (e.g. Α versus \Alpha).
- " Links {{{1
- syn region rhelpLink matchgroup=rhelpType start="\\link{" end="}" contained keepend extend
- syn region rhelpLink matchgroup=rhelpType start="\\link\[.\{-}\]{" end="}" contained keepend extend
- syn region rhelpLink matchgroup=rhelpType start="\\linkS4class{" end="}" contained keepend extend
- syn region rhelpLink matchgroup=rhelpType start="\\url{" end="}" contained keepend extend
- syn region rhelpLink matchgroup=rhelpType start="\\href{" end="}" contained keepend extend
- syn region rhelpLink matchgroup=rhelpType start="\\figure{" end="}" contained keepend extend
- " Verbatim like {{{1
- 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
- " Equation {{{1
- syn region rhelpEquation matchgroup=rhelpType start="\\eqn{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpMathSymb,rhelpMathOp,rhelpRegion contained keepend extend
- syn region rhelpEquation matchgroup=rhelpType start="\\deqn{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpMathSymb,rhelpMathOp,rhelpRegion contained keepend extend
- " 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 "\\file\>"
- syn match rhelpType "\\email\>"
- syn match rhelpType "\\enc\>"
- 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\>"
- syn match rhelpType "\\doi\>"
- " 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,rhelpEquation
- 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,rhelpEquation
- 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,rhelpEquation
- 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
- hi def link rhelpVerbatim String
- hi def link rhelpDelimiter Delimiter
- hi def link rhelpIdentifier Identifier
- hi def link rhelpString String
- hi def link rhelpCodeSpecial Special
- hi def link rhelpKeyword Keyword
- hi def link rhelpDots Keyword
- hi def link rhelpLink Underlined
- hi def link rhelpType Type
- hi def link rhelpSection PreCondit
- hi def link rhelpError Error
- hi def link rhelpBraceError Error
- hi def link rhelpCurlyError Error
- hi def link rhelpParenError Error
- hi def link rhelpPreProc PreProc
- hi def link rhelpDelimiter Delimiter
- hi def link rhelpComment Comment
- hi def link rhelpRComment Comment
- hi def link rhelpSpecialChar SpecialChar
- hi def link rhelpMathSymb Special
- hi def link rhelpMathOp Operator
- let b:current_syntax = "rhelp"
- " vim: foldmethod=marker sw=2
|