OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
vim
/
vim80
/
indent
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:13:33 AM
rwxr-xr-x
📄
README.txt
1.6 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
aap.vim
265 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ada.vim
10.97 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
ant.vim
290 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
automake.vim
243 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
awk.vim
7.59 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
bib.vim
346 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
bst.vim
1.89 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
bzl.vim
2.43 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
c.vim
325 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cdl.vim
4.15 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
ch.vim
470 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
chaiscript.vim
1.11 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
changelog.vim
264 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
clojure.vim
10.2 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cmake.vim
2.62 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cobol.vim
8.11 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
config.vim
2.13 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
context.vim
752 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cpp.vim
329 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
cs.vim
327 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
css.vim
1.75 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cucumber.vim
2.62 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
cuda.vim
305 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
d.vim
510 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dictconf.vim
337 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dictdconf.vim
338 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
docbk.vim
336 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dtd.vim
11.59 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
dtrace.vim
451 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
dylan.vim
2.64 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
eiffel.vim
3.24 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
erlang.vim
45.29 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
eruby.vim
2.74 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
eterm.vim
668 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
falcon.vim
13.72 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
fortran.vim
7.27 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
framescript.vim
816 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
gitconfig.vim
841 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
gitolite.vim
1.25 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
go.vim
1.63 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
haml.vim
2.16 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
hamster.vim
1.39 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
hog.vim
1.85 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
html.vim
31.94 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
htmldjango.vim
273 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
idlang.vim
1.58 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
ishd.vim
1.83 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
j.vim
1.77 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
java.vim
4.19 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
javascript.vim
15 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
json.vim
4.32 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
jsp.vim
462 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
ld.vim
1.75 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
less.vim
243 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
lifelines.vim
637 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
liquid.vim
1.85 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
lisp.vim
353 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
logtalk.vim
1.7 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
lua.vim
1.88 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
mail.vim
308 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
make.vim
3.41 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
matlab.vim
1.92 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
mf.vim
156 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
mma.vim
2.18 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
mp.vim
11.06 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
nsis.vim
3.18 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
objc.vim
1.61 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
ocaml.vim
8.94 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
occam.vim
4.53 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
pascal.vim
5.52 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
perl.vim
5.76 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
perl6.vim
3.46 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
php.vim
21.91 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
postscr.vim
1.61 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
pov.vim
2.6 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
prolog.vim
1.46 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
pyrex.vim
326 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
python.vim
5.61 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
r.vim
13.58 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
readline.vim
711 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
rhelp.vim
2.77 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rmd.vim
1.17 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rnoweb.vim
1.06 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rpl.vim
1.82 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rrst.vim
1.17 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rst.vim
1.37 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
ruby.vim
22.43 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
rust.vim
6.35 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sas.vim
5.01 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sass.vim
950 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
scala.vim
18.97 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
scheme.vim
241 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
scss.vim
191 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
sdl.vim
2.73 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sh.vim
5.58 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sml.vim
6.33 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sql.vim
1.18 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
sqlanywhere.vim
12.86 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
systemd.vim
205 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
systemverilog.vim
8.38 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
tcl.vim
1.59 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
tcsh.vim
1.24 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
teraterm.vim
1.33 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
tex.vim
13.2 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
tf.vim
1.51 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
tilde.vim
1012 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
treetop.vim
707 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
vb.vim
2.04 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
verilog.vim
7.97 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
vhdl.vim
14.32 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
vim.vim
2.92 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
vroom.vim
379 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xf86conf.vim
709 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xhtml.vim
269 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xinetd.vim
1.2 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
xml.vim
2.78 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
xsd.vim
253 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
xslt.vim
297 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
yacc.vim
781 bytes
04/18/2023 09:20:34 AM
rw-r--r--
📄
yaml.vim
5.34 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
zimbu.vim
3.84 KB
04/18/2023 09:20:34 AM
rw-r--r--
📄
zsh.vim
411 bytes
04/18/2023 09:20:34 AM
rw-r--r--
Editing: rust.vim
Close
" Vim indent file " Language: Rust " Author: Chris Morgan <me@chrismorgan.info> " Last Change: 2017 Jun 13 " For bugs, patches and license go to https://github.com/rust-lang/rust.vim " Only load this indent file when no other was loaded. if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal cindent setlocal cinoptions=L0,(0,Ws,J1,j1 setlocal cinkeys=0{,0},!^F,o,O,0[,0] " Don't think cinwords will actually do anything at all... never mind setlocal cinwords=for,if,else,while,loop,impl,mod,unsafe,trait,struct,enum,fn,extern " Some preliminary settings setlocal nolisp " Make sure lisp indenting doesn't supersede us setlocal autoindent " indentexpr isn't much help otherwise " Also do indentkeys, otherwise # gets shoved to column 0 :-/ setlocal indentkeys=0{,0},!^F,o,O,0[,0] setlocal indentexpr=GetRustIndent(v:lnum) " Only define the function once. if exists("*GetRustIndent") finish endif let s:save_cpo = &cpo set cpo&vim " Come here when loading the script the first time. function! s:get_line_trimmed(lnum) " Get the line and remove a trailing comment. " Use syntax highlighting attributes when possible. " NOTE: this is not accurate; /* */ or a line continuation could trick it let line = getline(a:lnum) let line_len = strlen(line) if has('syntax_items') " If the last character in the line is a comment, do a binary search for " the start of the comment. synID() is slow, a linear search would take " too long on a long line. if synIDattr(synID(a:lnum, line_len, 1), "name") =~ 'Comment\|Todo' let min = 1 let max = line_len while min < max let col = (min + max) / 2 if synIDattr(synID(a:lnum, col, 1), "name") =~ 'Comment\|Todo' let max = col else let min = col + 1 endif endwhile let line = strpart(line, 0, min - 1) endif return substitute(line, "\s*$", "", "") else " Sorry, this is not complete, nor fully correct (e.g. string "//"). " Such is life. return substitute(line, "\s*//.*$", "", "") endif endfunction function! s:is_string_comment(lnum, col) if has('syntax_items') for id in synstack(a:lnum, a:col) let synname = synIDattr(id, "name") if synname == "rustString" || synname =~ "^rustComment" return 1 endif endfor else " without syntax, let's not even try return 0 endif endfunction function GetRustIndent(lnum) " Starting assumption: cindent (called at the end) will do it right " normally. We just want to fix up a few cases. let line = getline(a:lnum) if has('syntax_items') let synname = synIDattr(synID(a:lnum, 1, 1), "name") if synname == "rustString" " If the start of the line is in a string, don't change the indent return -1 elseif synname =~ '\(Comment\|Todo\)' \ && line !~ '^\s*/\*' " not /* opening line if synname =~ "CommentML" " multi-line if line !~ '^\s*\*' && getline(a:lnum - 1) =~ '^\s*/\*' " This is (hopefully) the line after a /*, and it has no " leader, so the correct indentation is that of the " previous line. return GetRustIndent(a:lnum - 1) endif endif " If it's in a comment, let cindent take care of it now. This is " for cases like "/*" where the next line should start " * ", not " "* " as the code below would otherwise cause for module scope " Fun fact: " /*\n*\n*/" takes two calls to get right! return cindent(a:lnum) endif endif " cindent gets second and subsequent match patterns/struct members wrong, " as it treats the comma as indicating an unfinished statement:: " " match a { " b => c, " d => e, " f => g, " }; " Search backwards for the previous non-empty line. let prevlinenum = prevnonblank(a:lnum - 1) let prevline = s:get_line_trimmed(prevlinenum) while prevlinenum > 1 && prevline !~ '[^[:blank:]]' let prevlinenum = prevnonblank(prevlinenum - 1) let prevline = s:get_line_trimmed(prevlinenum) endwhile " Handle where clauses nicely: subsequent values should line up nicely. if prevline[len(prevline) - 1] == "," \ && prevline =~# '^\s*where\s' return indent(prevlinenum) + 6 endif if prevline[len(prevline) - 1] == "," \ && s:get_line_trimmed(a:lnum) !~ '^\s*[\[\]{}]' \ && prevline !~ '^\s*fn\s' \ && prevline !~ '([^()]\+,$' \ && s:get_line_trimmed(a:lnum) !~ '^\s*\S\+\s*=>' " Oh ho! The previous line ended in a comma! I bet cindent will try to " take this too far... For now, let's normally use the previous line's " indent. " One case where this doesn't work out is where *this* line contains " square or curly brackets; then we normally *do* want to be indenting " further. " " Another case where we don't want to is one like a function " definition with arguments spread over multiple lines: " " fn foo(baz: Baz, " baz: Baz) // <-- cindent gets this right by itself " " Another case is similar to the previous, except calling a function " instead of defining it, or any conditional expression that leaves " an open paren: " " foo(baz, " baz); " " if baz && (foo || " bar) { " " Another case is when the current line is a new match arm. " " There are probably other cases where we don't want to do this as " well. Add them as needed. return indent(prevlinenum) endif if !has("patch-7.4.355") " cindent before 7.4.355 doesn't do the module scope well at all; e.g.:: " " static FOO : &'static [bool] = [ " true, " false, " false, " true, " ]; " " uh oh, next statement is indented further! " Note that this does *not* apply the line continuation pattern properly; " that's too hard to do correctly for my liking at present, so I'll just " start with these two main cases (square brackets and not returning to " column zero) call cursor(a:lnum, 1) if searchpair('{\|(', '', '}\|)', 'nbW', \ 's:is_string_comment(line("."), col("."))') == 0 if searchpair('\[', '', '\]', 'nbW', \ 's:is_string_comment(line("."), col("."))') == 0 " Global scope, should be zero return 0 else " At the module scope, inside square brackets only "if getline(a:lnum)[0] == ']' || search('\[', '', '\]', 'nW') == a:lnum if line =~ "^\\s*]" " It's the closing line, dedent it return 0 else return shiftwidth() endif endif endif endif " Fall back on cindent, which does it mostly right return cindent(a:lnum) endfunction let &cpo = s:save_cpo unlet s:save_cpo