spacevim/bundle/git.vim/autoload/git/config.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

124 lines
3.6 KiB
VimL

let s:JOB = SpaceVim#api#import('job')
let s:BUFFER = SpaceVim#api#import('vim#buffer')
" @todo rewrite Git config in lua
function! git#config#run(argvs)
if empty(a:argvs)
let cmd = ['git', 'config', '--list']
else
let cmd = ['git', 'config'] + a:argvs
endif
let s:lines = []
call git#logger#debug('git-config cmd:' . string(cmd))
call s:JOB.start(cmd,
\ {
\ 'on_exit' : function('s:on_exit'),
\ 'on_stdout' : function('s:on_stdout'),
\ }
\ )
endfunction
function! s:on_stdout(id, data, event) abort
for data in a:data
call git#logger#debug('git-config stdout:' . data)
endfor
let s:lines += a:data
endfunction
function! s:on_exit(id, data, event) abort
call git#logger#debug('git-config exit data:' . string(a:data))
if a:data ==# 0
let s:bufnr = s:openConfigBuffer(len(s:lines))
call s:BUFFER.buf_set_lines(s:bufnr, 0 , -1, 0, s:lines)
else
echo 'failed!'
endif
endfunction
function! s:openConfigBuffer(height) abort
let h = a:height > 10 ? 10 : a:height
exe h . 'split git://config'
normal! "_dd
setl nobuflisted
setl nomodifiable
setl nonumber norelativenumber
setl buftype=nofile
setf git-config
nnoremap <buffer><silent> q :bd!<CR>
return bufnr('%')
endfunction
function! s:options() abort
return join([
\ '--global',
\ '--user',
\ ], "\n")
endfunction
function! s:keys() abort
return [
\ 'http.sslcainfo',
\ 'http.sslbackend',
\ 'diff.astextplain.textconv',
\ 'core.autocrlf',
\ 'core.fscache',
\ 'core.symlinks',
\ 'credential.helper',
\ 'user.name',
\ 'user.email',
\ 'user.signingkey',
\ 'push.default',
\ 'merge.tool',
\ 'diff.tool',
\ 'commit.tool',
\ 'difftool.prompt',
\ 'color.ui',
\ 'color.branch',
\ 'color.status',
\ 'core.editor',
\ 'core.excludesfile',
\ 'core.autocrlf',
\ 'core.filemode',
\ 'core.safecrlf',
\ 'core.ignorecase',
\ 'mergetool.prompt',
\ 'mergetool.vimdiff.cmd',
\ 'http.postbuffer',
\ 'core.repositoryformatversion',
\ 'core.filemode',
\ 'core.bare',
\ 'core.logallrefupdates',
\ 'core.symlinks',
\ 'core.ignorecase',
\ 'remote.origin.url',
\ 'remote.origin.fetch',
\ 'branch.master.remote',
\ 'branch.master.merge',
\ 'branch.dev.remote',
\ 'branch.dev.merge',
\ 'branch.develop.remote',
\ 'branch.develop.merge',
\ 'branch.notiapi.remote',
\ 'branch.notiapi.merge',
\ 'branch.rebase.remote',
\ 'branch.rebase.merge']
endfunction
function! git#config#complete(ArgLead, CmdLine, CursorPos)
if a:ArgLead =~# '^-'
return s:options()
endif
let str = a:CmdLine[:a:CursorPos-1]
if str =~# '^Git\s\+config\s\+[^ ]*$' ||
\ str =~# '^Git\s\+config\s\+--global\s\+[^ ]*$' ||
\ str =~# '^Git\s\+config\s\+--user\s\+[^ ]*$'
return join(s:keys(), "\n")
else
return ''
endif
endfunction