diff options
Diffstat (limited to 'indent/rhelp.vim')
-rw-r--r-- | indent/rhelp.vim | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/indent/rhelp.vim b/indent/rhelp.vim deleted file mode 100644 index a676a3a0..00000000 --- a/indent/rhelp.vim +++ /dev/null @@ -1,112 +0,0 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim indent file -" Language: R Documentation (Help), *.Rd -" Author: Jakson Alves de Aquino <jalvesaq@gmail.com> -" Homepage: https://github.com/jalvesaq/R-Vim-runtime -" Last Change: Tue Apr 07, 2015 04:38PM - - -" 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 noautoindent -setlocal nocindent -setlocal nosmartindent -setlocal nolisp -setlocal indentkeys=0{,0},:,!^F,o,O,e -setlocal indentexpr=GetCorrectRHelpIndent() - -" Only define the functions once. -if exists("*GetRHelpIndent") - finish -endif - -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 * shiftwidth()) - - 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 - -endif |