Linux jobworks 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:53:05 UTC 2026 x86_64
Apache/2.4.58 (Ubuntu)
Server IP : 10.0.1.5 & Your IP : 216.73.217.52
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
vim /
vim91 /
indent /
Delete
Unzip
Name
Size
Permission
Date
Action
aap.vim
331
B
-rw-r--r--
2026-07-13 17:17
ada.vim
11.06
KB
-rw-r--r--
2026-07-13 17:17
ant.vim
290
B
-rw-r--r--
2026-07-13 17:17
automake.vim
243
B
-rw-r--r--
2026-07-13 17:17
awk.vim
7.68
KB
-rw-r--r--
2026-07-13 17:17
bash.vim
390
B
-rw-r--r--
2026-07-13 17:17
basic.vim
250
B
-rw-r--r--
2026-07-13 17:17
bib.vim
346
B
-rw-r--r--
2026-07-13 17:17
bitbake.vim
583
B
-rw-r--r--
2026-07-13 17:17
bst.vim
1.86
KB
-rw-r--r--
2026-07-13 17:17
bzl.vim
2.86
KB
-rw-r--r--
2026-07-13 17:17
c.vim
391
B
-rw-r--r--
2026-07-13 17:17
cdl.vim
4.26
KB
-rw-r--r--
2026-07-13 17:17
ch.vim
556
B
-rw-r--r--
2026-07-13 17:17
chaiscript.vim
1.18
KB
-rw-r--r--
2026-07-13 17:17
changelog.vim
264
B
-rw-r--r--
2026-07-13 17:17
chatito.vim
731
B
-rw-r--r--
2026-07-13 17:17
clojure.vim
11.29
KB
-rw-r--r--
2026-07-13 17:17
cmake.vim
2.98
KB
-rw-r--r--
2026-07-13 17:17
cobol.vim
8.63
KB
-rw-r--r--
2026-07-13 17:17
config.vim
2.17
KB
-rw-r--r--
2026-07-13 17:17
context.vim
1.67
KB
-rw-r--r--
2026-07-13 17:17
cpp.vim
395
B
-rw-r--r--
2026-07-13 17:17
cs.vim
1.88
KB
-rw-r--r--
2026-07-13 17:17
css.vim
1.77
KB
-rw-r--r--
2026-07-13 17:17
cucumber.vim
2.74
KB
-rw-r--r--
2026-07-13 17:17
cuda.vim
371
B
-rw-r--r--
2026-07-13 17:17
d.vim
605
B
-rw-r--r--
2026-07-13 17:17
dictconf.vim
411
B
-rw-r--r--
2026-07-13 17:17
dictdconf.vim
414
B
-rw-r--r--
2026-07-13 17:17
docbk.vim
336
B
-rw-r--r--
2026-07-13 17:17
dosbatch.vim
1.35
KB
-rw-r--r--
2026-07-13 17:17
dtd.vim
11.79
KB
-rw-r--r--
2026-07-13 17:17
dtrace.vim
451
B
-rw-r--r--
2026-07-13 17:17
dts.vim
1.69
KB
-rw-r--r--
2026-07-13 17:17
dune.vim
430
B
-rw-r--r--
2026-07-13 17:17
dylan.vim
2.75
KB
-rw-r--r--
2026-07-13 17:17
eiffel.vim
3.24
KB
-rw-r--r--
2026-07-13 17:17
elm.vim
3.2
KB
-rw-r--r--
2026-07-13 17:17
erlang.vim
50.74
KB
-rw-r--r--
2026-07-13 17:17
eruby.vim
2.95
KB
-rw-r--r--
2026-07-13 17:17
eterm.vim
743
B
-rw-r--r--
2026-07-13 17:17
expect.vim
207
B
-rw-r--r--
2026-07-13 17:17
falcon.vim
13.84
KB
-rw-r--r--
2026-07-13 17:17
fennel.vim
273
B
-rw-r--r--
2026-07-13 17:17
fish.vim
2.66
KB
-rw-r--r--
2026-07-13 17:17
fortran.vim
7.72
KB
-rw-r--r--
2026-07-13 17:17
framescript.vim
891
B
-rw-r--r--
2026-07-13 17:17
freebasic.vim
237
B
-rw-r--r--
2026-07-13 17:17
gdscript.vim
4.26
KB
-rw-r--r--
2026-07-13 17:17
gitconfig.vim
841
B
-rw-r--r--
2026-07-13 17:17
gitolite.vim
1.29
KB
-rw-r--r--
2026-07-13 17:17
go.vim
1.73
KB
-rw-r--r--
2026-07-13 17:17
gyp.vim
169
B
-rw-r--r--
2026-07-13 17:17
haml.vim
2.19
KB
-rw-r--r--
2026-07-13 17:17
hamster.vim
1.65
KB
-rw-r--r--
2026-07-13 17:17
hare.vim
4.38
KB
-rw-r--r--
2026-07-13 17:17
hog.vim
1.85
KB
-rw-r--r--
2026-07-13 17:17
html.vim
33.12
KB
-rw-r--r--
2026-07-13 17:17
htmldjango.vim
273
B
-rw-r--r--
2026-07-13 17:17
idlang.vim
1.68
KB
-rw-r--r--
2026-07-13 17:17
ishd.vim
1.83
KB
-rw-r--r--
2026-07-13 17:17
j.vim
1.77
KB
-rw-r--r--
2026-07-13 17:17
java.vim
4.19
KB
-rw-r--r--
2026-07-13 17:17
javascript.vim
15.13
KB
-rw-r--r--
2026-07-13 17:17
javascriptreact.vim
109
B
-rw-r--r--
2026-07-13 17:17
json.vim
4.54
KB
-rw-r--r--
2026-07-13 17:17
jsonc.vim
4.74
KB
-rw-r--r--
2026-07-13 17:17
jsp.vim
462
B
-rw-r--r--
2026-07-13 17:17
julia.vim
15.29
KB
-rw-r--r--
2026-07-13 17:17
kotlin.vim
1.53
KB
-rw-r--r--
2026-07-13 17:17
krl.vim
4.25
KB
-rw-r--r--
2026-07-13 17:17
ld.vim
1.82
KB
-rw-r--r--
2026-07-13 17:17
less.vim
243
B
-rw-r--r--
2026-07-13 17:17
lifelines.vim
638
B
-rw-r--r--
2026-07-13 17:17
liquid.vim
2.03
KB
-rw-r--r--
2026-07-13 17:17
lisp.vim
349
B
-rw-r--r--
2026-07-13 17:17
livebook.vim
206
B
-rw-r--r--
2026-07-13 17:17
logtalk.vim
1.91
KB
-rw-r--r--
2026-07-13 17:17
lua.vim
2.22
KB
-rw-r--r--
2026-07-13 17:17
luau.vim
252
B
-rw-r--r--
2026-07-13 17:17
mail.vim
385
B
-rw-r--r--
2026-07-13 17:17
make.vim
3.48
KB
-rw-r--r--
2026-07-13 17:17
matlab.vim
4.81
KB
-rw-r--r--
2026-07-13 17:17
meson.vim
5.19
KB
-rw-r--r--
2026-07-13 17:17
mf.vim
164
B
-rw-r--r--
2026-07-13 17:17
mma.vim
2.31
KB
-rw-r--r--
2026-07-13 17:17
mp.vim
9.72
KB
-rw-r--r--
2026-07-13 17:17
nginx.vim
1.7
KB
-rw-r--r--
2026-07-13 17:17
nsis.vim
3.23
KB
-rw-r--r--
2026-07-13 17:17
objc.vim
1.65
KB
-rw-r--r--
2026-07-13 17:17
obse.vim
1.4
KB
-rw-r--r--
2026-07-13 17:17
ocaml.vim
9.09
KB
-rw-r--r--
2026-07-13 17:17
occam.vim
4.63
KB
-rw-r--r--
2026-07-13 17:17
pascal.vim
5.66
KB
-rw-r--r--
2026-07-13 17:17
perl.vim
5.91
KB
-rw-r--r--
2026-07-13 17:17
php.vim
25.76
KB
-rw-r--r--
2026-07-13 17:17
postscr.vim
1.64
KB
-rw-r--r--
2026-07-13 17:17
pov.vim
2.71
KB
-rw-r--r--
2026-07-13 17:17
prolog.vim
1.91
KB
-rw-r--r--
2026-07-13 17:17
ps1.vim
410
B
-rw-r--r--
2026-07-13 17:17
pyrex.vim
326
B
-rw-r--r--
2026-07-13 17:17
python.vim
886
B
-rw-r--r--
2026-07-13 17:17
qb64.vim
232
B
-rw-r--r--
2026-07-13 17:17
qml.vim
1.27
KB
-rw-r--r--
2026-07-13 17:17
quarto.vim
23
B
-rw-r--r--
2026-07-13 17:17
r.vim
13.96
KB
-rw-r--r--
2026-07-13 17:17
racket.vim
2.87
KB
-rw-r--r--
2026-07-13 17:17
raku.vim
3.45
KB
-rw-r--r--
2026-07-13 17:17
raml.vim
285
B
-rw-r--r--
2026-07-13 17:17
rapid.vim
7.97
KB
-rw-r--r--
2026-07-13 17:17
readline.vim
786
B
-rw-r--r--
2026-07-13 17:17
rhelp.vim
2.83
KB
-rw-r--r--
2026-07-13 17:17
rmd.vim
2.25
KB
-rw-r--r--
2026-07-13 17:17
rnoweb.vim
1.1
KB
-rw-r--r--
2026-07-13 17:17
rpl.vim
1.82
KB
-rw-r--r--
2026-07-13 17:17
rrst.vim
1.19
KB
-rw-r--r--
2026-07-13 17:17
rst.vim
1.9
KB
-rw-r--r--
2026-07-13 17:17
ruby.vim
30.33
KB
-rw-r--r--
2026-07-13 17:17
rust.vim
10.26
KB
-rw-r--r--
2026-07-13 17:17
sas.vim
5.18
KB
-rw-r--r--
2026-07-13 17:17
sass.vim
926
B
-rw-r--r--
2026-07-13 17:17
scala.vim
19.3
KB
-rw-r--r--
2026-07-13 17:17
scheme.vim
372
B
-rw-r--r--
2026-07-13 17:17
scss.vim
191
B
-rw-r--r--
2026-07-13 17:17
sdl.vim
2.76
KB
-rw-r--r--
2026-07-13 17:17
sh.vim
9.04
KB
-rw-r--r--
2026-07-13 17:17
sml.vim
6.42
KB
-rw-r--r--
2026-07-13 17:17
solidity.vim
12.61
KB
-rw-r--r--
2026-07-13 17:17
sql.vim
1.18
KB
-rw-r--r--
2026-07-13 17:17
sqlanywhere.vim
12.96
KB
-rw-r--r--
2026-07-13 17:17
sshconfig.vim
796
B
-rw-r--r--
2026-07-13 17:17
systemverilog.vim
10.55
KB
-rw-r--r--
2026-07-13 17:17
tcl.vim
2.48
KB
-rw-r--r--
2026-07-13 17:17
tcsh.vim
1.35
KB
-rw-r--r--
2026-07-13 17:17
teraterm.vim
1.38
KB
-rw-r--r--
2026-07-13 17:17
tex.vim
13.52
KB
-rw-r--r--
2026-07-13 17:17
tf.vim
1.57
KB
-rw-r--r--
2026-07-13 17:17
tilde.vim
1.11
KB
-rw-r--r--
2026-07-13 17:17
treetop.vim
785
B
-rw-r--r--
2026-07-13 17:17
typescript.vim
14.28
KB
-rw-r--r--
2026-07-13 17:17
typescriptreact.vim
109
B
-rw-r--r--
2026-07-13 17:17
vb.vim
4.69
KB
-rw-r--r--
2026-07-13 17:17
verilog.vim
8.08
KB
-rw-r--r--
2026-07-13 17:17
vhdl.vim
14.43
KB
-rw-r--r--
2026-07-13 17:17
vim.vim
675
B
-rw-r--r--
2026-07-13 17:17
vroom.vim
379
B
-rw-r--r--
2026-07-13 17:17
vue.vim
385
B
-rw-r--r--
2026-07-13 17:17
wat.vim
458
B
-rw-r--r--
2026-07-13 17:17
xf86conf.vim
786
B
-rw-r--r--
2026-07-13 17:17
xhtml.vim
325
B
-rw-r--r--
2026-07-13 17:17
xinetd.vim
1.28
KB
-rw-r--r--
2026-07-13 17:17
xml.vim
7.6
KB
-rw-r--r--
2026-07-13 17:17
xsd.vim
253
B
-rw-r--r--
2026-07-13 17:17
xslt.vim
297
B
-rw-r--r--
2026-07-13 17:17
yacc.vim
858
B
-rw-r--r--
2026-07-13 17:17
yaml.vim
5.45
KB
-rw-r--r--
2026-07-13 17:17
zig.vim
2.09
KB
-rw-r--r--
2026-07-13 17:17
zimbu.vim
3.92
KB
-rw-r--r--
2026-07-13 17:17
zsh.vim
411
B
-rw-r--r--
2026-07-13 17:17
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: Sun Oct 08, 2023 10:45AM " 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() setlocal autoindent 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 elseif 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 elseif 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 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 elseif a:line[i] == '(' let nop += 1 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 elseif line[idx] == a:c let blc += 1 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 =~ '.*[,&|\-\*+<>]$' if line =~ '.*[\-\*+>]$' let is_op = v:true else let is_op = v:false endif 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 elseif line[ind] == '(' let pb += 1 if is_op && pb == 0 return indent(lnum) 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 elseif substitute(oline, '#.*', '', '') =~ g:r_indent_op_pattern && s:Get_paren_balance(line, "(", ")") == 0 return indent(lnum) - shiftwidth() 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() elseif line =~ '\<if\s*()' return indent(lnum) else return indent(lnum) - shiftwidth() 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