diff runtime/syntax/rmd.vim @ 6051:0efec12f52ac

Updated runtime files.
author Bram Moolenaar <bram@vim.org>
date Thu, 10 Jul 2014 22:01:47 +0200
parents
children da01d5da2cfa
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/runtime/syntax/rmd.vim
@@ -0,0 +1,87 @@
+" markdown Text with R statements
+" Language: markdown with R code chunks
+" Last Change: Wed Jul 09, 2014  10:29PM
+"
+" CONFIGURATION:
+"   To highlight chunk headers as R code, put in your vimrc:
+"   let rmd_syn_hl_chunk = 1
+
+" for portability
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" load all of pandoc info
+runtime syntax/pandoc.vim
+if exists("b:current_syntax")
+  let rmdIsPandoc = 1
+  unlet b:current_syntax
+else
+  let rmdIsPandoc = 0
+  runtime syntax/markdown.vim
+  if exists("b:current_syntax")
+    unlet b:current_syntax
+  endif
+endif
+
+" load all of the r syntax highlighting rules into @R
+syntax include @R syntax/r.vim
+if exists("b:current_syntax")
+  unlet b:current_syntax
+endif
+
+if exists("g:rmd_syn_hl_chunk")
+  " highlight R code inside chunk header
+  syntax match rmdChunkDelim "^[ \t]*```{r" contained
+  syntax match rmdChunkDelim "}$" contained
+else
+  syntax match rmdChunkDelim "^[ \t]*```{r.*}$" contained
+endif
+syntax match rmdChunkDelim "^[ \t]*```$" contained
+syntax region rmdChunk start="^[ \t]*``` *{r.*}$" end="^[ \t]*```$" contains=@R,rmdChunkDelim keepend fold
+
+" also match and syntax highlight in-line R code
+syntax match rmdEndInline "`" contained
+syntax match rmdBeginInline "`r " contained
+syntax region rmdrInline start="`r "  end="`" contains=@R,rmdBeginInline,rmdEndInline keepend
+
+" match slidify special marker
+syntax match rmdSlidifySpecial "\*\*\*"
+
+
+if rmdIsPandoc == 0
+  syn match rmdBlockQuote /^\s*>.*\n\(.*\n\@<!\n\)*/ skipnl
+  " LaTeX
+  syntax include @LaTeX syntax/tex.vim
+  if exists("b:current_syntax")
+    unlet b:current_syntax
+  endif
+  " Inline
+  syntax match rmdLaTeXInlDelim "\$"
+  syntax match rmdLaTeXInlDelim "\\\$"
+  syn region texMathZoneX	matchgroup=Delimiter start="\$" skip="\\\\\|\\\$"	matchgroup=Delimiter end="\$" end="%stopzone\>"	contains=@texMathZoneGroup
+  " Region
+  syntax match rmdLaTeXRegDelim "\$\$" contained
+  syntax match rmdLaTeXRegDelim "\$\$latex$" contained
+  syntax region rmdLaTeXRegion start="^\$\$" skip="\\\$" end="\$\$$" contains=@LaTeX,rmdLaTeXSt,rmdLaTeXRegDelim keepend
+  syntax region rmdLaTeXRegion2 start="^\\\[" end="\\\]" contains=@LaTeX,rmdLaTeXSt,rmdLaTeXRegDelim keepend
+  hi def link rmdLaTeXSt Statement
+  hi def link rmdLaTeXInlDelim Special
+  hi def link rmdLaTeXRegDelim Special
+endif
+
+setlocal iskeyword=@,48-57,_,.
+
+syn sync match rmdSyncChunk grouphere rmdChunk "^[ \t]*``` *{r"
+
+hi def link rmdChunkDelim Special
+hi def link rmdBeginInline Special
+hi def link rmdEndInline Special
+hi def link rmdBlockQuote Comment
+hi def link rmdSlidifySpecial Special
+
+let b:current_syntax = "rmd"
+
+" vim: ts=8 sw=2