diff options
Diffstat (limited to 'runtime/syntax/rhelp.vim')
| -rw-r--r-- | runtime/syntax/rhelp.vim | 246 | 
1 files changed, 136 insertions, 110 deletions
diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim index 32c91add48..47c764e296 100644 --- a/runtime/syntax/rhelp.vim +++ b/runtime/syntax/rhelp.vim @@ -2,25 +2,21 @@  " 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 +" Homepage: https://github.com/jalvesaq/R-Vim-runtime +" Last Change: Sat Feb 06, 2016  11:34AM  " 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) +"              - No support for \var tag within quoted string  " 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") +if exists("b:current_syntax")    finish  endif  +scriptencoding utf-8  setlocal iskeyword=@,48-57,_,.  syn case match @@ -29,9 +25,11 @@ syn case match  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 @@ -69,76 +67,115 @@ syn match rhelpDelimiter		"\\cr"  syn match rhelpDelimiter		"\\tab "  " Keywords {{{1 -syn match rhelpKeyword	"\\R" -syn match rhelpKeyword	"\\ldots" +syn match rhelpKeyword	"\\R\>" +syn match rhelpKeyword	"\\ldots\>" +syn match rhelpKeyword	"\\sspace\>"  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 +" 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}} -" 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 +" 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 -  syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment -  syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment +  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\>" @@ -148,12 +185,9 @@ 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		"\\enc\>"  syn match rhelpType		"\\var\>"  syn match rhelpType		"\\env\>"  syn match rhelpType		"\\option\>" @@ -163,6 +197,7 @@ 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\>" @@ -202,9 +237,9 @@ syn match rhelpDelimiter "{\|\[\|(\|)\|\]\|}"  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 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 @@ -213,36 +248,27 @@ 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  +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"  | 
