1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 22:40:05 +08:00
SpaceVim/bundle/gina.vim/autoload/gina/complete/range.vim

49 lines
1.5 KiB
VimL
Raw Normal View History

function! gina#complete#range#any(arglead, cmdline, cursorpos) abort
return s:complete(
\ function('gina#complete#commit#any'),
\ a:arglead, a:cmdline, a:cursorpos,
\)
endfunction
function! gina#complete#range#branch(arglead, cmdline, cursorpos) abort
return s:complete(
\ function('gina#complete#commit#branch'),
\ a:arglead, a:cmdline, a:cursorpos,
\)
endfunction
function! gina#complete#range#local_branch(arglead, cmdline, cursorpos) abort
return s:complete(
\ function('gina#complete#commit#branch'),
\ a:arglead, a:cmdline, a:cursorpos,
\)
endfunction
function! gina#complete#range#remote_branch(arglead, cmdline, cursorpos) abort
return s:complete(
\ function('gina#complete#commit#branch'),
\ a:arglead, a:cmdline, a:cursorpos,
\)
endfunction
function! gina#complete#range#hashref(arglead, cmdline, cursorpos) abort
return s:complete(
\ function('gina#complete#commit#branch'),
\ a:arglead, a:cmdline, a:cursorpos,
\)
endfunction
" Private --------------------------------------------------------------------
function! s:complete(fn, arglead, cmdline, cursorpos) abort
if a:arglead =~# '^[^.]*\.\.\.\?'
let lhs = matchstr(a:arglead, '^[^.]*\.\.\.\?')
let rhs = matchstr(a:arglead, '^[^.]*\.\.\.\?\zs.*')
let candidates = a:fn(rhs, a:cmdline, a:cursorpos)
return map(candidates, 'lhs . v:val')
else
return a:fn(a:arglead, a:cmdline, a:cursorpos)
endif
endfunction