xref: /vim-8.2.3635/runtime/ftplugin/rmd.vim (revision 11e3c5ba)
1db6ea063SBram Moolenaar" Vim filetype plugin file
2e4a3bcf2SBram Moolenaar" Language: R Markdown file
3db6ea063SBram Moolenaar" Maintainer: Jakson Alves de Aquino <[email protected]>
477cdfd10SBram Moolenaar" Homepage: https://github.com/jalvesaq/R-Vim-runtime
5*11e3c5baSBram Moolenaar" Last Change:	Sat Aug 15, 2020  12:03PM
6e4a3bcf2SBram Moolenaar" Original work by Alex Zvoleff (adjusted from R help for rmd by Michel Kuhlmann)
7db6ea063SBram Moolenaar
8db6ea063SBram Moolenaar" Only do this when not yet done for this buffer
9db6ea063SBram Moolenaarif exists("b:did_ftplugin")
10db6ea063SBram Moolenaar  finish
11db6ea063SBram Moolenaarendif
12db6ea063SBram Moolenaar
13fc65cabbSBram Moolenaarif exists('g:rmd_include_html') && g:rmd_include_html
14db6ea063SBram Moolenaar  runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
15e4a3bcf2SBram Moolenaarendif
16e4a3bcf2SBram Moolenaar
17fc65cabbSBram Moolenaarsetlocal comments=fb:*,fb:-,fb:+,n:>
18fc65cabbSBram Moolenaarsetlocal commentstring=#\ %s
19db6ea063SBram Moolenaarsetlocal formatoptions+=tcqln
20db6ea063SBram Moolenaarsetlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
21db6ea063SBram Moolenaarsetlocal iskeyword=@,48-57,_,.
22db6ea063SBram Moolenaar
23db6ea063SBram Moolenaarlet s:cpo_save = &cpo
24db6ea063SBram Moolenaarset cpo&vim
25db6ea063SBram Moolenaar
26fc65cabbSBram Moolenaarfunction! FormatRmd()
27fc65cabbSBram Moolenaar  if search("^[ \t]*```[ ]*{r", "bncW") > search("^[ \t]*```$", "bncW")
28fc65cabbSBram Moolenaar    setlocal comments=:#',:###,:##,:#
29fc65cabbSBram Moolenaar  else
30fc65cabbSBram Moolenaar    setlocal comments=fb:*,fb:-,fb:+,n:>
31fc65cabbSBram Moolenaar  endif
32fc65cabbSBram Moolenaar  return 1
33fc65cabbSBram Moolenaarendfunction
34fc65cabbSBram Moolenaar
35fc65cabbSBram Moolenaar" If you do not want 'comments' dynamically defined, put in your vimrc:
36fc65cabbSBram Moolenaar" let g:rmd_dynamic_comments = 0
37fc65cabbSBram Moolenaarif !exists("g:rmd_dynamic_comments") || (exists("g:rmd_dynamic_comments") && g:rmd_dynamic_comments == 1)
38fc65cabbSBram Moolenaar  setlocal formatexpr=FormatRmd()
39fc65cabbSBram Moolenaarendif
40fc65cabbSBram Moolenaar
41fc65cabbSBram Moolenaar
42db6ea063SBram Moolenaar" Enables pandoc if it is installed
43db6ea063SBram Moolenaarunlet! b:did_ftplugin
44db6ea063SBram Moolenaarruntime ftplugin/pandoc.vim
45db6ea063SBram Moolenaar
46db6ea063SBram Moolenaar" Don't load another plugin for this buffer
47db6ea063SBram Moolenaarlet b:did_ftplugin = 1
48db6ea063SBram Moolenaar
49*11e3c5baSBram Moolenaarif (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter")
50db6ea063SBram Moolenaar  let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
51db6ea063SBram Moolenaar        \ "All Files (*.*)\t*.*\n"
52db6ea063SBram Moolenaarendif
53db6ea063SBram Moolenaar
54db6ea063SBram Moolenaarif exists('b:undo_ftplugin')
55db6ea063SBram Moolenaar  let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
56db6ea063SBram Moolenaarelse
57db6ea063SBram Moolenaar  let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
58db6ea063SBram Moolenaarendif
59db6ea063SBram Moolenaar
60db6ea063SBram Moolenaarlet &cpo = s:cpo_save
61db6ea063SBram Moolenaarunlet s:cpo_save
62db6ea063SBram Moolenaar
63db6ea063SBram Moolenaar" vim: sw=2
64