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: cobol.vim
" Vim indent file " Language: cobol " Author: Tim Pope <vimNOSPAM@tpope.info> " $Id: cobol.vim,v 1.1 2007/05/05 18:08:19 vimboss Exp $ if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal expandtab setlocal indentexpr=GetCobolIndent(v:lnum) setlocal indentkeys& setlocal indentkeys+=0<*>,0/,0$,0=01,=~division,=~section,0=~end,0=~then,0=~else,0=~when,*<Return>,. " Only define the function once. if exists("*GetCobolIndent") finish endif let s:skip = 'getline(".") =~ "^.\\{6\\}[*/$-]\\|\"[^\"]*\""' function! s:prevgood(lnum) " Find a non-blank line above the current line. " Skip over comments. let lnum = a:lnum while lnum > 0 let lnum = prevnonblank(lnum - 1) let line = getline(lnum) if line !~? '^\s*[*/$-]' && line !~? '^.\{6\}[*/$CD-]' break endif endwhile return lnum endfunction function! s:stripped(lnum) return substitute(strpart(getline(a:lnum),0,72),'^\s*','','') endfunction function! s:optionalblock(lnum,ind,blocks,clauses) let ind = a:ind let clauses = '\c\<\%(\<NOT\s\+\)\@<!\%(NOT\s\+\)\=\%('.a:clauses.'\)' let begin = '\c-\@<!\<\%('.a:blocks.'\)\>' let beginfull = begin.'\ze.*\%(\n\%(\s*\%([*/$-].*\)\=\n\)*\)\=\s*\%('.clauses.'\)' let end = '\c\<end-\%('.a:blocks.'\)\>\|\%(\.\%( \|$\)\)\@=' let cline = s:stripped(a:lnum) let line = s:stripped(s:prevgood(a:lnum)) if cline =~? clauses "&& line !~? '^search\>' call cursor(a:lnum,1) let lastclause = searchpair(beginfull,clauses,end,'bWr',s:skip) if getline(lastclause) =~? clauses && s:stripped(lastclause) !~? '^'.begin let ind = indent(lastclause) elseif lastclause > 0 let ind = indent(lastclause) + shiftwidth() "let ind = ind + shiftwidth() endif elseif line =~? clauses && cline !~? end let ind = ind + shiftwidth() endif return ind endfunction function! GetCobolIndent(lnum) abort let minshft = 6 let ashft = minshft + 1 let bshft = ashft + 4 " (Obsolete) numbered lines if getline(a:lnum) =~? '^\s*\d\{6\}\%($\|[ */$CD-]\)' return 0 endif let cline = s:stripped(a:lnum) " Comments, etc. must start in the 7th column if cline =~? '^[*/$-]' return minshft elseif cline =~# '^[CD]' && indent(a:lnum) == minshft return minshft endif " Divisions, sections, and file descriptions start in area A if cline =~? '\<\(DIVISION\|SECTION\)\%($\|\.\)' || cline =~? '^[FS]D\>' return ashft endif " Fields if cline =~? '^0*\(1\|77\)\>' return ashft endif if cline =~? '^\d\+\>' let cnum = matchstr(cline,'^\d\+\>') let default = 0 let step = -1 while step < 2 let lnum = a:lnum while lnum > 0 && lnum < line('$') && lnum > a:lnum - 500 && lnum < a:lnum + 500 let lnum = step > 0 ? nextnonblank(lnum + step) : prevnonblank(lnum + step) let line = getline(lnum) let lindent = indent(lnum) if line =~? '^\s*\d\+\>' let num = matchstr(line,'^\s*\zs\d\+\>') if 0+cnum == num return lindent elseif 0+cnum > num && default < lindent + shiftwidth() let default = lindent + shiftwidth() endif elseif lindent < bshft && lindent >= ashft break endif endwhile let step = step + 2 endwhile return default ? default : bshft endif let lnum = s:prevgood(a:lnum) " Hit the start of the file, use "zero" indent. if lnum == 0 return ashft endif " Initial spaces are ignored let line = s:stripped(lnum) let ind = indent(lnum) " Paragraphs. There may be some false positives. if cline =~? '^\(\a[A-Z0-9-]*[A-Z0-9]\|\d[A-Z0-9-]*\a\)\.' "\s*$' if cline !~? '^EXIT\s*\.' && line =~? '\.\s*$' return ashft endif endif " Paragraphs in the identification division. "if cline =~? '^\(PROGRAM-ID\|AUTHOR\|INSTALLATION\|' . "\ 'DATE-WRITTEN\|DATE-COMPILED\|SECURITY\)\>' "return ashft "endif if line =~? '\.$' " XXX return bshft endif if line =~? '^PERFORM\>' let perfline = substitute(line, '\c^PERFORM\s*', "", "") if perfline =~? '^\%(\k\+\s\+TIMES\)\=\s*$' let ind = ind + shiftwidth() elseif perfline =~? '^\%(WITH\s\+TEST\|VARYING\|UNTIL\)\>.*[^.]$' let ind = ind + shiftwidth() endif endif if line =~? '^\%(IF\|THEN\|ELSE\|READ\|EVALUATE\|SEARCH\|SELECT\)\>' let ind = ind + shiftwidth() endif let ind = s:optionalblock(a:lnum,ind,'ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT','ON\s\+SIZE\s\+ERROR') let ind = s:optionalblock(a:lnum,ind,'STRING\|UNSTRING\|ACCEPT\|DISPLAY\|CALL','ON\s\+OVERFLOW\|ON\s\+EXCEPTION') if cline !~? '^AT\s\+END\>' || line !~? '^SEARCH\>' let ind = s:optionalblock(a:lnum,ind,'DELETE\|REWRITE\|START\|WRITE\|READ','INVALID\s\+KEY\|AT\s\+END\|NO\s\+DATA\|AT\s\+END-OF-PAGE') endif if cline =~? '^WHEN\>' call cursor(a:lnum,1) " We also search for READ so that contained AT ENDs are skipped let lastclause = searchpair('\c-\@<!\<\%(SEARCH\|EVALUATE\|READ\)\>','\c\<\%(WHEN\|AT\s\+END\)\>','\c\<END-\%(SEARCH\|EVALUATE\|READ\)\>','bW',s:skip) let g:foo = s:stripped(lastclause) if s:stripped(lastclause) =~? '\c\<\%(WHEN\|AT\s\+END\)\>' "&& s:stripped(lastclause) !~? '^\%(SEARCH\|EVALUATE\|READ\)\>' let ind = indent(lastclause) elseif lastclause > 0 let ind = indent(lastclause) + shiftwidth() endif elseif line =~? '^WHEN\>' let ind = ind + shiftwidth() endif "I'm not sure why I had this "if line =~? '^ELSE\>-\@!' && line !~? '\.$' "let ind = indent(s:prevgood(lnum)) "endif if cline =~? '^\(END\)\>-\@!' " On lines with just END, 'guess' a simple shift left let ind = ind - shiftwidth() elseif cline =~? '^\(END-IF\|THEN\|ELSE\)\>-\@!' call cursor(a:lnum,indent(a:lnum)) let match = searchpair('\c-\@<!\<IF\>','\c-\@<!\%(THEN\|ELSE\)\>','\c-\@<!\<END-IF\>\zs','bnW',s:skip) if match > 0 let ind = indent(match) endif elseif cline =~? '^END-[A-Z]' let beginword = matchstr(cline,'\c\<END-\zs[A-Z0-9-]\+') let endword = 'END-'.beginword let first = 0 let suffix = '.*\%(\n\%(\%(\s*\|.\{6\}\)[*/].*\n\)*\)\=\s*' if beginword =~? '^\%(ADD\|COMPUTE\|DIVIDE\|MULTIPLY\|SUBTRACT\)$' let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+SIZE\s\+ERROR' let g:beginword = beginword let first = 1 elseif beginword =~? '^\%(STRING\|UNSTRING\)$' let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+OVERFLOW' let first = 1 elseif beginword =~? '^\%(ACCEPT\|DISPLAY\)$' let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+EXCEPTION' let first = 1 elseif beginword ==? 'CALL' let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=ON\s\+\%(EXCEPTION\|OVERFLOW\)' let first = 1 elseif beginword =~? '^\%(DELETE\|REWRITE\|START\|READ\|WRITE\)$' let first = 1 let beginword = beginword . suffix . '\<\%(NOT\s\+\)\=\(INVALID\s\+KEY' if beginword =~? '^READ' let first = 0 let beginword = beginword . '\|AT\s\+END\|NO\s\+DATA' elseif beginword =~? '^WRITE' let beginword = beginword . '\|AT\s\+END-OF-PAGE' endif let beginword = beginword . '\)' endif call cursor(a:lnum,indent(a:lnum)) let match = searchpair('\c-\@<!\<'.beginword.'\>','','\c\<'.endword.'\>\zs','bnW'.(first? 'r' : ''),s:skip) if match > 0 let ind = indent(match) elseif cline =~? '^\(END-\(READ\|EVALUATE\|SEARCH\|PERFORM\)\)\>' let ind = ind - shiftwidth() endif endif return ind < bshft ? bshft : ind endfunction
Upload File
Create Folder