feat(git): git_commits shows the current branch graph (#2288)

Co-authored-by: Cyan Joeng <cyan.joeng@gmail.com>
This commit is contained in:
Cyan
2022-12-28 12:43:35 +00:00
committed by GitHub
parent d7d3ea9015
commit 01d92285ef
2 changed files with 16 additions and 7 deletions

View File

@@ -56,7 +56,7 @@ end
git.commits = function(opts)
opts.entry_maker = vim.F.if_nil(opts.entry_maker, make_entry.gen_from_git_commits(opts))
local git_command = vim.F.if_nil(opts.git_command, { "git", "log", "--pretty=oneline", "--abbrev-commit", "--", "." })
local git_command = vim.F.if_nil(opts.git_command, { "git", "log", "--graph", "--oneline", "--decorate", "--", "." })
pickers
.new(opts, {
@@ -115,8 +115,7 @@ git.bcommits = function(opts)
opts.current_line = (opts.current_file == nil) and get_current_buf_line(opts.winnr) or nil
opts.current_file = vim.F.if_nil(opts.current_file, vim.api.nvim_buf_get_name(opts.bufnr))
opts.entry_maker = vim.F.if_nil(opts.entry_maker, make_entry.gen_from_git_commits(opts))
local git_command =
vim.F.if_nil(opts.git_command, { "git", "log", "--pretty=oneline", "--abbrev-commit", "--follow" })
local git_command = vim.F.if_nil(opts.git_command, { "git", "log", "--graph", "--oneline", "--decorate", "--follow" })
pickers
.new(opts, {

View File

@@ -431,17 +431,27 @@ function make_entry.gen_from_git_commits(opts)
return nil
end
local sha, msg = string.match(entry, "([^ ]+) (.+)")
local marker, sha, msg = string.match(entry, "([*\\/| ]+) +([0-9a-f]*) +(.*)")
if not sha then
marker = entry
sha = ""
msg = ""
end
if not msg then
sha = entry
msg = "<empty commit message>"
end
marker, _ = string.gsub(marker, "\\", "+")
marker, _ = string.gsub(marker, "/", "-")
marker, _ = string.gsub(marker, "+", "/")
marker, _ = string.gsub(marker, "-", "\\")
return make_entry.set_default_entry_mt({
value = sha,
ordinal = sha .. " " .. msg,
msg = msg,
ordinal = marker .. " " .. sha .. " " .. msg,
msg = marker .. " " .. msg,
display = make_display,
current_file = opts.current_file,
}, opts)