diff options
Diffstat (limited to 'lua/telescope/builtin/git.lua')
| -rw-r--r-- | lua/telescope/builtin/git.lua | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lua/telescope/builtin/git.lua b/lua/telescope/builtin/git.lua index a296517..c333159 100644 --- a/lua/telescope/builtin/git.lua +++ b/lua/telescope/builtin/git.lua @@ -79,20 +79,15 @@ end git.branches = function(opts) local output = utils.get_os_command_output({ 'git', 'branch', '--all' }, opts.cwd) - local tmp_results = {} + local results = {} for _, v in ipairs(output) do if not string.match(v, 'HEAD') and v ~= '' then v = string.gsub(v, '.* ', '') - v = string.gsub(v, '^remotes/[^/]*/', '') - tmp_results[v] = true + v = string.gsub(v, '^remotes/', '') + table.insert(results, v) end end - local results = {} - for k, _ in pairs(tmp_results) do - table.insert(results, k) - end - pickers.new(opts, { prompt_title = 'Git Branches', finder = finders.new_table { @@ -103,8 +98,13 @@ git.branches = function(opts) }, previewer = previewers.git_branch_log.new(opts), sorter = conf.file_sorter(opts), - attach_mappings = function() + attach_mappings = function(_, map) actions.select_default:replace(actions.git_checkout) + map('i', '<c-t>', actions.git_track_branch) + map('n', '<c-t>', actions.git_track_branch) + + map('i', '<c-r>', actions.git_rebase_branch) + map('n', '<c-r>', actions.git_rebase_branch) return true end }):find() @@ -155,14 +155,14 @@ local set_opts_cwd = function(opts) end -- Find root of git directory and remove trailing newline characters - local git_root = vim.fn.systemlist("git -C " .. opts.cwd .. " rev-parse --show-toplevel")[1] + local git_root, ret = utils.get_os_command_output({ "git", "rev-parse", "--show-toplevel" }, opts.cwd) local use_git_root = utils.get_default(opts.use_git_root, true) - if vim.v.shell_error ~= 0 then + if ret ~= 0 then error(opts.cwd .. ' is not a git directory') else if use_git_root then - opts.cwd = git_root + opts.cwd = git_root[1] end end end |
