diff options
Diffstat (limited to 'autoload/adacomplete.vim')
| -rw-r--r-- | autoload/adacomplete.vim | 113 | 
1 files changed, 113 insertions, 0 deletions
| diff --git a/autoload/adacomplete.vim b/autoload/adacomplete.vim new file mode 100644 index 00000000..575f87c9 --- /dev/null +++ b/autoload/adacomplete.vim @@ -0,0 +1,113 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 +   +"------------------------------------------------------------------------------ +"  Description: Vim Ada omnicompletion file +"     Language:	Ada (2005) +"	   $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $ +"   Maintainer:	Martin Krischik +"      $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/autoload/adacomplete.vim $ +"      History: 24.05.2006 MK Unified Headers +"		26.05.2006 MK improved search for begin of word. +"		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 not to use include protection for +"			      autoload +"		05.11.2006 MK Bram suggested agaist using setlocal omnifunc  +"		05.11.2006 MK Bram suggested to save on spaces +"    Help Page: ft-ada-omni +"------------------------------------------------------------------------------ + +if version < 700 +   finish +endif + +" Section: adacomplete#Complete () {{{1 +" +" This function is used for the 'omnifunc' option. +" +function! adacomplete#Complete (findstart, base) +   if a:findstart == 1 +      return ada#User_Complete (a:findstart, a:base) +   else +      " +      " look up matches +      " +      if exists ("g:ada_omni_with_keywords") +	 call ada#User_Complete (a:findstart, a:base) +      endif +      " +      "  search tag file for matches +      " +      let l:Pattern  = '^' . a:base . '.*$' +      let l:Tag_List = taglist (l:Pattern) +      " +      " add symbols +      " +      for Tag_Item in l:Tag_List +	 if l:Tag_Item['kind'] == '' +	    " +	    " Tag created by gnat xref +	    " +	    let l:Match_Item = { +	       \ 'word':  l:Tag_Item['name'], +	       \ 'menu':  l:Tag_Item['filename'], +	       \ 'info':  "Symbol from file " . l:Tag_Item['filename'] . " line " . l:Tag_Item['cmd'], +	       \ 'kind':  's', +	       \ 'icase': 1} +	 else +	    " +	    " Tag created by ctags +	    " +	    let l:Info	= 'Symbol		 : ' . l:Tag_Item['name']  . "\n" +	    let l:Info .= 'Of type		 : ' . g:ada#Ctags_Kinds[l:Tag_Item['kind']][1]  . "\n" +	    let l:Info .= 'Defined in File	 : ' . l:Tag_Item['filename'] . "\n" + +	    if has_key( l:Tag_Item, 'package') +	       let l:Info .= 'Package		    : ' . l:Tag_Item['package'] . "\n" +	       let l:Menu  = l:Tag_Item['package'] +	    elseif has_key( l:Tag_Item, 'separate') +	       let l:Info .= 'Separate from Package : ' . l:Tag_Item['separate'] . "\n" +	       let l:Menu  = l:Tag_Item['separate'] +	    elseif has_key( l:Tag_Item, 'packspec') +	       let l:Info .= 'Package Specification : ' . l:Tag_Item['packspec'] . "\n" +	       let l:Menu  = l:Tag_Item['packspec'] +	    elseif has_key( l:Tag_Item, 'type') +	       let l:Info .= 'Datetype		    : ' . l:Tag_Item['type'] . "\n" +	       let l:Menu  = l:Tag_Item['type'] +	    else +	       let l:Menu  = l:Tag_Item['filename'] +	    endif + +	    let l:Match_Item = { +	       \ 'word':  l:Tag_Item['name'], +	       \ 'menu':  l:Menu, +	       \ 'info':  l:Info, +	       \ 'kind':  l:Tag_Item['kind'], +	       \ 'icase': 1} +	 endif +	 if complete_add (l:Match_Item) == 0 +	    return [] +	 endif +	 if complete_check () +	    return [] +	 endif +      endfor +      return [] +   endif +endfunction adacomplete#Complete + +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 + +endif | 
