blob: 6defd61ab86ab516aec0460d01f6d15ec9728035 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
let s:old_completefunc = &completefunc
function! gitcha#GitSHAComplete(findstart, base)
if a:findstart
" locate the start of the word
let line = getline('.')
let start = col('.') - 1
while start > 0 && line[start - 1] =~ '\a'
let start -= 1
endwhile
return start
endif
" Restore user completion function
let &completefunc = s:old_completefunc
" Match Git SHAs in the current repository
let matches = []
let revs = system('git rev-list --all')
for m in split(revs)
if m =~ '^' . a:base
call add(matches, m)
endif
endfor
return matches
endfunction
function! gitcha#StartGitSHACompletion()
set completefunc=gitcha#GitSHAComplete
return "\<C-x>\<C-u>"
endfunction
|