neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

adacomplete.vim (3670B)


      1 "------------------------------------------------------------------------------
      2 "  Description: Vim Ada omnicompletion file
      3 "     Language:	Ada (2005)
      4 "	   $Id: adacomplete.vim 887 2008-07-08 14:29:01Z krischik $
      5 "   Maintainer:	Martin Krischik
      6 "      $Author: krischik $
      7 "	 $Date: 2008-07-08 16:29:01 +0200 (Di, 08 Jul 2008) $
      8 "      Version: 4.6
      9 "    $Revision: 887 $
     10 "     $HeadURL: https://gnuada.svn.sourceforge.net/svnroot/gnuada/trunk/tools/vim/autoload/adacomplete.vim $
     11 "      History: 24.05.2006 MK Unified Headers
     12 "		26.05.2006 MK improved search for begin of word.
     13 "		16.07.2006 MK Ada-Mode as vim-ball
     14 "		15.10.2006 MK Bram's suggestion for runtime integration
     15 "		05.11.2006 MK Bram suggested not to use include protection for
     16 "			      autoload
     17 "		05.11.2006 MK Bram suggested against using setlocal omnifunc 
     18 "		05.11.2006 MK Bram suggested to save on spaces
     19 "    Help Page: ft-ada-omni
     20 "------------------------------------------------------------------------------
     21 
     22 if version < 700
     23   finish
     24 endif
     25 
     26 " Section: adacomplete#Complete () {{{1
     27 "
     28 " This function is used for the 'omnifunc' option.
     29 "
     30 function! adacomplete#Complete (findstart, base)
     31   if a:findstart == 1
     32      return ada#User_Complete (a:findstart, a:base)
     33   else
     34      "
     35      " look up matches
     36      "
     37      if exists ("g:ada_omni_with_keywords")
     38  call ada#User_Complete (a:findstart, a:base)
     39      endif
     40      "
     41      "  search tag file for matches
     42      "
     43      let l:Pattern  = '^' . a:base . '.*$'
     44      let l:Tag_List = taglist (l:Pattern)
     45      "
     46      " add symbols
     47      "
     48      for Tag_Item in l:Tag_List
     49  if l:Tag_Item['kind'] == ''
     50     "
     51     " Tag created by gnat xref
     52     "
     53     let l:Match_Item = {
     54        \ 'word':  l:Tag_Item['name'],
     55        \ 'menu':  l:Tag_Item['filename'],
     56        \ 'info':  "Symbol from file " . l:Tag_Item['filename'] . " line " . l:Tag_Item['cmd'],
     57        \ 'kind':  's',
     58        \ 'icase': 1}
     59  else
     60     "
     61     " Tag created by ctags
     62     "
     63     let l:Info	= 'Symbol		 : ' . l:Tag_Item['name']  . "\n"
     64     let l:Info .= 'Of type		 : ' . g:ada#Ctags_Kinds[l:Tag_Item['kind']][1]  . "\n"
     65     let l:Info .= 'Defined in File	 : ' . l:Tag_Item['filename'] . "\n"
     66 
     67     if has_key( l:Tag_Item, 'package')
     68        let l:Info .= 'Package		    : ' . l:Tag_Item['package'] . "\n"
     69        let l:Menu  = l:Tag_Item['package']
     70     elseif has_key( l:Tag_Item, 'separate')
     71        let l:Info .= 'Separate from Package : ' . l:Tag_Item['separate'] . "\n"
     72        let l:Menu  = l:Tag_Item['separate']
     73     elseif has_key( l:Tag_Item, 'packspec')
     74        let l:Info .= 'Package Specification : ' . l:Tag_Item['packspec'] . "\n"
     75        let l:Menu  = l:Tag_Item['packspec']
     76     elseif has_key( l:Tag_Item, 'type')
     77        let l:Info .= 'Datetype		    : ' . l:Tag_Item['type'] . "\n"
     78        let l:Menu  = l:Tag_Item['type']
     79     else
     80        let l:Menu  = l:Tag_Item['filename']
     81     endif
     82 
     83     let l:Match_Item = {
     84        \ 'word':  l:Tag_Item['name'],
     85        \ 'menu':  l:Menu,
     86        \ 'info':  l:Info,
     87        \ 'kind':  l:Tag_Item['kind'],
     88        \ 'icase': 1}
     89  endif
     90  if complete_add (l:Match_Item) == 0
     91     return []
     92  endif
     93  if complete_check ()
     94     return []
     95  endif
     96      endfor
     97      return []
     98   endif
     99 endfunction adacomplete#Complete
    100 
    101 finish " 1}}}
    102 
    103 "------------------------------------------------------------------------------
    104 "   Copyright (C) 2006	Martin Krischik
    105 "
    106 "   Vim is Charityware - see ":help license" or uganda.txt for licence details.
    107 "------------------------------------------------------------------------------
    108 " vim: textwidth=78 wrap tabstop=8 shiftwidth=3 softtabstop=3 noexpandtab
    109 " vim: foldmethod=marker