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
vim9script # MetaPost indent file # Language: MetaPost # Maintainer: Nicola Vitacolonna <nvitacolonna@gmail.com> # Former Maintainers: Eugene Minkovskii <emin@mccme.ru> # Latest Revision: 2022 Aug 12 if exists("b:did_indent") finish endif b:did_indent = 1 setlocal indentexpr=g:MetaPostIndent() setlocal indentkeys+==end,=else,=fi,=fill,0),0] setlocal nolisp setlocal nosmartindent b:undo_indent = "setl indentexpr< indentkeys< lisp< smartindent<" # Regexps {{{ # Expressions starting indented blocks const MP_OPEN_TAG = [ '\<if\>', '\<else\%[if]\>', '\<for\%(\|ever\|suffixes\)\>', '\<begingroup\>', '\<\%(\|var\|primary\|secondary\|tertiary\)def\>', '^\s*\<begin\%(fig\|graph\|glyph\|char\|logochar\)\>', '[([{]', ]->extend(get(g:, "mp_open_tag", []))->join('\|') # Expressions ending indented blocks const MP_CLOSE_TAG = [ '\<fi\>', '\<else\%[if]\>', '\<end\%(\|for\|group\|def\|fig\|char\|glyph\|graph\)\>', '[)\]}]' ]->extend(get(g:, "mp_close_tag", []))->join('\|') # Statements that may span multiple lines and are ended by a semicolon. To # keep this list short, statements that are unlikely to be very long or are # not very common (e.g., keywords like `interim` or `showtoken`) are not # included. # # The regex for assignments and equations (the last branch) is tricky, because # it must not match things like `for i :=`, `if a=b`, `def...=`, etc... It is # not perfect, but it works reasonably well. const MP_STATEMENT = [ '\<\%(\|un\|cut\)draw\%(dot\)\=\>', '\<\%(\|un\)fill\%[draw]\>', '\<draw\%(dbl\)\=arrow\>', '\<clip\>', '\<addto\>', '\<save\>', '\<setbounds\>', '\<message\>', '\<errmessage\>', '\<errhelp\>', '\<fontmapline\>', '\<pickup\>', '\<show\>', '\<special\>', '\<write\>', '\%(^\|;\)\%([^;=]*\%(' .. MP_OPEN_TAG .. '\)\)\@!.\{-}:\==', ]->join('\|') # A line ends with zero or more spaces, possibly followed by a comment. const EOL = '\s*\%($\|%\)' # }}} # Auxiliary functions {{{ # Returns true if (0-based) position immediately preceding `pos` in `line` is # inside a string or a comment; returns false otherwise. # This is the function that is called more often when indenting, so it is # critical that it is efficient. The method we use is significantly faster # than using syntax attributes, and more general (it does not require # syntax_items). It is also faster than using a single regex matching an even # number of quotes. It helps that MetaPost strings cannot span more than one # line and cannot contain escaped quotes. def IsCommentOrString(line: string, pos: number): bool var in_string = 0 var q = stridx(line, '"') var c = stridx(line, '%') while q >= 0 && q < pos if c >= 0 && c < q if in_string # Find next percent symbol c = stridx(line, '%', q + 1) else # Inside comment return true endif endif in_string = 1 - in_string q = stridx(line, '"', q + 1) # Find next quote endwhile return in_string || (c >= 0 && c <= pos) enddef # Find the first non-comment non-blank line before the given line. def PrevNonBlankNonComment(lnum: number): number var nr = prevnonblank(lnum - 1) while getline(nr) =~# '^\s*%' nr = prevnonblank(nr - 1) endwhile return nr enddef # Returns true if the last tag appearing in the line is an open tag; returns # false otherwise. def LastTagIsOpen(line: string): bool var o = LastValidMatchEnd(line, MP_OPEN_TAG, 0) if o == - 1 return false endif return LastValidMatchEnd(line, MP_CLOSE_TAG, o) < 0 enddef # A simple, efficient and quite effective heuristics is used to test whether # a line should cause the next line to be indented: count the "opening tags" # (if, for, def, ...) in the line, count the "closing tags" (endif, endfor, # ...) in the line, and compute the difference. We call the result the # "weight" of the line. If the weight is positive, then the next line should # most likely be indented. Note that `else` and `elseif` are both opening and # closing tags, so they "cancel out" in almost all cases, the only exception # being a leading `else[if]`, which is counted as an opening tag, but not as # a closing tag (so that, for instance, a line containing a single `else:` # will have weight equal to one, not zero). We do not treat a trailing # `else[if]` in any special way, because lines ending with an open tag are # dealt with separately before this function is called (see MetaPostIndent()). # # Example: # # forsuffixes $=a,b: if x.$ = y.$ : draw else: fill fi # % This line will be indented because |{forsuffixes,if,else}| > |{else,fi}| (3 > 2) # endfor def Weight(line: string): number var o = 0 var i = ValidMatchEnd(line, MP_OPEN_TAG, 0) while i > 0 o += 1 i = ValidMatchEnd(line, MP_OPEN_TAG, i) endwhile var c = 0 i = matchend(line, '^\s*\<else\%[if]\>') # Skip a leading else[if] i = ValidMatchEnd(line, MP_CLOSE_TAG, i) while i > 0 c += 1 i = ValidMatchEnd(line, MP_CLOSE_TAG, i) endwhile return o - c enddef # Similar to matchend(), but skips strings and comments. # line: a String def ValidMatchEnd(line: string, pat: string, start: number): number var i = matchend(line, pat, start) while i > 0 && IsCommentOrString(line, i) i = matchend(line, pat, i) endwhile return i enddef # Like s:ValidMatchEnd(), but returns the end position of the last (i.e., # rightmost) match. def LastValidMatchEnd(line: string, pat: string, start: number): number var last_found = -1 var i = matchend(line, pat, start) while i > 0 if !IsCommentOrString(line, i) last_found = i endif i = matchend(line, pat, i) endwhile return last_found enddef def DecreaseIndentOnClosingTag(curr_indent: number): number var cur_text = getline(v:lnum) if cur_text =~# '^\s*\%(' .. MP_CLOSE_TAG .. '\)' return max([curr_indent - shiftwidth(), 0]) endif return curr_indent enddef # }}} # Main function {{{ def g:MetaPostIndent(): number # Do not touch indentation inside verbatimtex/btex.. etex blocks. if synIDattr(synID(v:lnum, 1, 1), "name") =~# '^mpTeXinsert$\|^tex\|^Delimiter' return -1 endif # At the start of a MetaPost block inside ConTeXt, do not touch indentation if synIDattr(synID(prevnonblank(v:lnum - 1), 1, 1), "name") == "contextBlockDelim" return -1 endif var lnum = PrevNonBlankNonComment(v:lnum) # At the start of the file use zero indent. if lnum == 0 return 0 endif var prev_text = getline(lnum) # Every rule of indentation in MetaPost is very subjective. We might get # creative, but things get murky very soon (there are too many corner # cases). So, we provide a means for the user to decide what to do when this # script doesn't get it. We use a simple idea: use '%>', '%<', '%=', and # '%!', to explicitly control indentation. The '<' and '>' symbols may be # repeated many times (e.g., '%>>' will cause the next line to be indented # twice). # # User-defined overrides take precedence over anything else. var j = match(prev_text, '%[<>=!]') if j > 0 var i = strlen(matchstr(prev_text, '%>\+', j)) - 1 if i > 0 return indent(lnum) + i * shiftwidth() endif i = strlen(matchstr(prev_text, '%<\+', j)) - 1 if i > 0 return max([indent(lnum) - i * shiftwidth(), 0]) endif if match(prev_text, '%=', j) > -1 return indent(lnum) endif if match(prev_text, '%!', j) > -1 return -1 endif endif # If the reference line ends with an open tag, indent. # # Example: # # if c: # 0 # else: # 1 # fi if c2: % Note that this line has weight equal to zero. # ... % This line will be indented if LastTagIsOpen(prev_text) return DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth()) endif # Lines with a positive weight are unbalanced and should likely be indented. # # Example: # # def f = enddef for i = 1 upto 5: if x[i] > 0: 1 else: 2 fi # ... % This line will be indented (because of the unterminated `for`) if Weight(prev_text) > 0 return DecreaseIndentOnClosingTag(indent(lnum) + shiftwidth()) endif # Unterminated statements cause indentation to kick in. # # Example: # # draw unitsquare # withcolor black; % This line is indented because of `draw`. # x := a + b + c # + d + e; % This line is indented because of `:=`. # var i = LastValidMatchEnd(prev_text, MP_STATEMENT, 0) if i >= 0 # Does the line contain a statement? if ValidMatchEnd(prev_text, ';', i) < 0 # Is the statement unterminated? return indent(lnum) + shiftwidth() else return DecreaseIndentOnClosingTag(indent(lnum)) endif endif # Deal with the special case of a statement spanning multiple lines. If the # current reference line L ends with a semicolon, search backwards for # another semicolon or a statement keyword. If the latter is found first, # its line is used as the reference line for indenting the current line # instead of L. # # Example: # # if cond: # draw if a: z0 else: z1 fi # shifted S # scaled T; % L # # for i = 1 upto 3: % <-- Current line: this gets the same indent as `draw ...` # # NOTE: we get here only if L does not contain a statement (among those # listed in g:MP_STATEMENT). if ValidMatchEnd(prev_text, ';' .. EOL, 0) >= 0 # L ends with a semicolon var stm_lnum = PrevNonBlankNonComment(lnum) while stm_lnum > 0 prev_text = getline(stm_lnum) var sc_pos = LastValidMatchEnd(prev_text, ';', 0) var stm_pos = ValidMatchEnd(prev_text, MP_STATEMENT, sc_pos) if stm_pos > sc_pos lnum = stm_lnum break elseif sc_pos > stm_pos break endif stm_lnum = PrevNonBlankNonComment(stm_lnum) endwhile endif return DecreaseIndentOnClosingTag(indent(lnum)) enddef # }}} # vim: sw=2 fdm=marker