| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | " Vim filetype plugin file | 
					
						
							| 
									
										
										
										
											2024-03-03 05:27:47 +11:00
										 |  |  | " Language:		R Markdown file | 
					
						
							|  |  |  | " 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 | 
					
						
							| 
									
										
										
										
											2024-09-23 20:09:33 +02:00
										 |  |  | " Last Change: | 
					
						
							|  |  |  | "  2024 Feb 28 by Vim Project | 
					
						
							|  |  |  | "  2024 Sep 23 by Vim Project: properly restore fex option | 
					
						
							| 
									
										
										
										
											2016-08-26 19:52:37 +02:00
										 |  |  | " Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann) | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Only do this when not yet done for this buffer | 
					
						
							|  |  |  | if exists("b:did_ftplugin") | 
					
						
							|  |  |  |   finish | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | if exists('g:rmd_include_html') && g:rmd_include_html | 
					
						
							|  |  |  |   runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim | 
					
						
							| 
									
										
										
										
											2016-08-26 19:52:37 +02:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | setlocal comments=fb:*,fb:-,fb:+,n:> | 
					
						
							|  |  |  | setlocal commentstring=#\ %s | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | setlocal formatoptions+=tcqln | 
					
						
							|  |  |  | setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ | 
					
						
							|  |  |  | setlocal iskeyword=@,48-57,_,. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-22 22:40:14 +01:00
										 |  |  | function FormatRmd() | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  |   if search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW") | 
					
						
							|  |  |  |     setlocal comments=:#',:###,:##,:# | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     setlocal comments=fb:*,fb:-,fb:+,n:> | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   return 1 | 
					
						
							|  |  |  | endfunction | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  | let s:last_line = 0 | 
					
						
							| 
									
										
										
										
											2023-04-22 22:40:14 +01:00
										 |  |  | function SetRmdCommentStr() | 
					
						
							| 
									
										
										
										
											2023-09-27 13:56:02 -03:00
										 |  |  |   if line('.') == s:last_line | 
					
						
							|  |  |  |     return | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   let s:last_line = line('.') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")) || ((search('^---$', 'Wn') || search('^\.\.\.$', 'Wn')) && search('^---$', 'bnW')) | 
					
						
							|  |  |  |     set commentstring=#\ %s | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     set commentstring=<!--\ %s\ --> | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  | endfunction | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " If you do not want both 'comments' and 'commentstring' dynamically defined, | 
					
						
							|  |  |  | " put in your vimrc: let g:rmd_dynamic_comments = 0 | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | if !exists("g:rmd_dynamic_comments") || (exists("g:rmd_dynamic_comments") && g:rmd_dynamic_comments == 1) | 
					
						
							|  |  |  |   setlocal formatexpr=FormatRmd() | 
					
						
							| 
									
										
										
										
											2023-02-27 15:49:53 +00:00
										 |  |  |   augroup RmdCStr | 
					
						
							|  |  |  |     autocmd! | 
					
						
							|  |  |  |     autocmd CursorMoved <buffer> call SetRmdCommentStr() | 
					
						
							|  |  |  |   augroup END | 
					
						
							| 
									
										
										
										
											2018-08-28 22:58:02 +02:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | " Enables pandoc if it is installed | 
					
						
							|  |  |  | unlet! b:did_ftplugin | 
					
						
							|  |  |  | runtime ftplugin/pandoc.vim | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " Don't load another plugin for this buffer | 
					
						
							|  |  |  | let b:did_ftplugin = 1 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-21 18:09:37 +02:00
										 |  |  | if (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") | 
					
						
							| 
									
										
										
										
											2024-03-03 05:27:47 +11:00
										 |  |  |   let b:browsefilter = "R Source Files (*.R, *.Rnw, *.Rd, *.Rmd, *.Rrst, *.qmd)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst;*.qmd\n" | 
					
						
							| 
									
										
										
										
											2024-01-14 20:59:02 +01:00
										 |  |  |   if has("win32") | 
					
						
							|  |  |  |     let b:browsefilter .= "All Files (*.*)\t*\n" | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     let b:browsefilter .= "All Files (*)\t*\n" | 
					
						
							|  |  |  |   endif | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if exists('b:undo_ftplugin') | 
					
						
							| 
									
										
										
										
											2024-09-23 20:09:33 +02:00
										 |  |  |   let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< fex< | unlet! b:browsefilter" | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2024-09-23 20:09:33 +02:00
										 |  |  |   let b:undo_ftplugin = "setl cms< com< fo< flp< isk< fex< | unlet! b:browsefilter" | 
					
						
							| 
									
										
										
										
											2014-07-10 22:01:47 +02:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " vim: sw=2 |