refactor(git): rework module around clearer Status and Repo split
This commit is contained in:
+35
-12
@@ -20,25 +20,28 @@ function M.init()
|
||||
|
||||
local group = vim.api.nvim_create_augroup("ow.git", { clear = true })
|
||||
|
||||
vim.api.nvim_create_autocmd(
|
||||
{ "BufReadPost", "BufNewFile", "BufWritePost", "FileChangedShellPost" },
|
||||
{
|
||||
group = group,
|
||||
callback = function(args)
|
||||
require("git.repo").refresh(args.buf)
|
||||
end,
|
||||
}
|
||||
)
|
||||
vim.api.nvim_create_autocmd({ "BufReadPost", "BufNewFile" }, {
|
||||
group = group,
|
||||
callback = function(args)
|
||||
require("git.repo").track(args.buf)
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd({ "BufWritePost", "FileChangedShellPost" }, {
|
||||
group = group,
|
||||
callback = function(args)
|
||||
require("git.repo").refresh(args.buf)
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd({ "BufDelete", "BufWipeout" }, {
|
||||
group = group,
|
||||
callback = function(args)
|
||||
require("git.repo").unregister(args.buf)
|
||||
require("git.repo").unbind(args.buf)
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("FocusGained", {
|
||||
group = group,
|
||||
callback = function(args)
|
||||
require("git.repo").refresh(args.buf)
|
||||
callback = function()
|
||||
require("git.repo").refresh_all()
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("VimLeavePre", {
|
||||
@@ -48,6 +51,22 @@ function M.init()
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "VimEnter", "DirChanged", "TabEnter" }, {
|
||||
group = group,
|
||||
callback = function()
|
||||
require("git.repo").update_cwd_repo()
|
||||
end,
|
||||
})
|
||||
vim.api.nvim_create_autocmd("TabClosed", {
|
||||
group = group,
|
||||
callback = function(args)
|
||||
local tab = tonumber(args.file) --[[@as integer?]]
|
||||
if tab then
|
||||
require("git.repo").release_tab(tab)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("BufReadCmd", {
|
||||
pattern = "git://*",
|
||||
group = group,
|
||||
@@ -118,6 +137,10 @@ function M.init()
|
||||
return require("git.cmd").complete(...)
|
||||
end,
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command("Grefresh", function()
|
||||
require("git.repo").refresh_all()
|
||||
end, { desc = "Refresh git status for all repos" })
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
Reference in New Issue
Block a user