mirror of
				https://github.com/vim/vim.git
				synced 2025-11-03 09:44:48 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			275 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			275 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" 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
 |