updated for version 7.1a

This commit is contained in:
Bram Moolenaar
2007-05-05 17:54:07 +00:00
parent d5ab34bd5e
commit 9964e468c0
206 changed files with 20219 additions and 7404 deletions

View File

@ -1,19 +1,32 @@
" Vim indent file
" Language: Ada
" Maintainer: Neil Bird <neil@fnxweb.com>
" Last Change: 2006 Apr 30
" Version: $Id$
" Look for the latest version at http://vim.sourceforge.net/
"
"------------------------------------------------------------------------------
" Description: Vim Ada indent file
" Language: Ada (2005)
" $Id$
" Copyright: Copyright (C) 2006 Martin Krischik
" Maintainer: Martin Krischik
" Neil Bird <neil@fnxweb.com>
" $Author$
" $Date$
" Version: 4.2
" $Revision$
" $HeadURL: https://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
" 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")
if exists("b:did_indent") || version < 700
finish
endif
let b:did_indent = 1
setlocal indentexpr=GetAdaIndent()
@ -25,10 +38,14 @@ if exists("*GetAdaIndent")
finish
endif
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\>\)'
let s:AdaComment = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*"
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)
@ -39,9 +56,9 @@ let s:AdaComment = "\\v^(\"[^\"]*\"|'.'|[^\"']){-}\\zs\\s*--.*"
" 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 )
function s:MainBlockIndent (prev_indent, prev_lnum, blockstart, stop_at)
let lnum = a:prev_lnum
let line = substitute( getline(lnum), s:AdaComment, '', '' )
let line = substitute( getline(lnum), ada#Comment, '', '' )
while lnum > 1
if a:stop_at != '' && line =~ '^\s*' . a:stop_at && indent(lnum) < a:prev_indent
return a:prev_indent
@ -55,7 +72,7 @@ function s:MainBlockIndent( prev_indent, prev_lnum, blockstart, stop_at )
let lnum = prevnonblank(lnum - 1)
" Get previous non-blank/non-comment-only line
while 1
let line = substitute( getline(lnum), s:AdaComment, '', '' )
let line = substitute( getline(lnum), ada#Comment, '', '' )
if line !~ '^\s*$' && line !~ '^\s*#'
break
endif
@ -67,8 +84,10 @@ function s:MainBlockIndent( prev_indent, prev_lnum, blockstart, stop_at )
endwhile
" Fallback - just move back one
return a:prev_indent - &sw
endfunction
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
@ -97,7 +116,7 @@ function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
" Get previous non-blank/non-comment-only line
while 1
let line = getline(lnum)
let line = substitute( line, s:AdaComment, '', '' )
let line = substitute( line, ada#Comment, '', '' )
if line !~ '^\s*$'
break
endif
@ -109,8 +128,10 @@ function s:EndBlockIndent( prev_indent, prev_lnum, blockstart, blockend )
endwhile
" Fallback - just move back one
return a:prev_indent - &sw
endfunction
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
@ -122,7 +143,7 @@ function s:StatementIndent( current_indent, prev_lnum )
let lnum = prevnonblank(lnum - 1)
" Get previous non-blank/non-comment-only line
while 1
let line = substitute( getline(lnum), s:AdaComment, '', '' )
let line = substitute( getline(lnum), ada#Comment, '', '' )
if line !~ '^\s*$' && line !~ '^\s*#'
break
endif
@ -145,10 +166,13 @@ function s:StatementIndent( current_indent, prev_lnum )
endwhile
" Fallback - just use current one
return a:current_indent
endfunction
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)
@ -157,7 +181,7 @@ function GetAdaIndent()
" Get previous non-blank/non-comment-only/non-cpp line
while 1
let line = substitute( getline(lnum), s:AdaComment, '', '' )
let line = substitute( getline(lnum), g:ada#Comment, '', '' )
if line !~ '^\s*$' && line !~ '^\s*#'
break
endif
@ -198,7 +222,7 @@ function GetAdaIndent()
exe lnum
exe 'normal! $F)%'
if getline('.') =~ '^\s*('
" Dire layout - use previous indent (could check for AdaComment here)
" Dire layout - use previous indent (could check for ada#Comment here)
let ind = indent( prevnonblank( line('.')-1 ) )
else
let ind = indent('.')
@ -263,6 +287,14 @@ function GetAdaIndent()
endif
return ind
endfunction
endfunction GetAdaIndent
" vim: set sw=3 sts=3 :
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

View File

@ -1,16 +1,59 @@
" Vim indent file
" Language: Ruby
" Maintainer: Doug Kearns <dougkearns@gmail.com>
" Language: eRuby
" Maintainer: Tim Pope <vimNOSPAM@tpope.info>
" Info: $Id$
" URL: http://vim-ruby.rubyforge.org
" Anon CVS: See above site
" Release Coordinator: Doug Kearns <dougkearns@gmail.com>
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
runtime! indent/html.vim
runtime! indent/ruby.vim
unlet! b:did_indent
" vim: nowrap sw=2 sts=2 ts=8 ff=unix:
runtime! indent/html.vim
unlet! b:did_indent
let b:did_indent = 1
setlocal indentexpr=GetErubyIndent(v:lnum)
setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when
" Only define the function once.
if exists("*GetErubyIndent")
finish
endif
function! GetErubyIndent(lnum)
let vcol = col('.')
call cursor(a:lnum,1)
let inruby = searchpair('<%','','%>')
call cursor(a:lnum,vcol)
if inruby && getline(a:lnum) !~ '^<%'
let ind = GetRubyIndent()
else
let ind = HtmlIndentGet(a:lnum)
endif
let lnum = prevnonblank(a:lnum-1)
let line = getline(lnum)
let cline = getline(a:lnum)
if cline =~# '<%\s*\%(end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%(-\=%>\|$\)'
let ind = ind - &sw
endif
if line =~# '\<do\%(\s*|[^|]*|\)\=\s*-\=%>'
let ind = ind + &sw
elseif line =~# '<%\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>'
let ind = ind + &sw
endif
if line =~# '^\s*<%[=#]\=\s*$' && cline !~# '^\s*end\>'
let ind = ind + &sw
endif
if cline =~# '^\s*-\=%>\s*$'
let ind = ind - &sw
endif
return ind
endfunction
" vim:set sw=2 sts=2 ts=8 noet ff=unix:

View File

@ -1,6 +1,6 @@
" Description: html indenter
" Author: Johannes Zellner <johannes@zellner.org>
" Last Change: Tue, 27 Apr 2004 10:28:39 CEST
" Last Change: Mo, 05 Jun 2006 22:32:41 CEST
" Restoring 'cpo' and 'ic' added by Bram 2006 May 5
" Globals: g:html_indent_tags -- indenting tags
" g:html_indent_strict -- inhibit 'O O' elements
@ -193,8 +193,17 @@ fun! HtmlIndentGet(lnum)
" [-- special handling for <javascript>: use cindent --]
let js = '<script.*type\s*=\s*.*java'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" by Tye Zdrojewski <zdro@yahoo.com>, 05 Jun 2006
" ZDR: This needs to be an AND (we are 'after the start of the pair' AND
" we are 'before the end of the pair'). Otherwise, indentation
" before the start of the script block will be affected; the end of
" the pair will still match if we are before the beginning of the
" pair.
"
if 0 < searchpair(js, '', '</script>', 'nWb')
\ || 0 < searchpair(js, '', '</script>', 'nW')
\ && 0 < searchpair(js, '', '</script>', 'nW')
" we're inside javascript
if getline(lnum) !~ js && getline(a:lnum) != '</script>'
if restore_ic == 0

View File

@ -0,0 +1,12 @@
" Vim indent file
" Language: Django HTML template
" Maintainer: Dave Hodder <dmh@dmh.org.uk>
" Last Change: 2007 Jan 25
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
" Use HTML formatting rules.
runtime! indent/html.vim

17
runtime/indent/jsp.vim Normal file
View File

@ -0,0 +1,17 @@
" Vim filetype indent file
" Language: JSP files
" Maintainer: David Fishburn <fishburn@ianywhere.com>
" Version: 1.0
" Last Change: Wed Nov 08 2006 11:08:05 AM
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
finish
endif
" If there has been no specific JSP indent script created,
" use the default html indent script which will handle
" html, javascript and most of the JSP constructs.
runtime! indent/html.vim

View File

@ -4,7 +4,7 @@
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus.mottl@gmail.com>
" URL: http://www.ocaml.info/vim/indent/ocaml.vim
" Last Change: 2006 Apr 30
" Last Change: 2005 Jun 25 - Fixed multiple bugs due to 'else\nreturn ind' working
" 2005 May 09 - Added an option to not indent OCaml-indents specially (MM)
" 2005 Apr 11 - Fixed an indentation bug concerning "let" (MM)

View File

@ -2,7 +2,7 @@
" Language: Python
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Original Author: David Bustos <bustos@caltech.edu>
" Last Change: 2006 Apr 30
" Last Change: 2006 Jun 18
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@ -136,7 +136,7 @@ function GetPythonIndent(lnum)
endif
" If the previous line was a stop-execution statement...
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\)\>'
if getline(plnum) =~ '^\s*\(break\|continue\|raise\|return\|pass\)\>'
" See if the user has already dedented
if indent(a:lnum) > indent(plnum) - &sw
" If not, recommend one dedent

View File

@ -217,7 +217,11 @@ function GetRubyIndent()
call cursor(v:lnum, col)
let bs = strpart('(){}[]', stridx(')}]', line[col - 1]) * 2, 2)
if searchpair(escape(bs[0], '\['), '', bs[1], 'bW', s:skip_expr) > 0
let ind = line[col-1]==')' ? virtcol('.')-1 : indent(s:GetMSL(line('.')))
if line[col-1]==')' && col('.') != col('$') - 1
let ind = virtcol('.')-1
else
let ind = indent(s:GetMSL(line('.')))
endif
endif
return ind
endif
@ -274,7 +278,11 @@ function GetRubyIndent()
if line =~ '[[({]'
let counts = s:LineHasOpeningBrackets(lnum)
if counts[0] == '1' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0
return virtcol('.')
if col('.') + 1 == col('$')
return ind + &sw
else
return virtcol('.')
endif
elseif counts[1] == '1' || counts[2] == '1'
return ind + &sw
else
@ -361,3 +369,5 @@ endfunction
let &cpo = s:cpo_save
unlet s:cpo_save
" vim:set sw=2 sts=2 ts=8 noet ff=unix:

View File

@ -1,8 +1,8 @@
" VHDL indent ('93 syntax)
" Language: VHDL
" Maintainer: Gerald Lai <laigera+vim?gmail.com>
" Version: 1.36
" Last Change: 2006 Apr 12
" Version: 1.50
" Last Change: 2007 Jan 29
" URL: http://www.vim.org/scripts/script.php?script_id=1450
" only load this indent file when no other was loaded
@ -13,9 +13,11 @@ let b:did_indent = 1
" setup indent options for local VHDL buffer
setlocal indentexpr=GetVHDLindent()
setlocal indentkeys=!^F,o,O,e,0(,0)
setlocal indentkeys=!^F,o,O,0(,0)
setlocal indentkeys+==~begin,=~end\ ,=~end\ ,=~is,=~select,=~when
setlocal indentkeys+==~if,=~then,=~elsif,=~else
setlocal indentkeys+==~begin,=~is,=~select
setlocal indentkeys+==~case,=~loop,=~for,=~generate,=~record,=~units,=~process,=~block,=~function,=~component,=~procedure
setlocal indentkeys+==~architecture,=~configuration,=~entity,=~package
" constants
" not a comment
@ -25,6 +27,16 @@ let s:ES = '\s*\%(--.*\)\=$'
" no "end" keyword in front
let s:NE = '\%(\<end\s\+\)\@<!'
" option to disable alignment of generic/port mappings
if !exists("g:vhdl_align_genportmap")
let g:vhdl_align_genportmap = 1
endif
" option to disable alignment of right-hand side assignment "<=" statements
if !exists("g:vhdl_align_rhsassign")
let g:vhdl_align_rhsassign = 1
endif
" only define indent function once
if exists("*GetVHDLindent")
finish
@ -100,7 +112,11 @@ function GetVHDLindent()
if m != -1
return m
else
return stridx(prevs, '(') + &sw
if g:vhdl_align_genportmap
return stridx(prevs, '(') + &sw
else
return ind2 + &sw
endif
endif
endif
@ -108,7 +124,11 @@ function GetVHDLindent()
" keywords: variable + "<=" without ";" ending
" where: start of previous line
if prevs =~? '^\s*\S\+\s*<=[^;]*'.s:ES
return matchend(prevs, '<=\s*\ze.')
if g:vhdl_align_rhsassign
return matchend(prevs, '<=\s*\ze.')
else
return ind2 + &sw
endif
endif
" indent: backtrace previous non-comment lines for next smaller or equal size indent
@ -190,7 +210,7 @@ function GetVHDLindent()
" find previous opening statement of
" keywords: "architecture", "block", "entity", "function", "generate", "procedure", "process"
let s2 = s:NC.s:NE.'\<\%(architecture\|block\|entity\|function\|generate\|procedure\|process\)\>'
if curs !~? s2.'.*'.s:NC.'\<begin\>.*'.s:ES && prevs =~? s2
if (curs !~? s2.'.*'.s:NC.'\<begin\>.*'.s:ES && prevs =~? s2) || m == 1
let ind = ind + &sw
endif
return ind
@ -240,50 +260,55 @@ function GetVHDLindent()
" where: start of current line
" find previous opening statement of
" keywords: "for", "if"
if curs =~? '^\s*\<generate\>' && prevs =~? s:NC.s:NE.'\%(\%(\<wait\s\+\)\@<!\<for\>\|\<if\>\)'
if curs =~? '^\s*\<generate\>' && prevs =~? s:NC.s:NE.'\%(\%(\<wait\s\+\)\@<!\<for\|\<if\)\>'
return ind2
endif
" indent: +sw
" keywords: "begin", "block", "loop", "process", "record", "units"
" removed: "case", "elsif", "if", "while"
" keywords: "block", "process"
" removed: "begin", "case", "elsif", "if", "loop", "record", "units", "while"
" where: anywhere in previous line
if prevs =~? s:NC.'\%(\<begin\>\|'.s:NE.'\<\%(block\|loop\|process\|record\|units\)\>\)'
if prevs =~? s:NC.s:NE.'\<\%(block\|process\)\>'
return ind + &sw
endif
" indent: +sw
" keywords: "architecture", "component", "configuration", "entity", "for", "package"
" removed: "when", "with"
" keywords: "architecture", "configuration", "entity", "package"
" removed: "component", "for", "when", "with"
" where: start of previous line
if prevs =~? '^\s*\%(architecture\|component\|configuration\|entity\|for\|package\)\>'
if prevs =~? '^\s*\%(architecture\|configuration\|entity\|package\)\>'
return ind + &sw
endif
" indent: +sw
" keyword: "generate", "is", "select", "=>"
" keyword: "select"
" removed: "generate", "is", "=>"
" where: end of previous line
if prevs =~? s:NC.'\%(\%('.s:NE.'\<generate\|\<is\|\<select\)\|=>\)'.s:ES
if prevs =~? s:NC.'\<select'.s:ES
return ind + &sw
endif
" indent: +sw
" keyword: "else"
" keyword: "begin", "loop", "record", "units"
" where: anywhere in previous line
" keyword: "component", "else", "for"
" where: start of previous line
" keyword: "then"
" keyword: "generate", "is", "then", "=>"
" where: end of previous line
" _note_: indent allowed to leave this filter
if prevs =~? '^\s*else\>' || prevs =~? s:NC.'\<then'.s:ES
if prevs =~? s:NC.'\%(\<begin\>\|'.s:NE.'\<\%(loop\|record\|units\)\>\)' || prevs =~? '^\s*\%(component\|else\|for\)\>' || prevs =~? s:NC.'\%('.s:NE.'\<generate\|\<\%(is\|then\)\|=>\)'.s:ES
let ind = ind + &sw
endif
" ****************************************************************************************
" indent: -sw
" keywords: "when", provided previous line does not begin with "when"
" keywords: "when", provided previous line does not begin with "when", does not end with "is"
" where: start of current line
let s4 = '^\s*when\>'
if curs =~? s4
if prevs !~? s4
if prevs =~? s:NC.'\<is'.s:ES
return ind
elseif prevs !~? s4
return ind - &sw
else
return ind2
@ -291,42 +316,9 @@ function GetVHDLindent()
endif
" indent: -sw
" keywords: "else", "elsif", provided previous line does not contain "then"
" keywords: "else", "elsif", "end" + "block", "for", "function", "generate", "if", "loop", "procedure", "process", "record", "units"
" where: start of current line
if curs =~? '^\s*\%(else\|elsif\)\>'
if prevs !~? s:NC.'\<then\>'
return ind - &sw
else
return ind2
endif
endif
" indent: -sw
" keywords: "end" + "if", provided previous line does not begin with "else", not contain "then"
" where: start of current line
if curs =~? '^\s*end\s\+if\>'
if prevs !~? '^\s*else\>' && prevs !~? s:NC.'\<then\>'
return ind - &sw
else
return ind2
endif
endif
" indent: -sw
" keywords: "end" + "function", "procedure", provided previous line does not contain "begin"
" where: start of current line
if curs =~? '^\s*end\s\+\%(function\|procedure\)\>'
if prevs !~? s:NC.'\<begin\>'
return ind - &sw
else
return ind2
endif
endif
" indent: -sw
" keywords: "end" + "block", "for", "generate", "loop", "process", "record", "units"
" where: start of current line
if curs =~? '^\s*end\s\+\%(block\|for\|generate\|loop\|process\|record\|units\)\>'
if curs =~? '^\s*\%(else\|elsif\|end\s\+\%(block\|for\|function\|generate\|if\|loop\|procedure\|process\|record\|units\)\)\>'
return ind - &sw
endif
@ -365,9 +357,9 @@ function GetVHDLindent()
endif
"indent: follow
"keyword: "component"
"where: anywhere in previous non-comment line
"where: start of previous non-comment line
elseif m == 2
if ps =~? s:NC.s:NE.'\<component\>'
if ps =~? '^\s*component\>'
return indent(pn)
endif
endif
@ -395,7 +387,8 @@ function GetVHDLindent()
" indent: -sw
" keywords: "end" + identifier
" where: start of current line
if curs =~? '^\s*end\s\+\w\+\>'
"if curs =~? '^\s*end\s\+\w\+\>'
if curs =~? '^\s*end\s'
return ind - &sw
endif