rhelp.vim (12263B)
1 " Vim syntax file 2 " Language: R Help File 3 " Maintainer: This runtime file is looking for a new maintainer. 4 " Former Maintainers: Jakson Aquino <jalvesaq@gmail.com> 5 " Johannes Ranke <jranke@uni-bremen.de> 6 " Former Repository: https://github.com/jalvesaq/R-Vim-runtime 7 " Last Change: 2016 Jun 28 08:53AM 8 " 2024 Feb 19 by Vim Project (announce adoption) 9 " Remarks: - Includes R syntax highlighting in the appropriate 10 " sections if an r.vim file is in the same directory or in the 11 " default debian location. 12 " - There is no Latex markup in equations 13 " - Thanks to Will Gray for finding and fixing a bug 14 " - No support for \var tag within quoted string 15 16 " Version Clears: {{{1 17 if exists("b:current_syntax") 18 finish 19 endif 20 21 scriptencoding utf-8 22 23 syn case match 24 25 " R help identifiers {{{1 26 syn region rhelpIdentifier matchgroup=rhelpSection start="\\name{" end="}" 27 syn region rhelpIdentifier matchgroup=rhelpSection start="\\alias{" end="}" 28 syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}" contains=rhelpLink 29 syn region rhelpIdentifier matchgroup=rhelpSection start="\\CRANpkg{" end="}" contains=rhelpLink 30 syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end="}" contained 31 syn region rhelpIdentifier matchgroup=rhelpSection start="\\Rdversion{" end="}" 32 33 34 " Highlighting of R code using an existing r.vim syntax file if available {{{1 35 syn include @R syntax/r.vim 36 37 " Strings {{{1 38 syn region rhelpString start=/"/ skip=/\\"/ end=/"/ contains=rhelpSpecialChar,rhelpCodeSpecial,rhelpLink contained 39 40 " Special characters in R strings 41 syn match rhelpCodeSpecial display contained "\\\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\" 42 43 " Special characters ( \$ \& \% \# \{ \} \_) 44 syn match rhelpSpecialChar "\\[$&%#{}_]" 45 46 47 " R code {{{1 48 syn match rhelpDots "\\dots" containedin=@R 49 syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpLink,rhelpIdentifier,rhelpString,rhelpSpecialChar,rhelpSection 50 syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpIdentifier,rhelpS4method 51 syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end="}" contains=@R 52 syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end="}" contains=@R 53 54 if v:version > 703 55 syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@1<!{.\{-}\\\@1<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend 56 else 57 syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@<!{.\{-}\\\@<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend 58 endif 59 syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=")" contains=@R,rhelpDots 60 syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end="}" contains=@R 61 62 " PreProc {{{1 63 syn match rhelpPreProc "^#ifdef.*" 64 syn match rhelpPreProc "^#endif.*" 65 66 " Special Delimiters {{{1 67 syn match rhelpDelimiter "\\cr" 68 syn match rhelpDelimiter "\\tab " 69 70 " Keywords {{{1 71 syn match rhelpKeyword "\\R\>" 72 syn match rhelpKeyword "\\ldots\>" 73 syn match rhelpKeyword "\\sspace\>" 74 syn match rhelpKeyword "--" 75 syn match rhelpKeyword "---" 76 77 " Condition Keywords {{{2 78 syn match rhelpKeyword "\\if\>" 79 syn match rhelpKeyword "\\ifelse\>" 80 syn match rhelpKeyword "\\out\>" 81 " Examples of usage: 82 " \ifelse{latex}{\eqn{p = 5 + 6 - 7 \times 8}}{\eqn{p = 5 + 6 - 7 * 8}} 83 " \ifelse{latex}{\out{$\alpha$}}{\ifelse{html}{\out{α}}{alpha}} 84 85 " Keywords and operators valid only if in math mode {{{2 86 syn match rhelpMathOp "<" contained 87 syn match rhelpMathOp ">" contained 88 syn match rhelpMathOp "+" contained 89 syn match rhelpMathOp "-" contained 90 syn match rhelpMathOp "=" contained 91 92 " Conceal function based on syntax/tex.vim {{{2 93 if exists("g:tex_conceal") 94 let s:tex_conceal = g:tex_conceal 95 else 96 let s:tex_conceal = 'gm' 97 endif 98 function s:HideSymbol(pat, cchar, hide) 99 if a:hide 100 exe "syn match rhelpMathSymb '" . a:pat . "' contained conceal cchar=" . a:cchar 101 else 102 exe "syn match rhelpMathSymb '" . a:pat . "' contained" 103 endif 104 endfunction 105 106 " Math symbols {{{2 107 if s:tex_conceal =~ 'm' 108 let s:hd = 1 109 else 110 let s:hd = 0 111 endif 112 call s:HideSymbol('\\infty\>', '∞', s:hd) 113 call s:HideSymbol('\\ge\>', '≥', s:hd) 114 call s:HideSymbol('\\le\>', '≤', s:hd) 115 call s:HideSymbol('\\prod\>', '∏', s:hd) 116 call s:HideSymbol('\\sum\>', '∑', s:hd) 117 syn match rhelpMathSymb "\\sqrt\>" contained 118 119 " Greek letters {{{2 120 if s:tex_conceal =~ 'g' 121 let s:hd = 1 122 else 123 let s:hd = 0 124 endif 125 call s:HideSymbol('\\alpha\>', 'α', s:hd) 126 call s:HideSymbol('\\beta\>', 'β', s:hd) 127 call s:HideSymbol('\\gamma\>', 'γ', s:hd) 128 call s:HideSymbol('\\delta\>', 'δ', s:hd) 129 call s:HideSymbol('\\epsilon\>', 'ϵ', s:hd) 130 call s:HideSymbol('\\zeta\>', 'ζ', s:hd) 131 call s:HideSymbol('\\eta\>', 'η', s:hd) 132 call s:HideSymbol('\\theta\>', 'θ', s:hd) 133 call s:HideSymbol('\\iota\>', 'ι', s:hd) 134 call s:HideSymbol('\\kappa\>', 'κ', s:hd) 135 call s:HideSymbol('\\lambda\>', 'λ', s:hd) 136 call s:HideSymbol('\\mu\>', 'μ', s:hd) 137 call s:HideSymbol('\\nu\>', 'ν', s:hd) 138 call s:HideSymbol('\\xi\>', 'ξ', s:hd) 139 call s:HideSymbol('\\pi\>', 'π', s:hd) 140 call s:HideSymbol('\\rho\>', 'ρ', s:hd) 141 call s:HideSymbol('\\sigma\>', 'σ', s:hd) 142 call s:HideSymbol('\\tau\>', 'τ', s:hd) 143 call s:HideSymbol('\\upsilon\>', 'υ', s:hd) 144 call s:HideSymbol('\\phi\>', 'ϕ', s:hd) 145 call s:HideSymbol('\\chi\>', 'χ', s:hd) 146 call s:HideSymbol('\\psi\>', 'ψ', s:hd) 147 call s:HideSymbol('\\omega\>', 'ω', s:hd) 148 call s:HideSymbol('\\Gamma\>', 'Γ', s:hd) 149 call s:HideSymbol('\\Delta\>', 'Δ', s:hd) 150 call s:HideSymbol('\\Theta\>', 'Θ', s:hd) 151 call s:HideSymbol('\\Lambda\>', 'Λ', s:hd) 152 call s:HideSymbol('\\Xi\>', 'Ξ', s:hd) 153 call s:HideSymbol('\\Pi\>', 'Π', s:hd) 154 call s:HideSymbol('\\Sigma\>', 'Σ', s:hd) 155 call s:HideSymbol('\\Upsilon\>', 'Υ', s:hd) 156 call s:HideSymbol('\\Phi\>', 'Φ', s:hd) 157 call s:HideSymbol('\\Psi\>', 'Ψ', s:hd) 158 call s:HideSymbol('\\Omega\>', 'Ω', s:hd) 159 delfunction s:HideSymbol 160 " Note: The letters 'omicron', 'Alpha', 'Beta', 'Epsilon', 'Zeta', 'Eta', 161 " 'Iota', 'Kappa', 'Mu', 'Nu', 'Omicron', 'Rho', 'Tau' and 'Chi' are listed 162 " at src/library/tools/R/Rd2txt.R because they are valid in HTML, although 163 " they do not make valid LaTeX code (e.g. Α versus \Alpha). 164 165 " Links {{{1 166 syn region rhelpLink matchgroup=rhelpType start="\\link{" end="}" contained keepend extend 167 syn region rhelpLink matchgroup=rhelpType start="\\link\[.\{-}\]{" end="}" contained keepend extend 168 syn region rhelpLink matchgroup=rhelpType start="\\linkS4class{" end="}" contained keepend extend 169 syn region rhelpLink matchgroup=rhelpType start="\\url{" end="}" contained keepend extend 170 syn region rhelpLink matchgroup=rhelpType start="\\href{" end="}" contained keepend extend 171 syn region rhelpLink matchgroup=rhelpType start="\\figure{" end="}" contained keepend extend 172 173 " Verbatim like {{{1 174 syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpSpecialChar,rhelpComment 175 syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpSpecialChar,rhelpComment 176 177 " Equation {{{1 178 syn region rhelpEquation matchgroup=rhelpType start="\\eqn{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpMathSymb,rhelpMathOp,rhelpRegion contained keepend extend 179 syn region rhelpEquation matchgroup=rhelpType start="\\deqn{" skip='\\\@1<!{.\{-}\\\@1<!}' end="}" contains=rhelpMathSymb,rhelpMathOp,rhelpRegion contained keepend extend 180 181 " Type Styles {{{1 182 syn match rhelpType "\\emph\>" 183 syn match rhelpType "\\strong\>" 184 syn match rhelpType "\\bold\>" 185 syn match rhelpType "\\sQuote\>" 186 syn match rhelpType "\\dQuote\>" 187 syn match rhelpType "\\preformatted\>" 188 syn match rhelpType "\\kbd\>" 189 syn match rhelpType "\\file\>" 190 syn match rhelpType "\\email\>" 191 syn match rhelpType "\\enc\>" 192 syn match rhelpType "\\var\>" 193 syn match rhelpType "\\env\>" 194 syn match rhelpType "\\option\>" 195 syn match rhelpType "\\command\>" 196 syn match rhelpType "\\newcommand\>" 197 syn match rhelpType "\\renewcommand\>" 198 syn match rhelpType "\\dfn\>" 199 syn match rhelpType "\\cite\>" 200 syn match rhelpType "\\acronym\>" 201 syn match rhelpType "\\doi\>" 202 203 " rhelp sections {{{1 204 syn match rhelpSection "\\encoding\>" 205 syn match rhelpSection "\\title\>" 206 syn match rhelpSection "\\item\>" 207 syn match rhelpSection "\\description\>" 208 syn match rhelpSection "\\concept\>" 209 syn match rhelpSection "\\arguments\>" 210 syn match rhelpSection "\\details\>" 211 syn match rhelpSection "\\value\>" 212 syn match rhelpSection "\\references\>" 213 syn match rhelpSection "\\note\>" 214 syn match rhelpSection "\\author\>" 215 syn match rhelpSection "\\seealso\>" 216 syn match rhelpSection "\\keyword\>" 217 syn match rhelpSection "\\docType\>" 218 syn match rhelpSection "\\format\>" 219 syn match rhelpSection "\\source\>" 220 syn match rhelpSection "\\itemize\>" 221 syn match rhelpSection "\\describe\>" 222 syn match rhelpSection "\\enumerate\>" 223 syn match rhelpSection "\\item " 224 syn match rhelpSection "\\item$" 225 syn match rhelpSection "\\tabular{[lcr]*}" 226 syn match rhelpSection "\\dontrun\>" 227 syn match rhelpSection "\\dontshow\>" 228 syn match rhelpSection "\\testonly\>" 229 syn match rhelpSection "\\donttest\>" 230 231 " Freely named Sections {{{1 232 syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end="}" 233 syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end="}" 234 235 syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}" 236 237 " R help file comments {{{1 238 syn match rhelpComment /%.*$/ 239 240 " Error {{{1 241 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 242 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 243 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 244 syn match rhelpError /[)\]}]/ 245 syn match rhelpBraceError /[)}]/ contained 246 syn match rhelpCurlyError /[)\]]/ contained 247 syn match rhelpParenError /[\]}]/ contained 248 249 syntax sync match rhelpSyncRcode grouphere rhelpRcode "\\examples{" 250 251 " Define the default highlighting {{{1 252 hi def link rhelpVerbatim String 253 hi def link rhelpDelimiter Delimiter 254 hi def link rhelpIdentifier Identifier 255 hi def link rhelpString String 256 hi def link rhelpCodeSpecial Special 257 hi def link rhelpKeyword Keyword 258 hi def link rhelpDots Keyword 259 hi def link rhelpLink Underlined 260 hi def link rhelpType Type 261 hi def link rhelpSection PreCondit 262 hi def link rhelpError Error 263 hi def link rhelpBraceError Error 264 hi def link rhelpCurlyError Error 265 hi def link rhelpParenError Error 266 hi def link rhelpPreProc PreProc 267 hi def link rhelpDelimiter Delimiter 268 hi def link rhelpComment Comment 269 hi def link rhelpRComment Comment 270 hi def link rhelpSpecialChar SpecialChar 271 hi def link rhelpMathSymb Special 272 hi def link rhelpMathOp Operator 273 274 let b:current_syntax = "rhelp" 275 276 " vim: foldmethod=marker sw=2