From cbc3f5e50c6576a5306e2af5ee1fc767b1557af6 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 31 Mar 2024 15:47:50 +0800 Subject: [PATCH] feat(git): complete `:Git branch` --- bundle/git.vim/autoload/git/branch.vim | 4 ++++ bundle/git.vim/doc/git.txt | 2 +- bundle/git.vim/lua/git/command/branch.lua | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/bundle/git.vim/autoload/git/branch.vim b/bundle/git.vim/autoload/git/branch.vim index 5817a782d..02a47643f 100644 --- a/bundle/git.vim/autoload/git/branch.vim +++ b/bundle/git.vim/autoload/git/branch.vim @@ -24,6 +24,10 @@ if has('nvim-0.9.0') function! git#branch#detect() abort lua require('git.command.branch').detect() endfunction + + function! git#branch#complete(ArgLead, CmdLine, CursorPos) abort + return luaeval('require("git.command.branch").complete(vim.api.nvim_eval("a:ArgLead"), vim.api.nvim_eval("a:CmdLine"), vim.api.nvim_eval("a:CursorPos"))') + endfunction else let s:JOB = SpaceVim#api#import('job') diff --git a/bundle/git.vim/doc/git.txt b/bundle/git.vim/doc/git.txt index b0a3514a0..09f93ca45 100644 --- a/bundle/git.vim/doc/git.txt +++ b/bundle/git.vim/doc/git.txt @@ -1,5 +1,5 @@ *git.txt* Git support in vim -Wang Shidong *git* +Wang Shidong & Mattes Groeger *git* ============================================================================== CONTENTS *git-contents* diff --git a/bundle/git.vim/lua/git/command/branch.lua b/bundle/git.vim/lua/git/command/branch.lua index dda7d19ed..84686c947 100644 --- a/bundle/git.vim/lua/git/command/branch.lua +++ b/bundle/git.vim/lua/git/command/branch.lua @@ -146,4 +146,11 @@ function M.run(argv) end end +function M.complete(arglead, cmdline, cursorpos) + if vim.startswith(arglead, '-') then + return table.concat({'-d', '-D'}, '\n') + end + return table.concat(vim.fn.map(vim.fn.systemlist('git branch --no-merged'), 'trim(v:val)'), '\n') +end + return M