feat: Use fugitive for faster branch name resolution

This commit is contained in:
Rosen Stoyanov 2023-04-08 22:59:55 +03:00
parent f4aff5bf9b
commit f5bf980373
No known key found for this signature in database
GPG key ID: 1805A1B84632D0EE

View file

@ -11,14 +11,25 @@ function M.project_key()
end
function M.branch_key()
-- `git branch --show-current` requires Git v2.22.0+ so going with more
-- widely available command
local branch = M.get_os_command_output({
"git",
"rev-parse",
"--abbrev-ref",
"HEAD",
})[1]
local branch
-- use tpope's fugitive for faster branch name resolution if available
if vim.fn.exists("*FugitiveHead") == 1 then
branch = vim.fn["FugitiveHead"]()
-- return "HEAD" for parity with `git rev-parse` in detached head state
if #branch == 0 then
branch = "HEAD"
end
else
-- `git branch --show-current` requires Git v2.22.0+ so going with more
-- widely available command
branch = M.get_os_command_output({
"git",
"rev-parse",
"--abbrev-ref",
"HEAD",
})[1]
end
if branch then
return vim.loop.cwd() .. "-" .. branch