X7ROOT File Manager
Current Path:
/usr/share/vim/vim80/indent
usr
/
share
/
vim
/
vim80
/
indent
/
??
..
??
README.txt
(1.6 KB)
??
aap.vim
(265 B)
??
ada.vim
(10.97 KB)
??
ant.vim
(290 B)
??
automake.vim
(243 B)
??
awk.vim
(7.59 KB)
??
bib.vim
(346 B)
??
bst.vim
(1.89 KB)
??
bzl.vim
(2.43 KB)
??
c.vim
(325 B)
??
cdl.vim
(4.15 KB)
??
ch.vim
(470 B)
??
chaiscript.vim
(1.11 KB)
??
changelog.vim
(264 B)
??
clojure.vim
(10.2 KB)
??
cmake.vim
(2.62 KB)
??
cobol.vim
(8.11 KB)
??
config.vim
(2.13 KB)
??
context.vim
(752 B)
??
cpp.vim
(329 B)
??
cs.vim
(327 B)
??
css.vim
(1.75 KB)
??
cucumber.vim
(2.62 KB)
??
cuda.vim
(305 B)
??
d.vim
(510 B)
??
dictconf.vim
(337 B)
??
dictdconf.vim
(338 B)
??
docbk.vim
(336 B)
??
dtd.vim
(11.59 KB)
??
dtrace.vim
(451 B)
??
dylan.vim
(2.64 KB)
??
eiffel.vim
(3.24 KB)
??
erlang.vim
(45.29 KB)
??
eruby.vim
(2.74 KB)
??
eterm.vim
(668 B)
??
falcon.vim
(13.72 KB)
??
fortran.vim
(7.27 KB)
??
framescript.vim
(816 B)
??
gitconfig.vim
(841 B)
??
gitolite.vim
(1.25 KB)
??
go.vim
(1.63 KB)
??
haml.vim
(2.16 KB)
??
hamster.vim
(1.39 KB)
??
hog.vim
(1.85 KB)
??
html.vim
(32.47 KB)
??
htmldjango.vim
(273 B)
??
idlang.vim
(1.58 KB)
??
ishd.vim
(1.83 KB)
??
j.vim
(1.77 KB)
??
java.vim
(4.19 KB)
??
javascript.vim
(15 KB)
??
json.vim
(4.32 KB)
??
jsp.vim
(462 B)
??
ld.vim
(1.75 KB)
??
less.vim
(243 B)
??
lifelines.vim
(637 B)
??
liquid.vim
(1.85 KB)
??
lisp.vim
(353 B)
??
logtalk.vim
(1.7 KB)
??
lua.vim
(1.88 KB)
??
mail.vim
(308 B)
??
make.vim
(3.41 KB)
??
matlab.vim
(1.92 KB)
??
mf.vim
(156 B)
??
mma.vim
(2.18 KB)
??
mp.vim
(11.06 KB)
??
nsis.vim
(3.18 KB)
??
objc.vim
(1.61 KB)
??
ocaml.vim
(8.94 KB)
??
occam.vim
(4.53 KB)
??
pascal.vim
(5.52 KB)
??
perl.vim
(5.76 KB)
??
perl6.vim
(3.46 KB)
??
php.vim
(21.91 KB)
??
postscr.vim
(1.61 KB)
??
pov.vim
(2.6 KB)
??
prolog.vim
(1.46 KB)
??
pyrex.vim
(326 B)
??
python.vim
(5.61 KB)
??
r.vim
(13.58 KB)
??
readline.vim
(711 B)
??
rhelp.vim
(2.77 KB)
??
rmd.vim
(1.17 KB)
??
rnoweb.vim
(1.06 KB)
??
rpl.vim
(1.82 KB)
??
rrst.vim
(1.17 KB)
??
rst.vim
(1.37 KB)
??
ruby.vim
(22.43 KB)
??
rust.vim
(6.35 KB)
??
sas.vim
(5.01 KB)
??
sass.vim
(950 B)
??
scala.vim
(18.97 KB)
??
scheme.vim
(372 B)
??
scss.vim
(191 B)
??
sdl.vim
(2.73 KB)
??
sh.vim
(5.58 KB)
??
sml.vim
(6.33 KB)
??
sql.vim
(1.18 KB)
??
sqlanywhere.vim
(12.86 KB)
??
systemd.vim
(205 B)
??
systemverilog.vim
(8.38 KB)
??
tcl.vim
(1.59 KB)
??
tcsh.vim
(1.24 KB)
??
teraterm.vim
(1.33 KB)
??
tex.vim
(13.18 KB)
??
tf.vim
(1.51 KB)
??
tilde.vim
(1012 B)
??
treetop.vim
(707 B)
??
vb.vim
(2.04 KB)
??
verilog.vim
(7.97 KB)
??
vhdl.vim
(14.32 KB)
??
vim.vim
(2.92 KB)
??
vroom.vim
(379 B)
??
xf86conf.vim
(709 B)
??
xhtml.vim
(269 B)
??
xinetd.vim
(1.2 KB)
??
xml.vim
(2.78 KB)
??
xsd.vim
(253 B)
??
xslt.vim
(297 B)
??
yacc.vim
(781 B)
??
yaml.vim
(5.34 KB)
??
zimbu.vim
(3.84 KB)
??
zsh.vim
(411 B)
Editing: cdl.vim
" Description: Comshare Dimension Definition Language (CDL) " Author: Raul Segura Acevedo <raulseguraaceved@netscape.net> " Last Change: Fri Nov 30 13:35:48 2001 CST if exists("b:did_indent") "finish endif let b:did_indent = 1 setlocal indentexpr=CdlGetIndent(v:lnum) setlocal indentkeys& setlocal indentkeys+==~else,=~endif,=~then,;,),= " Only define the function once. if exists("*CdlGetIndent") "finish endif " find out if an "...=..." expresion is an assignment (or a conditional) " it scans 'line' first, and then the previos lines fun! CdlAsignment(lnum, line) let f = -1 let lnum = a:lnum let line = a:line while lnum > 0 && f == -1 " line without members [a] of [b]:[c]... let inicio = 0 while 1 " keywords that help to decide let inicio = matchend(line, '\c\<\(expr\|\a*if\|and\|or\|not\|else\|then\|memberis\|\k\+of\)\>\|[<>;]', inicio) if inicio < 0 break endif " it's formula if there's a ';', 'elsE', 'theN', 'enDif' or 'expr' " conditional if there's a '<', '>', 'elseif', 'if', 'and', 'or', 'not', " 'memberis', 'childrenof' and other \k\+of funcions let f = line[inicio-1] =~? '[en;]' || strpart(line, inicio-4, 4) =~? 'ndif\|expr' endw let lnum = prevnonblank(lnum-1) let line = substitute(getline(lnum), '\c\(\[[^]]*]\(\s*of\s*\|:\)*\)\+', ' ', 'g') endw " if we hit the start of the file then f = -1, return 1 (formula) return f != 0 endf fun! CdlGetIndent(lnum) let thisline = getline(a:lnum) if match(thisline, '^\s*\(\k\+\|\[[^]]*]\)\s*\(,\|;\s*$\)') >= 0 " it's an attributes line return shiftwidth() elseif match(thisline, '^\c\s*\([{}]\|\/[*/]\|dimension\|schedule\|group\|hierarchy\|class\)') >= 0 " it's a header or '{' or '}' or a comment return 0 end let lnum = prevnonblank(a:lnum-1) " Hit the start of the file, use zero indent. if lnum == 0 return 0 endif " PREVIOUS LINE let ind = indent(lnum) let line = getline(lnum) let f = -1 " wether a '=' is a conditional or a asignment, -1 means we don't know yet " one 'closing' element at the beginning of the line has already reduced the " indent, but 'else', 'elseif' & 'then' increment it for the next line " '=' at the beginning has already de right indent (increased for asignments) let inicio = matchend(line, '^\c\s*\(else\a*\|then\|endif\|/[*/]\|[);={]\)') if inicio > 0 let c = line[inicio-1] " ')' and '=' don't change indent and are useless to set 'f' if c == '{' return shiftwidth() elseif c != ')' && c != '=' let f = 1 " all but 'elseif' are followed by a formula if c ==? 'n' || c ==? 'e' " 'then', 'else' let ind = ind + shiftwidth() elseif strpart(line, inicio-6, 6) ==? 'elseif' " elseif, set f to conditional let ind = ind + shiftwidth() let f = 0 end end end " remove members [a] of [b]:[c]... (inicio remainds valid) let line = substitute(line, '\c\(\[[^]]*]\(\s*of\s*\|:\)*\)\+', ' ', 'g') while 1 " search for the next interesting element let inicio=matchend(line, '\c\<if\|endif\|[()=;]', inicio) if inicio < 0 break end let c = line[inicio-1] " 'expr(...)' containing the formula if strpart(line, inicio-5, 5) ==? 'expr(' let ind = 0 let f = 1 elseif c == ')' || c== ';' || strpart(line, inicio-5, 5) ==? 'endif' let ind = ind - shiftwidth() elseif c == '(' || c ==? 'f' " '(' or 'if' let ind = ind + shiftwidth() else " c == '=' " if it is an asignment increase indent if f == -1 " we don't know yet, find out let f = CdlAsignment(lnum, strpart(line, 0, inicio)) end if f == 1 " formula increase it let ind = ind + shiftwidth() end end endw " CURRENT LINE, if it starts with a closing element, decrease indent " or if it starts with '=' (asignment), increase indent if match(thisline, '^\c\s*\(else\|then\|endif\|[);]\)') >= 0 let ind = ind - shiftwidth() elseif match(thisline, '^\s*=') >= 0 if f == -1 " we don't know yet if is an asignment, find out let f = CdlAsignment(lnum, "") end if f == 1 " formula increase it let ind = ind + shiftwidth() end end return ind endfun
Upload File
Create Folder