__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
"------------------------------------------------------------------------------
"  Description: Vim Ada indent file
"     Language: Ada (2005)
"	   $Id: ada.vim 887 2008-07-08 14:29:01Z krischik $
"    Copyright: Copyright (C) 2006 Martin Krischik
"   Maintainer: Martin Krischik <krischik@users.sourceforge.net>
"		Neil Bird <neil@fnxweb.com>
"		Ned Okie <nokie@radford.edu>
"      $Author: krischik $
"	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
"      Version: 4.6
"    $Revision: 887 $
"     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/indent/ada.vim $
"      History: 24.05.2006 MK Unified Headers
"		16.07.2006 MK Ada-Mode as vim-ball
"		15.10.2006 MK Bram's suggestion for runtime integration
"		05.11.2006 MK Bram suggested to save on spaces
"		19.09.2007 NO g: missing before ada#Comment
"		2022 April: b:undo_indent added by Doug Kearns
"    Help Page: ft-vim-indent
"------------------------------------------------------------------------------
" ToDo:
"  Verify handling of multi-line exprs. and recovery upon the final ';'.
"  Correctly find comments given '"' and "" ==> " syntax.
"  Combine the two large block-indent functions into one?
"------------------------------------------------------------------------------

" Only load this indent file when no other was loaded.
if exists("b:did_indent") || version < 700
   finish
endif

let b:did_indent = 45

setlocal indentexpr=GetAdaIndent()
setlocal indentkeys-=0{,0}
setlocal indentkeys+=0=~then,0=~end,0=~elsif,0=~when,0=~exception,0=~begin,0=~is,0=~record

let b:undo_indent = "setl inde< indk<"

" Only define the functions once.
if exists("*GetAdaIndent")
   finish
endif
let s:keepcpo= &cpo
set cpo&vim

if exists("g:ada_with_gnat_project_files")
   let s:AdaBlockStart = '^\s*\(if\>\|while\>\|else\>\|elsif\>\|loop\>\|for\>.*\<\(loop\|use\)\>\|declare\>\|begin\>\|type\>.*\<is\>[^;]*$\|\(type\>.*\)\=\<record\>\|procedure\>\|function\>\|accept\>\|do\>\|task\>\|package\>\|project\>\|then\>\|when\>\|is\>\)'
else
   let s:AdaBlockStart = '^\s*\(if\>\|while\>\|else\>\|elsif\>\|loop\>\|for\>.*\<\(loop\|use\)\>\|declare\>\|begin\>\|type\>.*\<is\>[^;]*$\|\(type\>.*\)\=\<record\>\|procedure\>\|function\>\|accept\>\|do\>\|task\>\|package\>\|then\>\|when\>\|is\>\)'
endif

" Section: s:MainBlockIndent {{{1
"
" Try to find indent of the block we're in
" prev_indent = the previous line's indent
" prev_lnum   = previous line (to start looking on)
" blockstart  = expr. that indicates a possible start of this block
" stop_at     = if non-null, if a matching line is found, gives up!
" No recursive previous block analysis: simply look for a valid line
" with a lesser or equal indent than we currently (on prev_lnum) have.
" This shouldn't work as well as it appears to with lines that are currently
" nowhere near the correct indent (e.g., start of line)!
" Seems to work OK as it 'starts' with the indent of the /previous/ line.
function s:MainBlockIndent (prev_indent, prev_lnum, blockstart, stop_at)
   let lnum = a:prev_lnum
   let line = substitute( getline(lnum), g:ada#Comment, '', '' )
   while lnum > 1
      if a:stop_at != ''  &&  line =~ '^\s*' . a:stop_at  &&  indent(lnum) < a:prev_indent
	 return a:prev_indent
      elseif line =~ '^\s*' . a:blockstart
	 let ind = indent(lnum)
	 if ind < a:prev_indent
	    return ind
	 endif
      endif

      let lnum = prevnonblank(lnum - 1)
      " Get previous non-blank/non-comment-only line
      while 1
	 let line = substitute( getline(lnum), g:ada#Comment, '', '' )
	 if line !~ '^\s*$' && line !~ '^\s*#'
	    break
	 endif
	 let lnum = prevnonblank(lnum - 1)
	 if lnum <= 0
	    return a:prev_indent
	 endif
      endwhile
   endwhile
   " Fallback - just move back one
   return a:prev_indent - shiftwidth()
endfunction MainBlockIndent

" Section: s:EndBlockIndent {{{1
"
" Try to find indent of the block we're in (and about to complete),
" including handling of nested blocks. Works on the 'end' of a block.
" prev_indent = the previous line's indent
" prev_lnum   = previous line (to start looking on)
" blockstart  = expr. that indicates a possible start of this block
" blockend    = expr. that indicates a possible end of this block
function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
   let lnum = a:prev_lnum
   let line = getline(lnum)
   let ends = 0
   while lnum > 1
      if getline(lnum) =~ '^\s*' . a:blockstart
	 let ind = indent(lnum)
	 if ends <= 0
	    if ind < a:prev_indent
	       return ind
	    endif
	 else
	    let ends = ends - 1
	 endif
      elseif getline(lnum) =~ '^\s*' . a:blockend
	 let ends = ends + 1
      endif

      let lnum = prevnonblank(lnum - 1)
      " Get previous non-blank/non-comment-only line
      while 1
	 let line = getline(lnum)
	 let line = substitute( line, g:ada#Comment, '', '' )
	 if line !~ '^\s*$'
	    break
	 endif
	 let lnum = prevnonblank(lnum - 1)
	 if lnum <= 0
	    return a:prev_indent
	 endif
      endwhile
   endwhile
   " Fallback - just move back one
   return a:prev_indent - shiftwidth()
endfunction EndBlockIndent

" Section: s:StatementIndent {{{1
"
" Return indent of previous statement-start
" (after we've indented due to multi-line statements).
" This time, we start searching on the line *before* the one given (which is
" the end of a statement - we want the previous beginning).
function s:StatementIndent( current_indent, prev_lnum )
   let lnum  = a:prev_lnum
   while lnum > 0
      let prev_lnum = lnum
      let lnum = prevnonblank(lnum - 1)
      " Get previous non-blank/non-comment-only line
      while 1
	 let line = substitute( getline(lnum), g:ada#Comment, '', '' )

	 if line !~ '^\s*$' && line !~ '^\s*#'
	    break
	 endif
	 let lnum = prevnonblank(lnum - 1)
	 if lnum <= 0
	    return a:current_indent
	 endif
      endwhile
      " Leave indent alone if our ';' line is part of a ';'-delineated
      " aggregate (e.g., procedure args.) or first line after a block start.
      if line =~ s:AdaBlockStart || line =~ '(\s*$'
	 return a:current_indent
      endif
      if line !~ '[.=(]\s*$'
	 let ind = indent(prev_lnum)
	 if ind < a:current_indent
	    return ind
	 endif
      endif
   endwhile
   " Fallback - just use current one
   return a:current_indent
endfunction StatementIndent


" Section: GetAdaIndent {{{1
"
" Find correct indent of a new line based upon what went before
"
function GetAdaIndent()
   " Find a non-blank line above the current line.
   let lnum = prevnonblank(v:lnum - 1)
   let ind = indent(lnum)
   let package_line = 0

   " Get previous non-blank/non-comment-only/non-cpp line
   while 1
      let line = substitute( getline(lnum), g:ada#Comment, '', '' )
      if line !~ '^\s*$' && line !~ '^\s*#'
	 break
      endif
      let lnum = prevnonblank(lnum - 1)
      if lnum <= 0
	 return ind
      endif
   endwhile

   " Get default indent (from prev. line)
   let ind = indent(lnum)
   let initind = ind

   " Now check what's on the previous line
   if line =~ s:AdaBlockStart  ||  line =~ '(\s*$'
      " Check for false matches to AdaBlockStart
      let false_match = 0
      if line =~ '^\s*\(procedure\|function\|package\)\>.*\<is\s*new\>'
	 " Generic instantiation
	 let false_match = 1
      elseif line =~ ')\s*;\s*$'  ||  line =~ '^\([^(]*([^)]*)\)*[^(]*;\s*$'
	 " forward declaration
	 let false_match = 1
      endif
      " Move indent in
      if ! false_match
	 let ind = ind + shiftwidth()
      endif
   elseif line =~ '^\s*\(case\|exception\)\>'
      " Move indent in twice (next 'when' will move back)
      let ind = ind + 2 * shiftwidth()
   elseif line =~ '^\s*end\s*record\>'
      " Move indent back to tallying 'type' preceding the 'record'.
      " Allow indent to be equal to 'end record's.
      let ind = s:MainBlockIndent( ind+shiftwidth(), lnum, 'type\>', '' )
   elseif line =~ '\(^\s*new\>.*\)\@<!)\s*[;,]\s*$'
      " Revert to indent of line that started this parenthesis pair
      exe lnum
      exe 'normal! $F)%'
      if getline('.') =~ '^\s*('
	 " Dire layout - use previous indent (could check for g:ada#Comment here)
	 let ind = indent( prevnonblank( line('.')-1 ) )
      else
	 let ind = indent('.')
      endif
      exe v:lnum
   elseif line =~ '[.=(]\s*$'
      " A statement continuation - move in one
      let ind = ind + shiftwidth()
   elseif line =~ '^\s*new\>'
      " Multiple line generic instantiation ('package blah is\nnew thingy')
      let ind = s:StatementIndent( ind - shiftwidth(), lnum )
   elseif line =~ ';\s*$'
      " Statement end (but not 'end' ) - try to find current statement-start indent
      let ind = s:StatementIndent( ind, lnum )
   endif

   " Check for potential argument list on next line
   let continuation = (line =~ '[A-Za-z0-9_]\s*$')


   " Check current line; search for simplistic matching start-of-block
   let line = getline(v:lnum)
   if line =~ '^\s*#'
      " Start of line for ada-pp
      let ind = 0
   elseif continuation && line =~ '^\s*('
      " Don't do this if we've already indented due to the previous line
      if ind == initind
	 let ind = ind + shiftwidth()
      endif
   elseif line =~ '^\s*\(begin\|is\)\>'
      let ind = s:MainBlockIndent( ind, lnum, '\(procedure\|function\|declare\|package\|task\)\>', 'begin\>' )
   elseif line =~ '^\s*record\>'
      let ind = s:MainBlockIndent( ind, lnum, 'type\>\|for\>.*\<use\>', '' ) + shiftwidth()
   elseif line =~ '^\s*\(else\|elsif\)\>'
      let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
   elseif line =~ '^\s*when\>'
      " Align 'when' one /in/ from matching block start
      let ind = s:MainBlockIndent( ind, lnum, '\(case\|exception\)\>', '' ) + shiftwidth()
   elseif line =~ '^\s*end\>\s*\<if\>'
      " End of if statements
      let ind = s:EndBlockIndent( ind, lnum, 'if\>', 'end\>\s*\<if\>' )
   elseif line =~ '^\s*end\>\s*\<loop\>'
      " End of loops
      let ind = s:EndBlockIndent( ind, lnum, '\(\(while\|for\)\>.*\)\?\<loop\>', 'end\>\s*\<loop\>' )
   elseif line =~ '^\s*end\>\s*\<record\>'
      " End of records
      let ind = s:EndBlockIndent( ind, lnum, '\(type\>.*\)\=\<record\>', 'end\>\s*\<record\>' )
   elseif line =~ '^\s*end\>\s*\<procedure\>'
      " End of procedures
      let ind = s:EndBlockIndent( ind, lnum, 'procedure\>.*\<is\>', 'end\>\s*\<procedure\>' )
   elseif line =~ '^\s*end\>\s*\<case\>'
      " End of case statement
      let ind = s:EndBlockIndent( ind, lnum, 'case\>.*\<is\>', 'end\>\s*\<case\>' )
   elseif line =~ '^\s*end\>'
      " General case for end
      let ind = s:MainBlockIndent( ind, lnum, '\(if\|while\|for\|loop\|accept\|begin\|record\|case\|exception\|package\)\>', '' )
   elseif line =~ '^\s*exception\>'
      let ind = s:MainBlockIndent( ind, lnum, 'begin\>', '' )
   elseif line =~ '^\s*then\>'
      let ind = s:MainBlockIndent( ind, lnum, 'if\>', '' )
   endif

   return ind
endfunction GetAdaIndent

let &cpo = s:keepcpo
unlet s:keepcpo

finish " 1}}}

"------------------------------------------------------------------------------
"   Copyright (C) 2006	Martin Krischik
"
"   Vim is Charityware - see ":help license" or uganda.txt for licence details.
"------------------------------------------------------------------------------
" vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
" vim: foldmethod=marker

Filemanager

Name Type Size Permission Actions
aap.vim File 331 B 0644
ada.vim File 11.06 KB 0644
ant.vim File 290 B 0644
automake.vim File 243 B 0644
awk.vim File 7.68 KB 0644
bash.vim File 390 B 0644
basic.vim File 250 B 0644
bib.vim File 346 B 0644
bitbake.vim File 583 B 0644
bst.vim File 1.86 KB 0644
bzl.vim File 2.86 KB 0644
c.vim File 391 B 0644
cdl.vim File 4.26 KB 0644
ch.vim File 556 B 0644
chaiscript.vim File 1.18 KB 0644
changelog.vim File 264 B 0644
chatito.vim File 731 B 0644
clojure.vim File 11.29 KB 0644
cmake.vim File 2.98 KB 0644
cobol.vim File 8.63 KB 0644
config.vim File 2.17 KB 0644
context.vim File 1.67 KB 0644
cpp.vim File 395 B 0644
cs.vim File 1.88 KB 0644
css.vim File 1.77 KB 0644
cucumber.vim File 2.74 KB 0644
cuda.vim File 371 B 0644
d.vim File 605 B 0644
dictconf.vim File 411 B 0644
dictdconf.vim File 414 B 0644
docbk.vim File 336 B 0644
dosbatch.vim File 1.35 KB 0644
dtd.vim File 11.79 KB 0644
dtrace.vim File 451 B 0644
dts.vim File 1.69 KB 0644
dune.vim File 430 B 0644
dylan.vim File 2.75 KB 0644
eiffel.vim File 3.24 KB 0644
elm.vim File 3.2 KB 0644
erlang.vim File 50.74 KB 0644
eruby.vim File 2.95 KB 0644
eterm.vim File 743 B 0644
expect.vim File 207 B 0644
falcon.vim File 13.84 KB 0644
fennel.vim File 273 B 0644
fish.vim File 2.66 KB 0644
fortran.vim File 7.72 KB 0644
framescript.vim File 891 B 0644
freebasic.vim File 237 B 0644
gdscript.vim File 4.26 KB 0644
gitconfig.vim File 841 B 0644
gitolite.vim File 1.29 KB 0644
go.vim File 1.73 KB 0644
gyp.vim File 169 B 0644
haml.vim File 2.19 KB 0644
hamster.vim File 1.65 KB 0644
hare.vim File 4.38 KB 0644
hog.vim File 1.85 KB 0644
html.vim File 33.12 KB 0644
htmldjango.vim File 273 B 0644
idlang.vim File 1.68 KB 0644
ishd.vim File 1.83 KB 0644
j.vim File 1.77 KB 0644
java.vim File 4.19 KB 0644
javascript.vim File 15.13 KB 0644
javascriptreact.vim File 109 B 0644
json.vim File 4.54 KB 0644
jsonc.vim File 4.74 KB 0644
jsp.vim File 462 B 0644
julia.vim File 15.29 KB 0644
kotlin.vim File 1.53 KB 0644
krl.vim File 4.25 KB 0644
ld.vim File 1.82 KB 0644
less.vim File 243 B 0644
lifelines.vim File 638 B 0644
liquid.vim File 2.03 KB 0644
lisp.vim File 349 B 0644
livebook.vim File 206 B 0644
logtalk.vim File 1.91 KB 0644
lua.vim File 2.22 KB 0644
luau.vim File 252 B 0644
mail.vim File 385 B 0644
make.vim File 3.48 KB 0644
matlab.vim File 4.81 KB 0644
meson.vim File 5.19 KB 0644
mf.vim File 164 B 0644
mma.vim File 2.31 KB 0644
mp.vim File 9.72 KB 0644
nginx.vim File 1.7 KB 0644
nsis.vim File 3.23 KB 0644
objc.vim File 1.65 KB 0644
obse.vim File 1.4 KB 0644
ocaml.vim File 9.09 KB 0644
occam.vim File 4.63 KB 0644
pascal.vim File 5.66 KB 0644
perl.vim File 5.91 KB 0644
php.vim File 25.76 KB 0644
postscr.vim File 1.64 KB 0644
pov.vim File 2.71 KB 0644
prolog.vim File 1.91 KB 0644
ps1.vim File 410 B 0644
pyrex.vim File 326 B 0644
python.vim File 886 B 0644
qb64.vim File 232 B 0644
qml.vim File 1.27 KB 0644
quarto.vim File 23 B 0644
r.vim File 13.96 KB 0644
racket.vim File 2.87 KB 0644
raku.vim File 3.45 KB 0644
raml.vim File 285 B 0644
rapid.vim File 7.97 KB 0644
readline.vim File 786 B 0644
rhelp.vim File 2.83 KB 0644
rmd.vim File 2.25 KB 0644
rnoweb.vim File 1.1 KB 0644
rpl.vim File 1.82 KB 0644
rrst.vim File 1.19 KB 0644
rst.vim File 1.9 KB 0644
ruby.vim File 30.33 KB 0644
rust.vim File 10.26 KB 0644
sas.vim File 5.18 KB 0644
sass.vim File 926 B 0644
scala.vim File 19.3 KB 0644
scheme.vim File 372 B 0644
scss.vim File 191 B 0644
sdl.vim File 2.76 KB 0644
sh.vim File 9.04 KB 0644
sml.vim File 6.42 KB 0644
solidity.vim File 12.61 KB 0644
sql.vim File 1.18 KB 0644
sqlanywhere.vim File 12.96 KB 0644
sshconfig.vim File 796 B 0644
systemverilog.vim File 10.55 KB 0644
tcl.vim File 2.48 KB 0644
tcsh.vim File 1.35 KB 0644
teraterm.vim File 1.38 KB 0644
tex.vim File 13.52 KB 0644
tf.vim File 1.57 KB 0644
tilde.vim File 1.11 KB 0644
treetop.vim File 785 B 0644
typescript.vim File 14.28 KB 0644
typescriptreact.vim File 109 B 0644
vb.vim File 4.69 KB 0644
verilog.vim File 8.08 KB 0644
vhdl.vim File 14.43 KB 0644
vim.vim File 675 B 0644
vroom.vim File 379 B 0644
vue.vim File 385 B 0644
wat.vim File 458 B 0644
xf86conf.vim File 786 B 0644
xhtml.vim File 325 B 0644
xinetd.vim File 1.28 KB 0644
xml.vim File 7.6 KB 0644
xsd.vim File 253 B 0644
xslt.vim File 297 B 0644
yacc.vim File 858 B 0644
yaml.vim File 5.45 KB 0644
zig.vim File 2.09 KB 0644
zimbu.vim File 3.92 KB 0644
zsh.vim File 411 B 0644
Filemanager