mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 22:40:05 +08:00
49 lines
1.5 KiB
VimL
49 lines
1.5 KiB
VimL
|
|
||
|
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
|