Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.217.117
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
vim /
vim90 /
indent /
Delete
Unzip
Name
Size
Permission
Date
Action
aap.vim
265
B
-rw-r--r--
2025-02-16 05:23
ada.vim
11.06
KB
-rw-r--r--
2025-02-16 05:23
ant.vim
290
B
-rw-r--r--
2025-02-16 05:23
automake.vim
243
B
-rw-r--r--
2025-02-16 05:23
awk.vim
7.68
KB
-rw-r--r--
2025-02-16 05:23
bash.vim
350
B
-rw-r--r--
2025-02-16 05:23
basic.vim
250
B
-rw-r--r--
2025-02-16 05:23
bib.vim
346
B
-rw-r--r--
2025-02-16 05:23
bitbake.vim
583
B
-rw-r--r--
2025-02-16 05:23
bst.vim
1.86
KB
-rw-r--r--
2025-02-16 05:23
bzl.vim
2.86
KB
-rw-r--r--
2025-02-16 05:23
c.vim
325
B
-rw-r--r--
2025-02-16 05:23
cdl.vim
4.26
KB
-rw-r--r--
2025-02-16 05:23
ch.vim
470
B
-rw-r--r--
2025-02-16 05:23
chaiscript.vim
1.18
KB
-rw-r--r--
2025-02-16 05:23
changelog.vim
264
B
-rw-r--r--
2025-02-16 05:23
chatito.vim
731
B
-rw-r--r--
2025-02-16 05:23
clojure.vim
11.29
KB
-rw-r--r--
2025-02-16 05:23
cmake.vim
2.66
KB
-rw-r--r--
2025-02-16 05:23
cobol.vim
8.63
KB
-rw-r--r--
2025-02-16 05:23
config.vim
2.17
KB
-rw-r--r--
2025-02-16 05:23
context.vim
1.67
KB
-rw-r--r--
2025-02-16 05:23
cpp.vim
329
B
-rw-r--r--
2025-02-16 05:23
cs.vim
1.88
KB
-rw-r--r--
2025-02-16 05:23
css.vim
1.77
KB
-rw-r--r--
2025-02-16 05:23
cucumber.vim
2.62
KB
-rw-r--r--
2025-02-16 05:23
cuda.vim
305
B
-rw-r--r--
2025-02-16 05:23
d.vim
605
B
-rw-r--r--
2025-02-16 05:23
dictconf.vim
411
B
-rw-r--r--
2025-02-16 05:23
dictdconf.vim
414
B
-rw-r--r--
2025-02-16 05:23
docbk.vim
336
B
-rw-r--r--
2025-02-16 05:23
dosbatch.vim
1.35
KB
-rw-r--r--
2025-02-16 05:23
dtd.vim
11.79
KB
-rw-r--r--
2025-02-16 05:23
dtrace.vim
451
B
-rw-r--r--
2025-02-16 05:23
dune.vim
332
B
-rw-r--r--
2025-02-16 05:23
dylan.vim
2.75
KB
-rw-r--r--
2025-02-16 05:23
eiffel.vim
3.24
KB
-rw-r--r--
2025-02-16 05:23
elm.vim
3.2
KB
-rw-r--r--
2025-02-16 05:23
erlang.vim
50.74
KB
-rw-r--r--
2025-02-16 05:23
eruby.vim
2.95
KB
-rw-r--r--
2025-02-16 05:23
eterm.vim
743
B
-rw-r--r--
2025-02-16 05:23
expect.vim
207
B
-rw-r--r--
2025-02-16 05:23
falcon.vim
13.84
KB
-rw-r--r--
2025-02-16 05:23
fennel.vim
273
B
-rw-r--r--
2025-02-16 05:23
fish.vim
2.54
KB
-rw-r--r--
2025-02-16 05:23
fortran.vim
7.54
KB
-rw-r--r--
2025-02-16 05:23
framescript.vim
891
B
-rw-r--r--
2025-02-16 05:23
freebasic.vim
237
B
-rw-r--r--
2025-02-16 05:23
gdscript.vim
4.26
KB
-rw-r--r--
2025-02-16 05:23
gitconfig.vim
841
B
-rw-r--r--
2025-02-16 05:23
gitolite.vim
1.29
KB
-rw-r--r--
2025-02-16 05:23
go.vim
1.63
KB
-rw-r--r--
2025-02-16 05:23
gyp.vim
169
B
-rw-r--r--
2025-02-16 05:23
haml.vim
2.19
KB
-rw-r--r--
2025-02-16 05:23
hamster.vim
1.65
KB
-rw-r--r--
2025-02-16 05:23
hare.vim
4.27
KB
-rw-r--r--
2025-02-16 05:23
hog.vim
1.85
KB
-rw-r--r--
2025-02-16 05:23
html.vim
33.09
KB
-rw-r--r--
2025-02-16 05:23
htmldjango.vim
273
B
-rw-r--r--
2025-02-16 05:23
idlang.vim
1.68
KB
-rw-r--r--
2025-02-16 05:23
ishd.vim
1.83
KB
-rw-r--r--
2025-02-16 05:23
j.vim
1.77
KB
-rw-r--r--
2025-02-16 05:23
java.vim
4.19
KB
-rw-r--r--
2025-02-16 05:23
javascript.vim
15.13
KB
-rw-r--r--
2025-02-16 05:23
javascriptreact.vim
109
B
-rw-r--r--
2025-02-16 05:23
json.vim
4.54
KB
-rw-r--r--
2025-02-16 05:23
jsonc.vim
4.62
KB
-rw-r--r--
2025-02-16 05:23
jsp.vim
462
B
-rw-r--r--
2025-02-16 05:23
julia.vim
15.2
KB
-rw-r--r--
2025-02-16 05:23
krl.vim
4.26
KB
-rw-r--r--
2025-02-16 05:23
ld.vim
1.82
KB
-rw-r--r--
2025-02-16 05:23
less.vim
243
B
-rw-r--r--
2025-02-16 05:23
lifelines.vim
638
B
-rw-r--r--
2025-02-16 05:23
liquid.vim
2.03
KB
-rw-r--r--
2025-02-16 05:23
lisp.vim
349
B
-rw-r--r--
2025-02-16 05:23
logtalk.vim
1.82
KB
-rw-r--r--
2025-02-16 05:23
lua.vim
2
KB
-rw-r--r--
2025-02-16 05:23
mail.vim
355
B
-rw-r--r--
2025-02-16 05:23
make.vim
3.48
KB
-rw-r--r--
2025-02-16 05:23
matlab.vim
4.81
KB
-rw-r--r--
2025-02-16 05:23
meson.vim
5.19
KB
-rw-r--r--
2025-02-16 05:23
mf.vim
164
B
-rw-r--r--
2025-02-16 05:23
mma.vim
2.31
KB
-rw-r--r--
2025-02-16 05:23
mp.vim
9.72
KB
-rw-r--r--
2025-02-16 05:23
nginx.vim
1.7
KB
-rw-r--r--
2025-02-16 05:23
nsis.vim
3.23
KB
-rw-r--r--
2025-02-16 05:23
objc.vim
1.65
KB
-rw-r--r--
2025-02-16 05:23
obse.vim
1.4
KB
-rw-r--r--
2025-02-16 05:23
ocaml.vim
8.98
KB
-rw-r--r--
2025-02-16 05:23
occam.vim
4.63
KB
-rw-r--r--
2025-02-16 05:23
pascal.vim
5.66
KB
-rw-r--r--
2025-02-16 05:23
perl.vim
5.91
KB
-rw-r--r--
2025-02-16 05:23
php.vim
25.29
KB
-rw-r--r--
2025-02-16 05:23
postscr.vim
1.64
KB
-rw-r--r--
2025-02-16 05:23
pov.vim
2.71
KB
-rw-r--r--
2025-02-16 05:23
prolog.vim
1.91
KB
-rw-r--r--
2025-02-16 05:23
ps1.vim
410
B
-rw-r--r--
2025-02-16 05:23
pyrex.vim
326
B
-rw-r--r--
2025-02-16 05:23
python.vim
823
B
-rw-r--r--
2025-02-16 05:23
qb64.vim
232
B
-rw-r--r--
2025-02-16 05:23
quarto.vim
23
B
-rw-r--r--
2025-02-16 05:23
r.vim
13.98
KB
-rw-r--r--
2025-02-16 05:23
racket.vim
2.51
KB
-rw-r--r--
2025-02-16 05:23
raku.vim
3.34
KB
-rw-r--r--
2025-02-16 05:23
raml.vim
285
B
-rw-r--r--
2025-02-16 05:23
readline.vim
786
B
-rw-r--r--
2025-02-16 05:23
rhelp.vim
2.82
KB
-rw-r--r--
2025-02-16 05:23
rmd.vim
2.25
KB
-rw-r--r--
2025-02-16 05:23
rnoweb.vim
1.09
KB
-rw-r--r--
2025-02-16 05:23
rpl.vim
1.82
KB
-rw-r--r--
2025-02-16 05:23
rrst.vim
1.19
KB
-rw-r--r--
2025-02-16 05:23
rst.vim
1.78
KB
-rw-r--r--
2025-02-16 05:23
ruby.vim
30.32
KB
-rw-r--r--
2025-02-16 05:23
rust.vim
6.35
KB
-rw-r--r--
2025-02-16 05:23
sas.vim
5.18
KB
-rw-r--r--
2025-02-16 05:23
sass.vim
994
B
-rw-r--r--
2025-02-16 05:23
scala.vim
19.2
KB
-rw-r--r--
2025-02-16 05:23
scheme.vim
372
B
-rw-r--r--
2025-02-16 05:23
scss.vim
191
B
-rw-r--r--
2025-02-16 05:23
sdl.vim
2.76
KB
-rw-r--r--
2025-02-16 05:23
sh.vim
9.04
KB
-rw-r--r--
2025-02-16 05:23
sml.vim
6.42
KB
-rw-r--r--
2025-02-16 05:23
solidity.vim
12.5
KB
-rw-r--r--
2025-02-16 05:23
sql.vim
1.18
KB
-rw-r--r--
2025-02-16 05:23
sqlanywhere.vim
12.96
KB
-rw-r--r--
2025-02-16 05:23
sshconfig.vim
796
B
-rw-r--r--
2025-02-16 05:23
systemverilog.vim
10.55
KB
-rw-r--r--
2025-02-16 05:23
tcl.vim
2.48
KB
-rw-r--r--
2025-02-16 05:23
tcsh.vim
1.35
KB
-rw-r--r--
2025-02-16 05:23
teraterm.vim
1.38
KB
-rw-r--r--
2025-02-16 05:23
tex.vim
13.37
KB
-rw-r--r--
2025-02-16 05:23
tf.vim
1.57
KB
-rw-r--r--
2025-02-16 05:23
tilde.vim
1.11
KB
-rw-r--r--
2025-02-16 05:23
treetop.vim
785
B
-rw-r--r--
2025-02-16 05:23
typescript.vim
14.14
KB
-rw-r--r--
2025-02-16 05:23
vb.vim
4.69
KB
-rw-r--r--
2025-02-16 05:23
verilog.vim
7.98
KB
-rw-r--r--
2025-02-16 05:23
vhdl.vim
14.32
KB
-rw-r--r--
2025-02-16 05:23
vim.vim
609
B
-rw-r--r--
2025-02-16 05:23
vroom.vim
379
B
-rw-r--r--
2025-02-16 05:23
vue.vim
385
B
-rw-r--r--
2025-02-16 05:23
wast.vim
458
B
-rw-r--r--
2025-02-16 05:23
xf86conf.vim
786
B
-rw-r--r--
2025-02-16 05:23
xhtml.vim
269
B
-rw-r--r--
2025-02-16 05:23
xinetd.vim
1.28
KB
-rw-r--r--
2025-02-16 05:23
xml.vim
7.6
KB
-rw-r--r--
2025-02-16 05:23
xsd.vim
253
B
-rw-r--r--
2025-02-16 05:23
xslt.vim
297
B
-rw-r--r--
2025-02-16 05:23
yacc.vim
858
B
-rw-r--r--
2025-02-16 05:23
yaml.vim
5.45
KB
-rw-r--r--
2025-02-16 05:23
zig.vim
2.09
KB
-rw-r--r--
2025-02-16 05:23
zimbu.vim
3.85
KB
-rw-r--r--
2025-02-16 05:23
zsh.vim
411
B
-rw-r--r--
2025-02-16 05:23
Save
Rename
" Vim indent file " Language: R " Author: Jakson Alves de Aquino <jalvesaq@gmail.com> " Homepage: https://github.com/jalvesaq/R-Vim-runtime " Last Change: Wed Oct 26, 2022 12:04PM " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal indentkeys=0{,0},:,!^F,o,O,e setlocal indentexpr=GetRIndent() let b:undo_indent = "setl inde< indk<" " Only define the function once. if exists("*GetRIndent") finish endif let s:cpo_save = &cpo set cpo&vim " Options to make the indentation more similar to Emacs/ESS: let g:r_indent_align_args = get(g:, 'r_indent_align_args', 1) let g:r_indent_ess_comments = get(g:, 'r_indent_ess_comments', 0) let g:r_indent_comment_column = get(g:, 'r_indent_comment_column', 40) let g:r_indent_ess_compatible = get(g:, 'r_indent_ess_compatible', 0) let g:r_indent_op_pattern = get(g:, 'r_indent_op_pattern', \ '\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\||>\)\s*$') function s:RDelete_quotes(line) let i = 0 let j = 0 let line1 = "" let llen = strlen(a:line) while i < llen if a:line[i] == '"' let i += 1 let line1 = line1 . 's' while !(a:line[i] == '"' && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen let i += 1 endwhile if a:line[i] == '"' let i += 1 endif else if a:line[i] == "'" let i += 1 let line1 = line1 . 's' while !(a:line[i] == "'" && ((i > 1 && a:line[i-1] == '\' && a:line[i-2] == '\') || a:line[i-1] != '\')) && i < llen let i += 1 endwhile if a:line[i] == "'" let i += 1 endif else if a:line[i] == "`" let i += 1 let line1 = line1 . 's' while a:line[i] != "`" && i < llen let i += 1 endwhile if a:line[i] == "`" let i += 1 endif endif endif endif if i == llen break endif let line1 = line1 . a:line[i] let j += 1 let i += 1 endwhile return line1 endfunction " Convert foo(bar()) int foo() function s:RDelete_parens(line) if s:Get_paren_balance(a:line, "(", ")") != 0 return a:line endif let i = 0 let j = 0 let line1 = "" let llen = strlen(a:line) while i < llen let line1 = line1 . a:line[i] if a:line[i] == '(' let nop = 1 while nop > 0 && i < llen let i += 1 if a:line[i] == ')' let nop -= 1 else if a:line[i] == '(' let nop += 1 endif endif endwhile let line1 = line1 . a:line[i] endif let i += 1 endwhile return line1 endfunction function! s:Get_paren_balance(line, o, c) let line2 = substitute(a:line, a:o, "", "g") let openp = strlen(a:line) - strlen(line2) let line3 = substitute(line2, a:c, "", "g") let closep = strlen(line2) - strlen(line3) return openp - closep endfunction function! s:Get_matching_brace(linenr, o, c, delbrace) let line = SanitizeRLine(getline(a:linenr)) if a:delbrace == 1 let line = substitute(line, '{$', "", "") endif let pb = s:Get_paren_balance(line, a:o, a:c) let i = a:linenr while pb != 0 && i > 1 let i -= 1 let pb += s:Get_paren_balance(SanitizeRLine(getline(i)), a:o, a:c) endwhile return i endfunction " This function is buggy because there 'if's without 'else' " It must be rewritten relying more on indentation function! s:Get_matching_if(linenr, delif) let line = SanitizeRLine(getline(a:linenr)) if a:delif let line = substitute(line, "if", "", "g") endif let elsenr = 0 let i = a:linenr let ifhere = 0 while i > 0 let line2 = substitute(line, '\<else\>', "xxx", "g") let elsenr += strlen(line) - strlen(line2) if line =~ '.*\s*if\s*()' || line =~ '.*\s*if\s*()' let elsenr -= 1 if elsenr == 0 let ifhere = i break endif endif let i -= 1 let line = SanitizeRLine(getline(i)) endwhile if ifhere return ifhere else return a:linenr endif endfunction function! s:Get_last_paren_idx(line, o, c, pb) let blc = a:pb let line = substitute(a:line, '\t', s:curtabstop, "g") let theidx = -1 let llen = strlen(line) let idx = 0 while idx < llen if line[idx] == a:o let blc -= 1 if blc == 0 let theidx = idx endif else if line[idx] == a:c let blc += 1 endif endif let idx += 1 endwhile return theidx + 1 endfunction " Get previous relevant line. Search back until getting a line that isn't " comment or blank function s:Get_prev_line(lineno) let lnum = a:lineno - 1 let data = getline( lnum ) while lnum > 0 && (data =~ '^\s*#' || data =~ '^\s*$') let lnum = lnum - 1 let data = getline( lnum ) endwhile return lnum endfunction " This function is also used by r-plugin/common_global.vim " Delete from '#' to the end of the line, unless the '#' is inside a string. function SanitizeRLine(line) let newline = s:RDelete_quotes(a:line) let newline = s:RDelete_parens(newline) let newline = substitute(newline, '#.*', "", "") let newline = substitute(newline, '\s*$', "", "") if &filetype == "rhelp" && newline =~ '^\\method{.*}{.*}(.*' let newline = substitute(newline, '^\\method{\(.*\)}{.*}', '\1', "") endif return newline endfunction function GetRIndent() let clnum = line(".") " current line let cline = getline(clnum) if cline =~ '^\s*#' if g:r_indent_ess_comments == 1 if cline =~ '^\s*###' return 0 endif if cline !~ '^\s*##' return g:r_indent_comment_column endif endif endif let cline = SanitizeRLine(cline) if cline =~ '^\s*}' let indline = s:Get_matching_brace(clnum, '{', '}', 1) if indline > 0 && indline != clnum let iline = SanitizeRLine(getline(indline)) if s:Get_paren_balance(iline, "(", ")") == 0 || iline =~ '(\s*{$' return indent(indline) else let indline = s:Get_matching_brace(indline, '(', ')', 1) return indent(indline) endif endif endif if cline =~ '^\s*)$' let indline = s:Get_matching_brace(clnum, '(', ')', 1) return indent(indline) endif " Find the first non blank line above the current line let lnum = s:Get_prev_line(clnum) " Hit the start of the file, use zero indent. if lnum == 0 return 0 endif let line = SanitizeRLine(getline(lnum)) if &filetype == "rhelp" if cline =~ '^\\dontshow{' || cline =~ '^\\dontrun{' || cline =~ '^\\donttest{' || cline =~ '^\\testonly{' return 0 endif if line =~ '^\\examples{' || line =~ '^\\usage{' || line =~ '^\\dontshow{' || line =~ '^\\dontrun{' || line =~ '^\\donttest{' || line =~ '^\\testonly{' return 0 endif endif if &filetype == "rnoweb" && line =~ "^<<.*>>=" return 0 endif if cline =~ '^\s*{' && s:Get_paren_balance(cline, '{', '}') > 0 if g:r_indent_ess_compatible && line =~ ')$' let nlnum = lnum let nline = line while s:Get_paren_balance(nline, '(', ')') < 0 let nlnum = s:Get_prev_line(nlnum) let nline = SanitizeRLine(getline(nlnum)) . nline endwhile if nline =~ '^\s*function\s*(' && indent(nlnum) == shiftwidth() return 0 endif endif if s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) endif endif " line is an incomplete command: if line =~ '\<\(if\|while\|for\|function\)\s*()$' || line =~ '\<else$' || line =~ '<-$' || line =~ '->$' return indent(lnum) + shiftwidth() endif " Deal with () and [] let pb = s:Get_paren_balance(line, '(', ')') if line =~ '^\s*{$' || line =~ '(\s*{' || (pb == 0 && (line =~ '{$' || line =~ '(\s*{$')) return indent(lnum) + shiftwidth() endif let s:curtabstop = repeat(' ', &tabstop) if g:r_indent_align_args == 1 if pb > 0 && line =~ '{$' return s:Get_last_paren_idx(line, '(', ')', pb) + shiftwidth() endif let bb = s:Get_paren_balance(line, '[', ']') if pb > 0 if &filetype == "rhelp" let ind = s:Get_last_paren_idx(line, '(', ')', pb) else let ind = s:Get_last_paren_idx(getline(lnum), '(', ')', pb) endif return ind endif if pb < 0 && line =~ '.*[,&|\-\*+<>]$' let lnum = s:Get_prev_line(lnum) while pb < 1 && lnum > 0 let line = SanitizeRLine(getline(lnum)) let line = substitute(line, '\t', s:curtabstop, "g") let ind = strlen(line) while ind > 0 if line[ind] == ')' let pb -= 1 else if line[ind] == '(' let pb += 1 endif endif if pb == 1 return ind + 1 endif let ind -= 1 endwhile let lnum -= 1 endwhile return 0 endif if bb > 0 let ind = s:Get_last_paren_idx(getline(lnum), '[', ']', bb) return ind endif endif let post_block = 0 if line =~ '}$' && s:Get_paren_balance(line, '{', '}') < 0 let lnum = s:Get_matching_brace(lnum, '{', '}', 0) let line = SanitizeRLine(getline(lnum)) if lnum > 0 && line =~ '^\s*{' let lnum = s:Get_prev_line(lnum) let line = SanitizeRLine(getline(lnum)) endif let pb = s:Get_paren_balance(line, '(', ')') let post_block = 1 endif " Indent after operator pattern let olnum = s:Get_prev_line(lnum) let oline = getline(olnum) if olnum > 0 if substitute(line, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 if substitute(oline, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) else return indent(lnum) + shiftwidth() endif else if substitute(oline, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) - shiftwidth() endif endif elseif substitute(line, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) + shiftwidth() endif let post_fun = 0 if pb < 0 && line !~ ')\s*[,&|\-\*+<>]$' let post_fun = 1 while pb < 0 && lnum > 0 let lnum -= 1 let linepiece = SanitizeRLine(getline(lnum)) let pb += s:Get_paren_balance(linepiece, "(", ")") let line = linepiece . line endwhile if line =~ '{$' && post_block == 0 return indent(lnum) + shiftwidth() endif " Now we can do some tests again if cline =~ '^\s*{' return indent(lnum) endif if post_block == 0 let newl = SanitizeRLine(line) if newl =~ '\<\(if\|while\|for\|function\)\s*()$' || newl =~ '\<else$' || newl =~ '<-$' return indent(lnum) + shiftwidth() endif endif endif if cline =~ '^\s*else' if line =~ '<-\s*if\s*()' return indent(lnum) + shiftwidth() else if line =~ '\<if\s*()' return indent(lnum) else return indent(lnum) - shiftwidth() endif endif endif let bb = s:Get_paren_balance(line, '[', ']') if bb < 0 && line =~ '.*]' while bb < 0 && lnum > 0 let lnum -= 1 let linepiece = SanitizeRLine(getline(lnum)) let bb += s:Get_paren_balance(linepiece, "[", "]") let line = linepiece . line endwhile let line = s:RDelete_parens(line) endif let plnum = s:Get_prev_line(lnum) let ppost_else = 0 if plnum > 0 let pline = SanitizeRLine(getline(plnum)) let ppost_block = 0 if pline =~ '}$' let ppost_block = 1 let plnum = s:Get_matching_brace(plnum, '{', '}', 0) let pline = SanitizeRLine(getline(plnum)) if pline =~ '^\s*{$' && plnum > 0 let plnum = s:Get_prev_line(plnum) let pline = SanitizeRLine(getline(plnum)) endif endif if pline =~ 'else$' let ppost_else = 1 let plnum = s:Get_matching_if(plnum, 0) let pline = SanitizeRLine(getline(plnum)) endif if pline =~ '^\s*else\s*if\s*(' let pplnum = s:Get_prev_line(plnum) let ppline = SanitizeRLine(getline(pplnum)) while ppline =~ '^\s*else\s*if\s*(' || ppline =~ '^\s*if\s*()\s*\S$' let plnum = pplnum let pline = ppline let pplnum = s:Get_prev_line(plnum) let ppline = SanitizeRLine(getline(pplnum)) endwhile while ppline =~ '\<\(if\|while\|for\|function\)\s*()$' || ppline =~ '\<else$' || ppline =~ '<-$' let plnum = pplnum let pline = ppline let pplnum = s:Get_prev_line(plnum) let ppline = SanitizeRLine(getline(pplnum)) endwhile endif let ppb = s:Get_paren_balance(pline, '(', ')') if ppb < 0 && (pline =~ ')\s*{$' || pline =~ ')$') while ppb < 0 && plnum > 0 let plnum -= 1 let linepiece = SanitizeRLine(getline(plnum)) let ppb += s:Get_paren_balance(linepiece, "(", ")") let pline = linepiece . pline endwhile let pline = s:RDelete_parens(pline) endif endif let ind = indent(lnum) if g:r_indent_align_args == 0 && pb != 0 let ind += pb * shiftwidth() return ind endif if g:r_indent_align_args == 0 && bb != 0 let ind += bb * shiftwidth() return ind endif if plnum > 0 let pind = indent(plnum) else let pind = 0 endif if ind == pind || (ind == (pind + shiftwidth()) && pline =~ '{$' && ppost_else == 0) return ind endif let pline = getline(plnum) let pbb = s:Get_paren_balance(pline, '[', ']') while pind < ind && plnum > 0 && ppb == 0 && pbb == 0 let ind = pind let plnum = s:Get_prev_line(plnum) let pline = getline(plnum) let ppb = s:Get_paren_balance(pline, '(', ')') let pbb = s:Get_paren_balance(pline, '[', ']') while pline =~ '^\s*else' let plnum = s:Get_matching_if(plnum, 1) let pline = getline(plnum) let ppb = s:Get_paren_balance(pline, '(', ')') let pbb = s:Get_paren_balance(pline, '[', ']') endwhile let pind = indent(plnum) if ind == (pind + shiftwidth()) && pline =~ '{$' return ind endif endwhile return ind endfunction let &cpo = s:cpo_save unlet s:cpo_save " vim: sw=2