diff --git a/.config/nvim/lua/plugins/extras/editor/git/diffview.lua b/.config/nvim/lua/plugins/extras/editor/git/diffview.lua index 78184002..37b3c97e 100644 --- a/.config/nvim/lua/plugins/extras/editor/git/diffview.lua +++ b/.config/nvim/lua/plugins/extras/editor/git/diffview.lua @@ -1,11 +1,20 @@ local prefix = "gC" +local function toggle_diffview(cmd) + if next(require("diffview.lib").views) == nil then + vim.cmd(cmd) + else + vim.cmd("DiffviewClose") + end +end return { { "sindrets/diffview.nvim", + -- stylua: ignore keys = { - { "gD", "DiffviewFileHistory", desc = "Diff Repo" }, - { "gd", "DiffviewOpen", desc = "Diff View" }, + { "gD", function() toggle_diffview("DiffviewFileHistory") end, desc = "Diff Repo" }, + { "gd", function() toggle_diffview("DiffviewOpen") end, desc = "Diff View" }, + { "gF", function() toggle_diffview("DiffviewFileHistory %") end, desc = "Diff Current File" }, }, opts = function(_, opts) local actions = require("diffview.actions")