spacevim/bundle/gina.vim/autoload/gina/complete/common.vim
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

102 lines
2.7 KiB
VimL

let s:Cache = vital#gina#import('System.Cache.Memory')
let s:Path = vital#gina#import('System.Filepath')
function! gina#complete#common#opener(arglead, cmdline, cursorpos) abort
if a:arglead !~# '^--opener='
return []
endif
let candidates = [
\ 'split',
\ 'vsplit',
\ 'tabedit',
\ 'pedit',
\]
let prefix = '--opener='
return gina#util#filter(a:arglead, map(candidates, 'prefix . v:val'))
endfunction
function! gina#complete#common#treeish(arglead, cmdline, cursorpos) abort
if a:arglead =~# '^[^:]*:'
let revision = matchstr(a:arglead, '^[^:]*\ze:')
let candidates = gina#complete#filename#tracked(
\ matchstr(a:arglead, '^[^:]*:\zs.*'),
\ a:cmdline,
\ a:cursorpos,
\ revision,
\)
return map(candidates, 'revision . '':'' . v:val')
else
let candidates = gina#complete#range#any(a:arglead, a:cmdline, a:cursorpos)
return map(candidates, 'v:val . '':''')
endif
endfunction
function! gina#complete#common#command(arglead, cmdline, cursorpos) abort
let cache = s:get_cache()
if !cache.has('command_names')
call cache.set('command_names', s:get_command_names())
endif
let command_names = cache.get('command_names')
return gina#util#filter(a:arglead, command_names, '^_')
endfunction
function! gina#complete#common#raw_command(arglead, cmdline, cursorpos) abort
return gina#util#filter(a:arglead, [
\ 'add',
\ 'bisect',
\ 'branch',
\ 'checkout',
\ 'clone',
\ 'commit',
\ 'diff',
\ 'fetch',
\ 'grep',
\ 'init',
\ 'log',
\ 'merge',
\ 'mv',
\ 'pull',
\ 'push',
\ 'rebase',
\ 'reset',
\ 'restore',
\ 'rm',
\ 'show',
\ 'status',
\ 'switch',
\ 'tag',
\])
endfunction
function! gina#complete#common#remote(arglead, cmdline, cursorpos) abort
let git = gina#core#get_or_fail()
let result = gina#process#call(git, ['remote'])
if result.status
return []
endif
return gina#util#filter(a:arglead, result.stdout)
endfunction
" Private --------------------------------------------------------------------
function! s:get_cache() abort
if exists('s:cache')
return s:cache
endif
let s:cache = s:Cache.new()
return s:cache
endfunction
function! s:get_command_names() abort
let suffix = s:Path.realpath('autoload/gina/command/*.vim')
let command_names = []
for runtimepath in split(&runtimepath, ',')
let names = map(
\ glob(s:Path.join(runtimepath, suffix), 0, 1),
\ 'matchstr(fnamemodify(v:val, '':t''), ''^.\+\ze\.vim$'')',
\)
call extend(command_names, names)
endfor
return sort(command_names)
endfunction