diff runtime/syntax/rhelp.vim @ 8497:da01d5da2cfa

commit https://github.com/vim/vim/commit/77cdfd10382e01cc51f4ba1a9177032351843151 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 12 12:57:59 2016 +0100 Updated runtime files.
author Christian Brabandt <cb@256bit.org>
date Sat, 12 Mar 2016 13:00:06 +0100
parents 0efec12f52ac
children 03fa8a51e9dc
line wrap: on
line diff
--- 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"
+
+" 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;}}{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. &Alpha; versus \Alpha).
 
 " 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
+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
-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
+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 /[\]}]/ contai
 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"