annotate runtime/autoload/ccomplete.vim @ 502:52e76e2b5b65 v7.0140

updated for version 7.0140
author vimboss
date Thu, 01 Sep 2005 20:46:49 +0000
parents
children 7e6d264ec0a2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
502
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
1 " Vim completion script
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
2 " Language: C
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
3 " Maintainer: Bram Moolenaar <Bram@vim.org>
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
4 " Last Change: 2005 Sep 01
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
5
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
6 function! ccomplete#Complete(findstart, base)
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
7 if a:findstart
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
8 " locate the start of the word
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
9 let line = getline('.')
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
10 let start = col('.') - 1
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
11 while start > 0
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
12 if line[start - 1] =~ '\w\|\.'
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
13 let start -= 1
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
14 elseif start > 1 && line[start - 2] == '-' && line[start - 1] == '>'
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
15 let start -= 2
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
16 else
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
17 break
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
18 endif
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
19 endwhile
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
20 return start
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
21 endif
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
22
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
23 " return list of matches
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
24 let items = split(a:base, '\.\|->')
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
25 if len(items) == 1
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
26 " Only one part, no "." or "->": complete from tags file.
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
27 let diclist = taglist(items[0])
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
28 return map(diclist, 'v:val["name"]')
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
29 endif
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
30 return items
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
31 endfunction
52e76e2b5b65 updated for version 7.0140
vimboss
parents:
diff changeset
32