| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | " Language: Markdown with chunks of R, Python and other languages | 
					
						
							| 
									
										
										
										
											2024-02-19 20:37:11 +01:00
										 |  |  | " Maintainer: This runtime file is looking for a new maintainer. | 
					
						
							|  |  |  | " Former Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> | 
					
						
							|  |  |  | " Former Repository: https://github.com/jalvesaq/R-Vim-runtime | 
					
						
							|  |  |  | " Last Change: 2023 Dec 24  07:21AM | 
					
						
							|  |  |  | "   2024 Feb 19 by Vim Project (announce adoption) | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  | " | 
					
						
							|  |  |  | "   For highlighting pandoc extensions to markdown like citations and TeX and | 
					
						
							|  |  |  | "   many other advanced features like folding of markdown sections, it is | 
					
						
							|  |  |  | "   recommended to install the vim-pandoc filetype plugin as well as the | 
					
						
							|  |  |  | "   vim-pandoc-syntax filetype plugin from https://github.com/vim-pandoc. | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-12 12:57:59 +01:00
										 |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  | let g:rmd_include_latex = get(g:, 'rmd_include_latex', 1) | 
					
						
							|  |  |  | if g:rmd_include_latex == 0 || g:rmd_include_latex == 1 | 
					
						
							|  |  |  |   let b:rmd_has_LaTeX = v:false | 
					
						
							|  |  |  | elseif g:rmd_include_latex == 2 | 
					
						
							|  |  |  |   let b:rmd_has_LaTeX = v:true | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-21 18:09:37 +02:00
										 |  |  | " Highlight the header of the chunks as R code | 
					
						
							|  |  |  | let g:rmd_syn_hl_chunk = get(g:, 'rmd_syn_hl_chunk', 0) | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Pandoc-syntax has more features, but it is slower. | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  | " https://github.com/vim-pandoc/vim-pandoc-syntax | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Don't waste time loading syntax that will be discarded: | 
					
						
							|  |  |  | let s:save_pandoc_lngs = get(g:, 'pandoc#syntax#codeblocks#embeds#langs', []) | 
					
						
							|  |  |  | let g:pandoc#syntax#codeblocks#embeds#langs = [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  | let g:rmd_dynamic_fenced_languages = get(g:, 'rmd_dynamic_fenced_languages', v:true) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | " Step_1: Source pandoc.vim if it is installed: | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | runtime syntax/pandoc.vim | 
					
						
							|  |  |  | if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |   if hlexists('pandocDelimitedCodeBlock') | 
					
						
							|  |  |  |     syn clear pandocDelimitedCodeBlock | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if len(s:save_pandoc_lngs) > 0 && !exists('g:rmd_fenced_languages') | 
					
						
							|  |  |  |     let g:rmd_fenced_languages = deepcopy(s:save_pandoc_lngs) | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-21 18:09:37 +02:00
										 |  |  |   " Recognize inline R code | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |   syn region rmdrInline matchgroup=rmdInlineDelim start="`r "  end="`" contains=@Rmdr containedin=pandocLaTeXRegion,yamlFlowString keepend | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |   " Step_2: Source markdown.vim if pandoc.vim is not installed | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Configuration if not using pandoc syntax: | 
					
						
							|  |  |  |   " Add syntax highlighting of YAML header | 
					
						
							|  |  |  |   let g:rmd_syn_hl_yaml = get(g:, 'rmd_syn_hl_yaml', 1) | 
					
						
							|  |  |  |   " Add syntax highlighting of citation keys | 
					
						
							|  |  |  |   let g:rmd_syn_hl_citations = get(g:, 'rmd_syn_hl_citations', 1) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " R chunks will not be highlighted by syntax/markdown because their headers | 
					
						
							|  |  |  |   " follow a non standard pattern: "```{lang" instead of "^```lang". | 
					
						
							|  |  |  |   " Make a copy of g:markdown_fenced_languages to highlight the chunks later: | 
					
						
							|  |  |  |   if exists('g:markdown_fenced_languages') && !exists('g:rmd_fenced_languages') | 
					
						
							|  |  |  |     let g:rmd_fenced_languages = deepcopy(g:markdown_fenced_languages) | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if exists('g:markdown_fenced_languages') && len(g:markdown_fenced_languages) > 0 | 
					
						
							|  |  |  |     let s:save_mfl = deepcopy(g:markdown_fenced_languages) | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   " Don't waste time loading syntax that will be discarded: | 
					
						
							|  |  |  |   let g:markdown_fenced_languages = [] | 
					
						
							|  |  |  |   runtime syntax/markdown.vim | 
					
						
							|  |  |  |   if exists('s:save_mfl') > 0 | 
					
						
							|  |  |  |     let g:markdown_fenced_languages = deepcopy(s:save_mfl) | 
					
						
							|  |  |  |     unlet s:save_mfl | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   syn region rmdrInline matchgroup=rmdInlineDelim start="`r "  end="`" contains=@Rmdr keepend | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " Step_2a: Add highlighting for both YAML and citations which are pandoc | 
					
						
							|  |  |  |   " specific, but also used in Rmd files | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   " You don't need this if either your markdown/syntax.vim already highlights | 
					
						
							|  |  |  |   " the YAML header or you are writing standard markdown | 
					
						
							|  |  |  |   if g:rmd_syn_hl_yaml | 
					
						
							|  |  |  |     " Basic highlighting of YAML header | 
					
						
							|  |  |  |     syn match rmdYamlFieldTtl /^\s*\zs\w\%(-\|\w\)*\ze:/ contained | 
					
						
							|  |  |  |     syn match rmdYamlFieldTtl /^\s*-\s*\zs\w\%(-\|\w\)*\ze:/ contained | 
					
						
							|  |  |  |     syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"' contains=yamlEscape,rmdrInline contained | 
					
						
							|  |  |  |     syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''"  end="'" contains=yamlSingleEscape,rmdrInline contained | 
					
						
							|  |  |  |     syn match  yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)' | 
					
						
							|  |  |  |     syn match  yamlSingleEscape contained "''" | 
					
						
							|  |  |  |     syn match yamlComment /#.*/ contained | 
					
						
							| 
									
										
										
										
											2023-08-23 21:20:00 +02:00
										 |  |  |     " A second colon is a syntax error, unless within a string or following !expr | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |     syn match yamlColonError /:\s*[^'^"^!]*:/ contained | 
					
						
							|  |  |  |     if &filetype == 'quarto' | 
					
						
							|  |  |  |       syn region pandocYAMLHeader matchgroup=rmdYamlBlockDelim start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^---$/ keepend contains=rmdYamlFieldTtl,yamlFlowString,yamlComment,yamlColonError | 
					
						
							| 
									
										
										
										
											2021-04-21 18:09:37 +02:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |       syn region pandocYAMLHeader matchgroup=rmdYamlBlockDelim start=/\%(\%^\|\_^\s*\n\)\@<=\_^-\{3}\ze\n.\+/ end=/^\([-.]\)\1\{2}$/ keepend contains=rmdYamlFieldTtl,yamlFlowString,yamlComment,yamlColonError | 
					
						
							| 
									
										
										
										
											2021-04-21 18:09:37 +02:00
										 |  |  |     endif | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |     hi def link rmdYamlBlockDelim Delimiter | 
					
						
							|  |  |  |     hi def link rmdYamlFieldTtl Identifier | 
					
						
							|  |  |  |     hi def link yamlFlowString String | 
					
						
							|  |  |  |     hi def link yamlComment Comment | 
					
						
							|  |  |  |     hi def link yamlColonError Error | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   " Conceal char for manual line break | 
					
						
							|  |  |  |   if &encoding ==# 'utf-8' | 
					
						
							|  |  |  |     syn match rmdNewLine '  $' conceal cchar=↵ | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |   " You don't need this if either your markdown/syntax.vim already highlights | 
					
						
							|  |  |  |   " citations or you are writing standard markdown | 
					
						
							|  |  |  |   if g:rmd_syn_hl_citations | 
					
						
							|  |  |  |     " From vim-pandoc-syntax | 
					
						
							|  |  |  |     " parenthetical citations | 
					
						
							|  |  |  |     syn match pandocPCite /\^\@<!\[[^\[\]]\{-}-\{0,1}@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*.\{-}\]/ contains=pandocEmphasis,pandocStrong,pandocLatex,pandocCiteKey,@Spell,pandocAmpersandEscape display | 
					
						
							|  |  |  |     " in-text citations with location | 
					
						
							|  |  |  |     syn match pandocICite /@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*\s\[.\{-1,}\]/ contains=pandocCiteKey,@Spell display | 
					
						
							|  |  |  |     " cite keys | 
					
						
							|  |  |  |     syn match pandocCiteKey /\(-\=@[[:alnum:]_][[:alnum:]à-öø-ÿÀ-ÖØ-ß_:.#$%&\-+?<>~\/]*\)/ containedin=pandocPCite,pandocICite contains=@NoSpell display | 
					
						
							|  |  |  |     syn match pandocCiteAnchor /[-@]/ contained containedin=pandocCiteKey display | 
					
						
							|  |  |  |     syn match pandocCiteLocator /[\[\]]/ contained containedin=pandocPCite,pandocICite | 
					
						
							|  |  |  |     hi def link pandocPCite Operator | 
					
						
							|  |  |  |     hi def link pandocICite Operator | 
					
						
							|  |  |  |     hi def link pandocCiteKey Label | 
					
						
							|  |  |  |     hi def link pandocCiteAnchor Operator | 
					
						
							|  |  |  |     hi def link pandocCiteLocator Operator | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  |   endif | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | " Step_3: Highlight code blocks. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region rmdCodeBlock matchgroup=rmdCodeDelim start="^\s*```\s*{.*}$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend | 
					
						
							|  |  |  | syn region rmdCodeBlock matchgroup=rmdCodeDelim start="^\s*```.+$" matchgroup=rmdCodeDelim end="^```$" keepend | 
					
						
							|  |  |  | hi link rmdCodeBlock Special | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | " Now highlight chunks: | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | syn region knitrBodyOptions start='^#| ' end='$' contained  containedin=rComment,pythonComment contains=knitrBodyVar,knitrBodyValue transparent | 
					
						
							|  |  |  | syn match knitrBodyValue ': \zs.*\ze$' keepend contained containedin=knitrBodyOptions | 
					
						
							|  |  |  | syn match knitrBodyVar '| \zs\S\{-}\ze:' contained containedin=knitrBodyOptions | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let g:rmd_fenced_languages = get(g:, 'rmd_fenced_languages', ['r']) | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | let s:no_syntax_vim = [] | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  | function s:IncludeLanguage(lng) | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   if a:lng =~ '=' | 
					
						
							|  |  |  |     let ftpy = substitute(a:lng, '.*=', '', '') | 
					
						
							|  |  |  |     let lnm = substitute(a:lng, '=.*', '', '') | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  |   else | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |     let ftpy = a:lng | 
					
						
							|  |  |  |     let lnm  = a:lng | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   if index(s:no_syntax_vim, ftpy) >= 0 | 
					
						
							|  |  |  |     return | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  |   endif | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   if len(globpath(&rtp, "syntax/" . ftpy . ".vim")) | 
					
						
							|  |  |  |     unlet! b:current_syntax | 
					
						
							|  |  |  |     exe 'syn include @Rmd'.lnm.' syntax/'.ftpy.'.vim' | 
					
						
							|  |  |  |     let b:current_syntax = "rmd" | 
					
						
							|  |  |  |     if g:rmd_syn_hl_chunk | 
					
						
							|  |  |  |       exe 'syn match knitrChunkDelim /```\s*{\s*'.lnm.'/ contained containedin=knitrChunkBrace contains=knitrChunkLabel' | 
					
						
							|  |  |  |       exe 'syn match knitrChunkLabelDelim /```\s*{\s*'.lnm.',\=\s*[-[:alnum:]]\{-1,}[,}]/ contained containedin=knitrChunkBrace' | 
					
						
							|  |  |  |       syn match knitrChunkDelim /}\s*$/ contained containedin=knitrChunkBrace | 
					
						
							|  |  |  |       exe 'syn match knitrChunkBrace /```\s*{\s*'.lnm.'.*$/ contained containedin=rmd'.lnm.'Chunk contains=knitrChunkDelim,knitrChunkLabelDelim,@Rmd'.lnm | 
					
						
							|  |  |  |       exe 'syn region rmd'.lnm.'Chunk start="^\s*```\s*{\s*=\?'.lnm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=knitrChunkBrace,@Rmd'.lnm | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       hi link knitrChunkLabel Identifier | 
					
						
							|  |  |  |       hi link knitrChunkDelim rmdCodeDelim | 
					
						
							|  |  |  |       hi link knitrChunkLabelDelim rmdCodeDelim | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       exe 'syn region rmd'.lnm.'Chunk matchgroup=rmdCodeDelim start="^\s*```\s*{\s*=\?'.lnm.'\>.*$" matchgroup=rmdCodeDelim end="^\s*```\ze\s*$" keepend contains=@Rmd'.lnm | 
					
						
							|  |  |  |     endif | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  |   else | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |     " Avoid the cost of running globpath() whenever the buffer is saved | 
					
						
							|  |  |  |     let s:no_syntax_vim += [ftpy] | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  |   endif | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  | endfunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for s:type in g:rmd_fenced_languages | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  |   call s:IncludeLanguage(s:type) | 
					
						
							| 
									
										
										
										
											2017-04-09 20:11:58 +02:00
										 |  |  | endfor | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | unlet! s:type | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  | let s:LaTeX_included = v:false | 
					
						
							|  |  |  | function s:IncludeLaTeX() | 
					
						
							|  |  |  |   let s:LaTeX_included = v:true | 
					
						
							|  |  |  |   unlet! b:current_syntax | 
					
						
							|  |  |  |   syn include @RmdLaTeX syntax/tex.vim | 
					
						
							|  |  |  |   " From vim-pandoc-syntax | 
					
						
							|  |  |  |   syn region rmdLaTeXInlineMath start=/\v\\@<!\$\S@=/ end=/\v\\@<!\$\d@!/ keepend contains=@RmdLaTeX | 
					
						
							|  |  |  |   syn match rmdLaTeXCmd /\\[[:alpha:]]\+\(\({.\{-}}\)\=\(\[.\{-}\]\)\=\)*/ contains=@RmdLaTeX | 
					
						
							|  |  |  |   syn region rmdLaTeX start='\$\$'  end='\$\$' keepend contains=@RmdLaTeX | 
					
						
							|  |  |  |   syn region rmdLaTeX start=/\\begin{\z(.\{-}\)}/ end=/\\end{\z1}/ keepend contains=@RmdLaTeX | 
					
						
							|  |  |  | endfunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function s:CheckRmdFencedLanguages() | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   let alines = getline(1, '$') | 
					
						
							|  |  |  |   call filter(alines, "v:val =~ '^```{'") | 
					
						
							|  |  |  |   call map(alines, "substitute(v:val, '^```{', '', '')") | 
					
						
							|  |  |  |   call map(alines, "substitute(v:val, '\\W.*', '', '')") | 
					
						
							|  |  |  |   for tpy in alines | 
					
						
							|  |  |  |     if len(tpy) == 0 | 
					
						
							|  |  |  |       continue | 
					
						
							|  |  |  |     endif | 
					
						
							|  |  |  |     let has_lng = 0 | 
					
						
							|  |  |  |     for lng in g:rmd_fenced_languages | 
					
						
							|  |  |  |       if tpy == lng | 
					
						
							|  |  |  |         let has_lng = 1 | 
					
						
							|  |  |  |         continue | 
					
						
							|  |  |  |       endif | 
					
						
							|  |  |  |     endfor | 
					
						
							|  |  |  |     if has_lng == 0 | 
					
						
							|  |  |  |       let g:rmd_fenced_languages += [tpy] | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  |       call s:IncludeLanguage(tpy) | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |     endif | 
					
						
							|  |  |  |   endfor | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   if hlexists('pandocLaTeXCommand') | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   if g:rmd_include_latex | 
					
						
							|  |  |  |     if !b:rmd_has_LaTeX && (search('\$\$', 'wn') > 0 || | 
					
						
							|  |  |  |           \ search('\\begin{', 'wn') > 0) || | 
					
						
							|  |  |  |           \ search('\\[[:alpha:]]\+', 'wn') || | 
					
						
							|  |  |  |           \ search('\$[^\$]\+\$', 'wn') | 
					
						
							|  |  |  |       let b:rmd_has_LaTeX = v:true | 
					
						
							|  |  |  |     endif | 
					
						
							|  |  |  |     if b:rmd_has_LaTeX && !s:LaTeX_included | 
					
						
							|  |  |  |       call s:IncludeLaTeX() | 
					
						
							|  |  |  |     endif | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  | endfunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if g:rmd_dynamic_fenced_languages | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  |   call s:CheckRmdFencedLanguages() | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   augroup RmdSyntax | 
					
						
							|  |  |  |     autocmd! | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  |     autocmd BufWritePost <buffer> call s:CheckRmdFencedLanguages() | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   augroup END | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | " Step_4: Highlight code recognized by pandoc but not defined in pandoc.vim yet: | 
					
						
							|  |  |  | syn match pandocDivBegin '^:::\+ {.\{-}}' contains=pandocHeaderAttr | 
					
						
							|  |  |  | syn match pandocDivEnd '^:::\+$' | 
					
						
							| 
									
										
										
										
											2021-04-21 18:09:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | hi def link knitrBodyVar PreProc | 
					
						
							|  |  |  | hi def link knitrBodyValue Constant | 
					
						
							|  |  |  | hi def link knitrBodyOptions rComment | 
					
						
							|  |  |  | hi def link pandocDivBegin Delimiter | 
					
						
							|  |  |  | hi def link pandocDivEnd Delimiter | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | hi def link rmdInlineDelim Delimiter | 
					
						
							|  |  |  | hi def link rmdCodeDelim Delimiter | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | if len(s:save_pandoc_lngs) | 
					
						
							|  |  |  |   let g:pandoc#syntax#codeblocks#embeds#langs = s:save_pandoc_lngs | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | unlet s:save_pandoc_lngs | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-25 09:22:27 +00:00
										 |  |  | syntax iskeyword clear | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | let b:current_syntax = "rmd" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | " vim: ts=8 sw=2 |