mirror of
https://github.com/vim/vim.git
synced 2025-07-04 23:07:33 -04:00
33 lines
759 B
VimL
33 lines
759 B
VimL
|
" Vim completion script
|
||
|
" Language: C
|
||
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||
|
" Last Change: 2005 Sep 01
|
||
|
|
||
|
function! ccomplete#Complete(findstart, base)
|
||
|
if a:findstart
|
||
|
" locate the start of the word
|
||
|
let line = getline('.')
|
||
|
let start = col('.') - 1
|
||
|
while start > 0
|
||
|
if line[start - 1] =~ '\w\|\.'
|
||
|
let start -= 1
|
||
|
elseif start > 1 && line[start - 2] == '-' && line[start - 1] == '>'
|
||
|
let start -= 2
|
||
|
else
|
||
|
break
|
||
|
endif
|
||
|
endwhile
|
||
|
return start
|
||
|
endif
|
||
|
|
||
|
" return list of matches
|
||
|
let items = split(a:base, '\.\|->')
|
||
|
if len(items) == 1
|
||
|
" Only one part, no "." or "->": complete from tags file.
|
||
|
let diclist = taglist(items[0])
|
||
|
return map(diclist, 'v:val["name"]')
|
||
|
endif
|
||
|
return items
|
||
|
endfunction
|
||
|
|