summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2014-07-10 22:01:47 +0200
committerBram Moolenaar <Bram@vim.org>2014-07-10 22:01:47 +0200
commitdb6ea063352ec1c88c7bc0839fa2bf75bae56cf0 (patch)
treed645ba12242f3155e172cd758dc832da80e30740
parent3ed8b1332f7b84e40c89069e54d411d0ddfec3f1 (diff)
downloadvim-git-db6ea063352ec1c88c7bc0839fa2bf75bae56cf0.tar.gz
Updated runtime files.
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/insert.txt4
-rw-r--r--runtime/doc/starting.txt4
-rw-r--r--runtime/doc/tags1
-rw-r--r--runtime/doc/todo.txt29
-rw-r--r--runtime/doc/usr_08.txt4
-rw-r--r--runtime/filetype.vim20
-rw-r--r--runtime/ftplugin/r.vim31
-rw-r--r--runtime/ftplugin/rhelp.vim29
-rw-r--r--runtime/ftplugin/rmd.vim43
-rw-r--r--runtime/ftplugin/rnoweb.vim40
-rw-r--r--runtime/ftplugin/rrst.vim37
-rw-r--r--runtime/ftplugin/text.vim17
-rw-r--r--runtime/indent/rhelp.vim111
-rw-r--r--runtime/indent/rmd.vim46
-rw-r--r--runtime/indent/rnoweb.vim35
-rw-r--r--runtime/indent/rrst.vim46
-rw-r--r--runtime/plugin/matchparen.vim11
-rw-r--r--runtime/syntax/r.vim15
-rw-r--r--runtime/syntax/rhelp.vim27
-rw-r--r--runtime/syntax/rmd.vim87
-rw-r--r--runtime/syntax/rrst.vim47
22 files changed, 636 insertions, 52 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 42cf14cbb..d75799ab5 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.4. Last change: 2014 Jul 02
+*eval.txt* For Vim version 7.4. Last change: 2014 Jul 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5653,7 +5653,7 @@ sort({list} [, {func} [, {dict}]]) *sort()* *E702*
The sort is stable, items which compare equal (as number or as
string) will keep their relative position. E.g., when sorting
- on numbers, text strings will sort next to eachother, in the
+ on numbers, text strings will sort next to each other, in the
same order as they were originally.
Also see |uniq()|.
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 9b9445ae6..4136c9189 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.4. Last change: 2013 Jul 12
+*insert.txt* For Vim version 7.4. Last change: 2014 Jul 06
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1302,7 +1302,7 @@ HTML *ft-html-omni*
XHTML *ft-xhtml-omni*
CTRL-X CTRL-O provides completion of various elements of (X)HTML files. It is
-designed to support writing of XHTML 1.0 Strict files but will also works for
+designed to support writing of XHTML 1.0 Strict files but will also work for
other versions of HTML. Features:
- after "<" complete tag name depending on context (no div suggestion inside
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 14b0bbffa..773a3b912 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt* For Vim version 7.4. Last change: 2014 Jun 14
+*starting.txt* For Vim version 7.4. Last change: 2014 Jul 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1506,7 +1506,7 @@ most of the information will be restored).
already set (registers, marks, |v:oldfiles|, etc.)
will be overwritten {not in Vi}
- *:wv* *:wviminfo* *E137* *E138* *E574*
+ *:wv* *:wviminfo* *E137* *E138* *E574* *E886*
:wv[iminfo][!] [file] Write to viminfo file [file] (default: see above).
The information in the file is first read in to make
a merge between old and new info. When [!] is used,
diff --git a/runtime/doc/tags b/runtime/doc/tags
index f06335008..7605ccc99 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4323,6 +4323,7 @@ E882 eval.txt /*E882*
E883 eval.txt /*E883*
E884 eval.txt /*E884*
E885 sign.txt /*E885*
+E886 starting.txt /*E886*
E89 message.txt /*E89*
E90 message.txt /*E90*
E91 options.txt /*E91*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 3752f2daf..fc954cff0 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.4. Last change: 2014 Jul 04
+*todo.txt* For Vim version 7.4. Last change: 2014 Jul 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -34,13 +34,7 @@ not be repeated below, unless there is extra information.
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Sort is still not stable, add an index in the array.
-See patch from Takimoto.
-
-Another follow-up patch for breakindent. (Christian, 2014 Jun 28)
-
-After patch 7.4.305 the termresponse isn't requested at all?
-(Tomas Janousek, 2014 Jul 1, Jul 2)
+Forfeit test_listlbr when encoding is not utf8? (Danek Duvall)
Regexp problems:
- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$'
@@ -55,26 +49,17 @@ Regexp problems:
- Does not work with NFA regexp engine:
\%u, \%x, \%o, \%d followed by a composing character
+Patch to set y_width when getting the register from the clipboard.
+(Yukihiro Nakadaira, 2014 Jul 10)
+
Problem that a previous silent ":throw" causes a following try/catch not to
work. (ZyX, 2013 Sep 28)
Completion for :buf does not use 'wildignorecase'. (Akshay H, 2014 May 31)
-Patch to avoid inconsistency of using \v and \V after $ in regexp.
-(Ozaki Kiichi, 2014 Jul 2)
-
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
-Make matchparen faster by not using winsaveview()/winrestview().
-(Alexey Radkov, 2014 Jun 28)
-
-Patch to avoid flicker when filling the preview window.
-(Hirohito Higashi, 2014 Jul 2)
-
-matchaddpos() doesn't handle wrong byte length well, e.g. using 1 on a
-multi-byte charcter. (lcd47, 2014 Jun 29)
-
The entries added by matchaddpos() are returned by getmatches() but can't be
set with setmatches(). (lcd47, 2014 Jun 29)
@@ -92,9 +77,6 @@ MS-Windows: Crash opening very long file name starting with "\\".
Syntax highlighting slow (hangs) in SASS file. (Niek Bosch, 2013 Aug 21)
-Patch to translate 0xce in K_NUL 3. (Yasuhiro Matsumoto, 2014 June 6)
-Update by Nobuhiro Takasaki, Jun 19.
-
Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19)
"hi link" does not respect groups with GUI settings only. (Mark Lodato, 2014
@@ -375,6 +357,7 @@ Patch to allow setting w:quickfix_title via setqflist() and setloclist()
functions. (Christian Brabandt, 2013 May 8, update May 21)
Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14)
Second one. Update May 22.
+Update by Daniel Hahler, 2014 Jul 4.
Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec)
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index 2ac6fea00..ef26b46eb 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt* For Vim version 7.4. Last change: 2006 Jul 18
+*usr_08.txt* For Vim version 7.4. Last change: 2014 Jul 06
VIM USER MANUAL - by Bram Moolenaar
@@ -532,7 +532,7 @@ window. And you will notice a bar at the top with the two file names:
You now have two tab pages. The first one has a window for "thisfile" and the
second one a window for "thatfile". It's like two pages that are on top of
-eachother, with a tab sticking out of each page showing the file name.
+each other, with a tab sticking out of each page showing the file name.
Now use the mouse to click on "thisfile" in the top line. The result is
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 17f0257fa..677e9bbdb 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Jun 12
+" Last Change: 2014 Jul 09
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -864,7 +864,7 @@ func! s:FThtml()
setf xhtml
return
endif
- if getline(n) =~ '{%\s*\(extends\|block\)\>'
+ if getline(n) =~ '{%\s*\(extends\|block\|load\)\>'
setf htmldjango
return
endif
@@ -1649,6 +1649,20 @@ else
au BufNewFile,BufRead *.rnw,*.snw setf rnoweb
endif
+" R Markdown file
+if has("fname_case")
+ au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd
+else
+ au BufNewFile,BufRead *.rmd,*.smd setf rmd
+endif
+
+" R reStructuredText file
+if has("fname_case")
+ au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst
+else
+ au BufNewFile,BufRead *.rrst,*.srst setf rrst
+endif
+
" Rexx, Rebol or R
au BufNewFile,BufRead *.r,*.R call s:FTr()
@@ -2664,7 +2678,7 @@ au BufNewFile,BufRead zsh*,zlog* call s:StarSetf('zsh')
" Plain text files, needs to be far down to not override others. This avoids
" the "conf" type being used if there is a line starting with '#'.
-au BufNewFile,BufRead *.txt,*.text setf text
+au BufNewFile,BufRead *.txt,*.text,README setf text
" Use the filetype detect plugins. They may overrule any of the previously
diff --git a/runtime/ftplugin/r.vim b/runtime/ftplugin/r.vim
new file mode 100644
index 000000000..43b208b84
--- /dev/null
+++ b/runtime/ftplugin/r.vim
@@ -0,0 +1,31 @@
+" Vim filetype plugin file
+" Language: R
+" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Sun Feb 23, 2014 04:07PM
+
+" Only do this when not yet done for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,_,.
+setlocal formatoptions-=t
+setlocal commentstring=#\ %s
+setlocal comments=:#',:###,:##,:#
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "R Source Files (*.R)\t*.R\n" .
+ \ "Files that include R (*.Rnw *.Rd *.Rmd *.Rrst)\t*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setl cms< com< fo< isk< | unlet! b:browsefilter"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/rhelp.vim b/runtime/ftplugin/rhelp.vim
new file mode 100644
index 000000000..9b72fb42f
--- /dev/null
+++ b/runtime/ftplugin/rhelp.vim
@@ -0,0 +1,29 @@
+" Vim filetype plugin file
+" Language: R help file
+" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 06:23PM
+
+" Only do this when not yet done for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal iskeyword=@,48-57,_,.
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+let b:undo_ftplugin = "setl isk< | unlet! b:browsefilter"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: sw=2
diff --git a/runtime/ftplugin/rmd.vim b/runtime/ftplugin/rmd.vim
new file mode 100644
index 000000000..55723ff39
--- /dev/null
+++ b/runtime/ftplugin/rmd.vim
@@ -0,0 +1,43 @@
+" Vim filetype plugin file
+" Language: R help file
+" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 06:23PM
+" Original work by Alex Zvoleff (adjusted for rmd by Michel Kuhlmann)
+
+" Only do this when not yet done for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+
+setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal formatoptions+=tcqln
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
+setlocal iskeyword=@,48-57,_,.
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" 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
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
+else
+ let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: sw=2
diff --git a/runtime/ftplugin/rnoweb.vim b/runtime/ftplugin/rnoweb.vim
new file mode 100644
index 000000000..baf53d010
--- /dev/null
+++ b/runtime/ftplugin/rnoweb.vim
@@ -0,0 +1,40 @@
+" Vim filetype plugin file
+" Language: Rnoweb
+" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 06:23PM
+
+" Only do this when not yet done for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+runtime! ftplugin/tex.vim
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+" Enables Vim-Latex-Suite, LaTeX-Box if installed
+runtime ftplugin/tex_*.vim
+
+setlocal iskeyword=@,48-57,_,.
+setlocal suffixesadd=.bib,.tex
+setlocal comments=b:%,b:#,b:##,b:###,b:#'
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin .= " | setl isk< sua< com< | unlet! b:browsefilter"
+else
+ let b:undo_ftplugin = "setl isk< sua< com< | unlet! b:browsefilter"
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: sw=2
diff --git a/runtime/ftplugin/rrst.vim b/runtime/ftplugin/rrst.vim
new file mode 100644
index 000000000..8140169e6
--- /dev/null
+++ b/runtime/ftplugin/rrst.vim
@@ -0,0 +1,37 @@
+" Vim filetype plugin file
+" Language: reStructuredText documentation format with R code
+" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 06:23PM
+" Original work by Alex Zvoleff
+
+" Only do this when not yet done for this buffer
+if exists("b:did_ftplugin")
+ finish
+endif
+
+" Don't load another plugin for this buffer
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal formatoptions+=tcqln
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+
+setlocal iskeyword=@,48-57,_,.
+
+if has("gui_win32") && !exists("b:browsefilter")
+ let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" .
+ \ "All Files (*.*)\t*.*\n"
+endif
+
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
+else
+ let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter"
+endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: sw=2
diff --git a/runtime/ftplugin/text.vim b/runtime/ftplugin/text.vim
new file mode 100644
index 000000000..ec84ac6f7
--- /dev/null
+++ b/runtime/ftplugin/text.vim
@@ -0,0 +1,17 @@
+" Vim filetype plugin
+" Language: Text
+" Maintainer: David Barnett <daviebdawg+vim@gmail.com>
+" Last Change: 2014 Jul 09
+
+if exists('b:did_ftplugin')
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = 'setlocal comments< commentstring<'
+
+" We intentionally don't set formatoptions-=t since text should wrap as text.
+
+" Pseudo comment leaders to indent bulleted lists.
+setlocal comments=fb:-,fb:*
+setlocal commentstring=
diff --git a/runtime/indent/rhelp.vim b/runtime/indent/rhelp.vim
new file mode 100644
index 000000000..8cc5fdae3
--- /dev/null
+++ b/runtime/indent/rhelp.vim
@@ -0,0 +1,111 @@
+" Vim indent file
+" Language: R Documentation (Help), *.Rd
+" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 07:34PM
+
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+runtime indent/r.vim
+let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},:,!^F,o,O,e
+setlocal indentexpr=GetRHelpIndent()
+
+" Only define the function once.
+if exists("*GetRHelpIndent")
+ finish
+endif
+
+setlocal noautoindent
+setlocal nocindent
+setlocal nosmartindent
+setlocal nolisp
+
+setlocal indentkeys=0{,0},:,!^F,o,O,e
+setlocal indentexpr=GetCorrectRHelpIndent()
+
+function s:SanitizeRHelpLine(line)
+ let newline = substitute(a:line, '\\\\', "x", "g")
+ let newline = substitute(newline, '\\{', "x", "g")
+ let newline = substitute(newline, '\\}', "x", "g")
+ let newline = substitute(newline, '\\%', "x", "g")
+ let newline = substitute(newline, '%.*', "", "")
+ let newline = substitute(newline, '\s*$', "", "")
+ return newline
+endfunction
+
+function GetRHelpIndent()
+
+ let clnum = line(".") " current line
+ if clnum == 1
+ return 0
+ endif
+ let cline = getline(clnum)
+
+ if cline =~ '^\s*}\s*$'
+ let i = clnum
+ let bb = -1
+ while bb != 0 && i > 1
+ let i -= 1
+ let line = s:SanitizeRHelpLine(getline(i))
+ let line2 = substitute(line, "{", "", "g")
+ let openb = strlen(line) - strlen(line2)
+ let line3 = substitute(line2, "}", "", "g")
+ let closeb = strlen(line2) - strlen(line3)
+ let bb += openb - closeb
+ endwhile
+ return indent(i)
+ endif
+
+ if cline =~ '^\s*#ifdef\>' || cline =~ '^\s*#endif\>'
+ return 0
+ endif
+
+ let lnum = clnum - 1
+ let line = getline(lnum)
+ if line =~ '^\s*#ifdef\>' || line =~ '^\s*#endif\>'
+ let lnum -= 1
+ let line = getline(lnum)
+ endif
+ while lnum > 1 && (line =~ '^\s*$' || line =~ '^#ifdef' || line =~ '^#endif')
+ let lnum -= 1
+ let line = getline(lnum)
+ endwhile
+ if lnum == 1
+ return 0
+ endif
+ let line = s:SanitizeRHelpLine(line)
+ let line2 = substitute(line, "{", "", "g")
+ let openb = strlen(line) - strlen(line2)
+ let line3 = substitute(line2, "}", "", "g")
+ let closeb = strlen(line2) - strlen(line3)
+ let bb = openb - closeb
+
+ let ind = indent(lnum) + (bb * &sw)
+
+ if line =~ '^\s*}\s*$'
+ let ind = indent(lnum)
+ endif
+
+ if ind < 0
+ return 0
+ endif
+
+ return ind
+endfunction
+
+function GetCorrectRHelpIndent()
+ let lastsection = search('^\\[a-z]*{', "bncW")
+ let secname = getline(lastsection)
+ if secname =~ '^\\usage{' || secname =~ '^\\examples{' || secname =~ '^\\dontshow{' || secname =~ '^\\dontrun{' || secname =~ '^\\donttest{' || secname =~ '^\\testonly{' || secname =~ '^\\method{.*}{.*}('
+ return s:RIndent()
+ else
+ return GetRHelpIndent()
+ endif
+endfunction
+
+" vim: sw=2
diff --git a/runtime/indent/rmd.vim b/runtime/indent/rmd.vim
new file mode 100644
index 000000000..872790e7b
--- /dev/null
+++ b/runtime/indent/rmd.vim
@@ -0,0 +1,46 @@
+" Vim indent file
+" Language: Rmd
+" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 07:33PM
+
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+runtime indent/r.vim
+let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},:,!^F,o,O,e
+setlocal indentexpr=GetRmdIndent()
+
+if exists("*GetRmdIndent")
+ finish
+endif
+
+function GetMdIndent()
+ let pline = getline(v:lnum - 1)
+ let cline = getline(v:lnum)
+ if prevnonblank(v:lnum - 1) < v:lnum - 1 || cline =~ '^\s*[-\+\*]\s' || cline =~ '^\s*\d\+\.\s\+'
+ return indent(v:lnum)
+ elseif pline =~ '^\s*[-\+\*]\s'
+ return indent(v:lnum - 1) + 2
+ elseif pline =~ '^\s*\d\+\.\s\+'
+ return indent(v:lnum - 1) + 3
+ endif
+ return indent(prevnonblank(v:lnum - 1))
+endfunction
+
+function GetRmdIndent()
+ if getline(".") =~ '^```{r .*}$' || getline(".") =~ '^```$'
+ return 0
+ endif
+ if search('^```{r', "bncW") > search('^```$', "bncW")
+ return s:RIndent()
+ else
+ return GetMdIndent()
+ endif
+endfunction
+
+" vim: sw=2
diff --git a/runtime/indent/rnoweb.vim b/runtime/indent/rnoweb.vim
new file mode 100644
index 000000000..e69542bd1
--- /dev/null
+++ b/runtime/indent/rnoweb.vim
@@ -0,0 +1,35 @@
+" Vim indent file
+" Language: Rnoweb
+" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 07:28PM
+
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+runtime indent/tex.vim
+let s:TeXIndent = function(substitute(&indentexpr, "()", "", ""))
+unlet b:did_indent
+runtime indent/r.vim
+let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},!^F,o,O,e,},=\bibitem,=\item
+setlocal indentexpr=GetRnowebIndent()
+
+if exists("*GetRnowebIndent")
+ finish
+endif
+
+function GetRnowebIndent()
+ if getline(".") =~ "^<<.*>>=$"
+ return 0
+ endif
+ if search("^<<", "bncW") > search("^@", "bncW")
+ return s:RIndent()
+ endif
+ return s:TeXIndent()
+endfunction
+
+" vim: sw=2
diff --git a/runtime/indent/rrst.vim b/runtime/indent/rrst.vim
new file mode 100644
index 000000000..8bfa8344c
--- /dev/null
+++ b/runtime/indent/rrst.vim
@@ -0,0 +1,46 @@
+" Vim indent file
+" Language: Rrst
+" Author: Jakson Alves de Aquino <jalvesaq@gmail.com>
+" Last Change: Wed Jul 09, 2014 07:33PM
+
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+ finish
+endif
+runtime indent/r.vim
+let s:RIndent = function(substitute(&indentexpr, "()", "", ""))
+let b:did_indent = 1
+
+setlocal indentkeys=0{,0},:,!^F,o,O,e
+setlocal indentexpr=GetRrstIndent()
+
+if exists("*GetRrstIndent")
+ finish
+endif
+
+function GetRstIndent()
+ let pline = getline(v:lnum - 1)
+ let cline = getline(v:lnum)
+ if prevnonblank(v:lnum - 1) < v:lnum - 1 || cline =~ '^\s*[-\+\*]\s' || cline =~ '^\s*\d\+\.\s\+'
+ return indent(v:lnum)
+ elseif pline =~ '^\s*[-\+\*]\s'
+ return indent(v:lnum - 1) + 2
+ elseif pline =~ '^\s*\d\+\.\s\+'
+ return indent(v:lnum - 1) + 3
+ endif
+ return indent(prevnonblank(v:lnum - 1))
+endfunction
+
+function GetRrstIndent()
+ if getline(".") =~ '^\.\. {r .*}$' || getline(".") =~ '^\.\. \.\.$'
+ return 0
+ endif
+ if search('^\.\. {r', "bncW") > search('^\.\. \.\.$', "bncW")
+ return s:RIndent()
+ else
+ return GetRstIndent()
+ endif
+endfunction
+
+" vim: sw=2
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index b490f45eb..23c79382f 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2014 Jun 17
+" Last Change: 2014 Jul 09
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -54,14 +54,15 @@ function! s:Highlight_Matching_Pair()
let c_col = col('.')
let before = 0
- let c = getline(c_lnum)[c_col - 1]
+ let text = getline(c_lnum)
+ let c = text[c_col - 1]
let plist = split(&matchpairs, '.\zs[:,]')
let i = index(plist, c)
if i < 0
" not found, in Insert mode try character before the cursor
if c_col > 1 && (mode() == 'i' || mode() == 'R')
let before = 1
- let c = getline(c_lnum)[c_col - 2]
+ let c = text[c_col - 2]
let i = index(plist, c)
endif
if i < 0
@@ -87,7 +88,7 @@ function! s:Highlight_Matching_Pair()
" Find the match. When it was just before the cursor move it there for a
" moment.
if before > 0
- let save_cursor = winsaveview()
+ let save_cursor = getcurpos()
call cursor(c_lnum, c_col - before)
endif
@@ -147,7 +148,7 @@ function! s:Highlight_Matching_Pair()
endtry
if before > 0
- call winrestview(save_cursor)
+ call setpos('.', save_cursor)
endif
" If a match is found setup match highlighting.
diff --git a/runtime/syntax/r.vim b/runtime/syntax/r.vim
index 5e76e7af7..85a6eaa2a 100644
--- a/runtime/syntax/r.vim
+++ b/runtime/syntax/r.vim
@@ -3,7 +3,7 @@
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
" Tom Payne <tom@tompayne.org>
-" Last Change: Sun May 19, 2013 05:59PM
+" Last Change: Wed Jul 09, 2014 10:29PM
" Filenames: *.R *.r *.Rhistory *.Rt
"
" NOTE: The highlighting of R functions is defined in the
@@ -30,14 +30,16 @@ endif
syn case match
" Comment
-syn match rComment contains=@Spell "#.*"
+syn match rCommentTodo contained "\(BUG\|FIXME\|NOTE\|TODO\):"
+syn match rComment contains=@Spell,rCommentTodo "#.*"
" Roxygen
syn match rOKeyword contained "@\(param\|return\|name\|rdname\|examples\|include\|docType\)"
syn match rOKeyword contained "@\(S3method\|TODO\|aliases\|alias\|assignee\|author\|callGraphDepth\|callGraph\)"
syn match rOKeyword contained "@\(callGraphPrimitives\|concept\|exportClass\|exportMethod\|exportPattern\|export\|formals\)"
syn match rOKeyword contained "@\(format\|importClassesFrom\|importFrom\|importMethodsFrom\|import\|keywords\)"
-syn match rOKeyword contained "@\(method\|nord\|note\|references\|seealso\|setClass\|slot\|source\|title\|usage\)"
+syn match rOKeyword contained "@\(method\|noRd\|note\|references\|seealso\|setClass\|slot\|source\|title\|usage\)"
+syn match rOKeyword contained "@\(family\|template\|templateVar\|description\|details\|inheritsParams\)"
syn match rOComment contains=@Spell,rOKeyword "#'.*"
@@ -119,7 +121,7 @@ if &filetype != "rmd" && &filetype != "rrst"
else
syn match rOperator "[|!<>^~`/:]"
endif
-syn match rOperator "%\{2}\|%\S*%"
+syn match rOperator "%\{2}\|%\S\{-}%"
syn match rOpError '\*\{3}'
syn match rOpError '//'
syn match rOpError '&&&'
@@ -164,8 +166,8 @@ syn match rLstElmt "@[a-zA-Z0-9\\._]*" contains=rDollar
syn keyword rPreProc library require attach detach source
if &filetype == "rhelp"
- syn match rHelpIdent '\\method'
- syn match rHelpIdent '\\S4method'
+ syn match rHelpIdent '\\method'
+ syn match rHelpIdent '\\S4method'
endif
" Type
@@ -187,6 +189,7 @@ hi def link rArrow Statement
hi def link rBoolean Boolean
hi def link rBraceError Error
hi def link rComment Comment
+hi def link rCommentTodo Todo
hi def link rOComment Comment
hi def link rComplex Number
hi def link rConditional Conditional
diff --git a/runtime/syntax/rhelp.vim b/runtime/syntax/rhelp.vim
index 0c07861d9..32c91add4 100644
--- a/runtime/syntax/rhelp.vim
+++ b/runtime/syntax/rhelp.vim
@@ -2,9 +2,7 @@
" Language: R Help File
" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
" Former Maintainer: Johannes Ranke <jranke@uni-bremen.de>
-" Last Change: Fri Oct 14, 2011 09:54PM
-" Version: 0.7.4
-" SVN: $Id: rhelp.vim 90 2010-11-22 10:58:11Z ranke $
+" Last Change: Wed Jul 09, 2014 10:28PM
" 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.
@@ -23,6 +21,8 @@ elseif exists("b:current_syntax")
finish
endif
+setlocal iskeyword=@,48-57,_,.
+
syn case match
" R help identifiers {{{1
@@ -51,7 +51,12 @@ syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimi
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
-syn region rhelpRcode matchgroup=Delimiter start="\\code{" skip='\\\@<!{.\{-}\\\@<!}' transparent end="}" contains=@R,rhelpDots,rhelpString,rhelpSpecialChar,rhelpLink keepend
+
+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
@@ -127,8 +132,13 @@ syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" co
syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend extend
" Verbatim like {{{1
-syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
-syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+if v:version > 703
+ 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
+else
+ syn region rhelpVerbatim matchgroup=rhelpType start="\\samp{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+ syn region rhelpVerbatim matchgroup=rhelpType start="\\verb{" skip='\\\@<!{.\{-}\\\@<!}' end="}" contains=rhelpSpecialChar,rhelpComment
+endif
" Type Styles {{{1
syn match rhelpType "\\emph\>"
@@ -200,6 +210,8 @@ syn match rhelpBraceError /[)}]/ contained
syn match rhelpCurlyError /[)\]]/ contained
syn match rhelpParenError /[\]}]/ contained
+syntax sync match rhelpSyncRcode grouphere rhelpRcode "\\examples{"
+
" Define the default highlighting {{{1
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting yet
@@ -233,4 +245,5 @@ if version >= 508 || !exists("did_rhelp_syntax_inits")
endif
let b:current_syntax = "rhelp"
-" vim: foldmethod=marker:
+
+" vim: foldmethod=marker sw=2
diff --git a/runtime/syntax/rmd.vim b/runtime/syntax/rmd.vim
new file mode 100644
index 000000000..6f1b84745
--- /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
diff --git a/runtime/syntax/rrst.vim b/runtime/syntax/rrst.vim
new file mode 100644
index 000000000..4667b3a2c
--- /dev/null
+++ b/runtime/syntax/rrst.vim
@@ -0,0 +1,47 @@
+" reStructured Text with R statements
+" Language: reST with R code chunks
+" Maintainer: Alex Zvoleff, azvoleff@mail.sdsu.edu
+" Last Change: Wed Jul 09, 2014 10:29PM
+"
+" CONFIGURATION:
+" To highlight chunk headers as R code, put in your vimrc:
+" let rrst_syn_hl_chunk = 1
+
+" for portability
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+" load all of the rst info
+runtime syntax/rst.vim
+unlet b:current_syntax
+
+" load all of the r syntax highlighting rules into @R
+syntax include @R syntax/r.vim
+
+setlocal iskeyword=@,48-57,_,.
+
+" highlight R chunks
+if exists("g:rrst_syn_hl_chunk")
+ " highlight R code inside chunk header
+ syntax match rrstChunkDelim "^\.\. {r" contained
+ syntax match rrstChunkDelim "}$" contained
+else
+ syntax match rrstChunkDelim "^\.\. {r .*}$" contained
+endif
+syntax match rrstChunkDelim "^\.\. \.\.$" contained
+syntax region rrstChunk start="^\.\. {r.*}$" end="^\.\. \.\.$" contains=@R,rrstChunkDelim keepend transparent fold
+
+" also highlight in-line R code
+syntax match rrstInlineDelim "`" contained
+syntax match rrstInlineDelim ":r:" contained
+syntax region rrstInline start=":r: *`" skip=/\\\\\|\\`/ end="`" contains=@R,rrstInlineDelim keepend
+
+hi def link rrstChunkDelim Special
+hi def link rrstInlineDelim Special
+
+let b:current_syntax = "rrst"
+
+" vim: ts=8 sw=2