/
usr
/
share
/
vim
/
vim81
/
indent
/
/usr/share/vim/vim81/indent
mkdir
upload
Name
Size
Mode
Actions
aap.vim
265
0644
edit
dl
rm
ada.vim
11235
0644
edit
dl
rm
ant.vim
290
0644
edit
dl
rm
automake.vim
243
0644
edit
dl
rm
awk.vim
7774
0644
edit
dl
rm
bash.vim
350
0644
edit
dl
rm
bib.vim
346
0644
edit
dl
rm
bst.vim
1937
0644
edit
dl
rm
bzl.vim
2484
0644
edit
dl
rm
c.vim
325
0644
edit
dl
rm
cdl.vim
4253
0644
edit
dl
rm
ch.vim
470
0644
edit
dl
rm
chaiscript.vim
1138
0644
edit
dl
rm
changelog.vim
264
0644
edit
dl
rm
clojure.vim
10440
0644
edit
dl
rm
cmake.vim
2683
0644
edit
dl
rm
cobol.vim
8695
0644
edit
dl
rm
config.vim
2182
0644
edit
dl
rm
context.vim
752
0644
edit
dl
rm
cpp.vim
329
0644
edit
dl
rm
cs.vim
1756
0644
edit
dl
rm
css.vim
1790
0644
edit
dl
rm
cucumber.vim
2678
0644
edit
dl
rm
cuda.vim
305
0644
edit
dl
rm
d.vim
510
0644
edit
dl
rm
dictconf.vim
337
0644
edit
dl
rm
dictdconf.vim
338
0644
edit
dl
rm
docbk.vim
336
0644
edit
dl
rm
dosbatch.vim
1335
0644
edit
dl
rm
dtd.vim
11869
0644
edit
dl
rm
dtrace.vim
451
0644
edit
dl
rm
dylan.vim
2707
0644
edit
dl
rm
eiffel.vim
3317
0644
edit
dl
rm
erlang.vim
46379
0644
edit
dl
rm
eruby.vim
3016
0644
edit
dl
rm
eterm.vim
668
0644
edit
dl
rm
falcon.vim
14077
0644
edit
dl
rm
fortran.vim
7445
0644
edit
dl
rm
framescript.vim
816
0644
edit
dl
rm
gitconfig.vim
841
0644
edit
dl
rm
gitolite.vim
1277
0644
edit
dl
rm
go.vim
1673
0644
edit
dl
rm
haml.vim
2211
0644
edit
dl
rm
hamster.vim
1425
0644
edit
dl
rm
hog.vim
1892
0644
edit
dl
rm
html.vim
33488
0644
edit
dl
rm
htmldjango.vim
273
0644
edit
dl
rm
idlang.vim
1620
0644
edit
dl
rm
ishd.vim
1877
0644
edit
dl
rm
j.vim
1813
0644
edit
dl
rm
java.vim
4287
0644
edit
dl
rm
javascript.vim
15362
0644
edit
dl
rm
javascriptreact.vim
109
0644
edit
dl
rm
json.vim
4421
0644
edit
dl
rm
jsp.vim
462
0644
edit
dl
rm
ld.vim
1792
0644
edit
dl
rm
less.vim
243
0644
edit
dl
rm
lifelines.vim
637
0644
edit
dl
rm
liquid.vim
1899
0644
edit
dl
rm
lisp.vim
353
0644
edit
dl
rm
logtalk.vim
1859
0644
edit
dl
rm
lua.vim
1927
0644
edit
dl
rm
mail.vim
308
0644
edit
dl
rm
make.vim
3488
0644
edit
dl
rm
matlab.vim
4802
0644
edit
dl
rm
meson.vim
5223
0644
edit
dl
rm
mf.vim
156
0644
edit
dl
rm
mma.vim
2235
0644
edit
dl
rm
mp.vim
11321
0644
edit
dl
rm
nsis.vim
3257
0644
edit
dl
rm
objc.vim
1645
0644
edit
dl
rm
ocaml.vim
9153
0644
edit
dl
rm
occam.vim
4637
0644
edit
dl
rm
pascal.vim
5656
0644
edit
dl
rm
perl.vim
5902
0644
edit
dl
rm
perl6.vim
3540
0644
edit
dl
rm
php.vim
25905
0644
edit
dl
rm
postscr.vim
1649
0644
edit
dl
rm
pov.vim
2662
0644
edit
dl
rm
prolog.vim
1804
0644
edit
dl
rm
pyrex.vim
326
0644
edit
dl
rm
python.vim
6654
0644
edit
dl
rm
r.vim
14037
0644
edit
dl
rm
raml.vim
285
0644
edit
dl
rm
readline.vim
711
0644
edit
dl
rm
README.txt
1689
0644
edit
dl
rm
rhelp.vim
2840
0644
edit
dl
rm
rmd.vim
1680
0644
edit
dl
rm
rnoweb.vim
1087
0644
edit
dl
rm
rpl.vim
1862
0644
edit
dl
rm
rrst.vim
1195
0644
edit
dl
rm
rst.vim
1399
0644
edit
dl
rm
ruby.vim
29597
0644
edit
dl
rm
rust.vim
6498
0644
edit
dl
rm
sas.vim
5270
0644
edit
dl
rm
sass.vim
950
0644
edit
dl
rm
scala.vim
19430
0644
edit
dl
rm
scheme.vim
372
0644
edit
dl
rm
scss.vim
191
0644
edit
dl
rm
sdl.vim
2794
0644
edit
dl
rm
sh.vim
9271
0644
edit
dl
rm
sml.vim
6478
0644
edit
dl
rm
sql.vim
1204
0644
edit
dl
rm
sqlanywhere.vim
13166
0644
edit
dl
rm
systemd.vim
205
0644
edit
dl
rm
systemverilog.vim
8625
0644
edit
dl
rm
tcl.vim
2513
0644
edit
dl
rm
tcsh.vim
1270
0644
edit
dl
rm
teraterm.vim
1365
0644
edit
dl
rm
tex.vim
13498
0644
edit
dl
rm
tf.vim
1549
0644
edit
dl
rm
tilde.vim
1012
0644
edit
dl
rm
treetop.vim
707
0644
edit
dl
rm
typescript.vim
14480
0644
edit
dl
rm
vb.vim
2089
0644
edit
dl
rm
verilog.vim
8165
0644
edit
dl
rm
vhdl.vim
14666
0644
edit
dl
rm
vim.vim
3780
0644
edit
dl
rm
vroom.vim
379
0644
edit
dl
rm
wast.vim
458
0644
edit
dl
rm
xf86conf.vim
709
0644
edit
dl
rm
xhtml.vim
269
0644
edit
dl
rm
xinetd.vim
1231
0644
edit
dl
rm
xml.vim
6349
0644
edit
dl
rm
xsd.vim
253
0644
edit
dl
rm
xslt.vim
297
0644
edit
dl
rm
yacc.vim
781
0644
edit
dl
rm
yaml.vim
5472
0644
edit
dl
rm
zimbu.vim
3936
0644
edit
dl
rm
zsh.vim
411
0644
edit
dl
rm
Edit:
/usr/share/vim/vim81/indent/sas.vim
(5270B)
" Vim indent file " Language: SAS " Maintainer: Zhen-Huan Hu <wildkeny@gmail.com> " Version: 3.0.3 " Last Change: Jun 26, 2018 if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal indentexpr=GetSASIndent() setlocal indentkeys+=;,=~data,=~proc,=~macro if exists("*GetSASIndent") finish endif let s:cpo_save = &cpo set cpo&vim " Regex that captures the start of a data/proc section let s:section_str = '\v%(^|;)\s*%(data|proc)>' " Regex that captures the end of a run-processing section let s:section_run = '\v%(^|;)\s*run\s*;' " Regex that captures the end of a data/proc section let s:section_end = '\v%(^|;)\s*%(quit|enddata)\s*;' " Regex that captures the start of a control block (anything inside a section) let s:block_str = '\v<%(do>%([^;]+<%(to|over|while)>[^;]+)=|%(compute|define\s+%(column|footer|header|style|table|tagset|crosstabs|statgraph)|edit|layout|method|select)>[^;]+|begingraph)\s*;' " Regex that captures the end of a control block (anything inside a section) let s:block_end = '\v<%(end|endcomp|endlayout|endgraph)\s*;' " Regex that captures the start of a macro let s:macro_str = '\v%(^|;)\s*\%macro>' " Regex that captures the end of a macro let s:macro_end = '\v%(^|;)\s*\%mend\s*;' " Regex that defines the end of the program let s:program_end = '\v%(^|;)\s*endsas\s*;' " List of procs supporting run-processing let s:run_processing_procs = [ \ 'catalog', 'chart', 'datasets', 'document', 'ds2', 'plot', 'sql', \ 'gareabar', 'gbarline', 'gchart', 'gkpi', 'gmap', 'gplot', 'gradar', 'greplay', 'gslide', 'gtile', \ 'anova', 'arima', 'catmod', 'factex', 'glm', 'model', 'optex', 'plan', 'reg', \ 'iml', \ ] " Find the line number of previous keyword defined by the regex function! s:PrevMatch(lnum, regex) let prev_lnum = prevnonblank(a:lnum - 1) while prev_lnum > 0 let prev_line = getline(prev_lnum) if prev_line =~? a:regex break else let prev_lnum = prevnonblank(prev_lnum - 1) endif endwhile return prev_lnum endfunction " Main function function! GetSASIndent() let prev_lnum = prevnonblank(v:lnum - 1) if prev_lnum ==# 0 " Leave the indentation of the first line unchanged return indent(1) else let prev_line = getline(prev_lnum) " Previous non-blank line contains the start of a macro/section/block " while not the end of a macro/section/block (at the same line) if (prev_line =~? s:section_str && prev_line !~? s:section_run && prev_line !~? s:section_end) || \ (prev_line =~? s:block_str && prev_line !~? s:block_end) || \ (prev_line =~? s:macro_str && prev_line !~? s:macro_end) let ind = indent(prev_lnum) + shiftwidth() elseif prev_line =~? s:section_run && prev_line !~? s:section_end let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str) let prev_section_end_lnum = max([ \ s:PrevMatch(v:lnum, s:section_end), \ s:PrevMatch(v:lnum, s:macro_end ), \ s:PrevMatch(v:lnum, s:program_end)]) " Check if the section supports run-processing if prev_section_end_lnum < prev_section_str_lnum && \ getline(prev_section_str_lnum) =~? '\v%(^|;)\s*proc\s+%(' . \ join(s:run_processing_procs, '|') . ')>' let ind = indent(prev_lnum) + shiftwidth() else let ind = indent(prev_lnum) endif else let ind = indent(prev_lnum) endif endif " Re-adjustments based on the inputs of the current line let curr_line = getline(v:lnum) if curr_line =~? s:program_end " End of the program " Same indentation as the first non-blank line return indent(nextnonblank(1)) elseif curr_line =~? s:macro_end " Current line is the end of a macro " Match the indentation of the start of the macro return indent(s:PrevMatch(v:lnum, s:macro_str)) elseif curr_line =~? s:block_end && curr_line !~? s:block_str " Re-adjust if current line is the end of a block " while not the beginning of a block (at the same line) " Returning the indent of previous block start directly " would not work due to nesting let ind = ind - shiftwidth() elseif curr_line =~? s:section_str || curr_line =~? s:section_run || curr_line =~? s:section_end " Re-adjust if current line is the start/end of a section " since the end of a section could be inexplicit let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str) " Check if the previous section supports run-processing if getline(prev_section_str_lnum) =~? '\v%(^|;)\s*proc\s+%(' . \ join(s:run_processing_procs, '|') . ')>' let prev_section_end_lnum = max([ \ s:PrevMatch(v:lnum, s:section_end), \ s:PrevMatch(v:lnum, s:macro_end ), \ s:PrevMatch(v:lnum, s:program_end)]) else let prev_section_end_lnum = max([ \ s:PrevMatch(v:lnum, s:section_end), \ s:PrevMatch(v:lnum, s:section_run), \ s:PrevMatch(v:lnum, s:macro_end ), \ s:PrevMatch(v:lnum, s:program_end)]) endif if prev_section_end_lnum < prev_section_str_lnum let ind = ind - shiftwidth() endif endif return ind endfunction let &cpo = s:cpo_save unlet s:cpo_save
Save
cmd:
run